LoginSignup
0
0

More than 5 years have passed since last update.

[Blockly Hacks]ToolboxのFlyoutをブロックをドラッグした後も開きっぱなしにしたい

Posted at

Blocklyを使っていて「ツールボックスからブロックをドラッグした後もフライアウトを表示させたままにしたい!」と思った場合は以下のようにすると開きっぱなしにできます。基本的には個人的な備忘録なのでお試しは自己責任でお願いします。

前提条件

今から説明する方法はBlocklyがビルドできる状態である必要があります。ビルド環境はBlockly公式ドキュメントか以前の投稿にて確認してください。

目標

標準ではToolboxからブロックをドラッグするとフライアウトが閉じます。これを自動で閉じないようにしたいと思います。つまり、以下のような表示を維持する事が目標です。
フライアウト展開中

Let's hack

目的のソースコードは"/blockly/core/flyout.js"です。このファイルの100行目あたりに臭うコードがあります。

flyout.js
/**
 * Does the flyout automatically close when a block is created?
 * @type {boolean}
 */
Blockly.Flyout.prototype.autoClose = true;

コメントには「ブロックが作られた時にフライアウトを自動的に閉じるかい?」って書かれています。こいつをfalseにしてやりましょう。

ビルドして動作確認すると、ブロックをドラッグしてもフライアウトが閉じなくなりました。
でも…閉じない…閉じたいんですけど!ってときはツールボックスの選択中のカテゴリをクリックすると閉じます。上図の場合であれば"Logic"をクリックすると閉じます。

まとめ

本来であればユーザーが自由に設定を切り替えられるのが理想でしょう。フラグをon/offできるViewを作ればビルドせずとも動的に切り替えられる…かもしれません。すみません、試してません…。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0