[blockly] > [WorkspaceSvg]

WorkspaceSvg クラス

ワークスペースのクラス。画面上の領域で、必要に応じてゴミ箱、スクロールバー、バブル、ドラッグが表示されます。

署名:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

拡張: Workspace

実装: IASTNodeLocationSvg

コンストラクタ

コンストラクタ 修飾子 説明
(コンストラクタ)(オプション) WorkspaceSvg クラスの新しいインスタンスを作成します。

プロパティ

プロパティ 修飾子 タイプ 説明
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | null デベロッパーはこの関数を定義して、ワークスペースのコンテキスト メニューにカスタム メニュー オプションを追加したり、ワークスペースで作成されたメニュー オプションを編集したりできます。
keyboardAccessibilityMode boolean キーボードのユーザー補助モードが有効な場合は true、そうでない場合は false です。
レンダリングされた boolean SVG ワークスペースのレンダリング ステータス。ヘッドレス ワークスペースの場合は false を、WorkspaceSvg のインスタンスの場合は true を返します。
スケール 数値 現在のスケール。
スクロールバー ScrollbarPair | null このワークスペースのスクロールバー(存在する場合)。
scrollX 数値

ワークスペースの原点を基準とする現在の水平スクロール オフセット(ピクセル単位)。

ビューと、そのビューの下に移動するキャンバスについて考えると便利です。キャンバスを右に動かすと値が正になり、キャンバスの左側がビューに「見える」ようになります。キャンバスが左に移動すると、この値は負の値になり、ビューはキャンバスの右側を「見る」ようになります。

この値について紛らわしいのは、この値が含まれておらず、absoluteLeft offset も含まれていないことです。これは、viewLeft 値の計算に使用されるためです。

viewLeft は、ワークスペースの原点を基準として(ピクセル単位ですが)、ワークスペースの原点は、(少なくとも有効になっている場合は)ワークスペースの左上隅になります。ツールボックスの下に隠れないように、blocklyDiv の左上からシフトされています。

ワークスペースが有効な場合、viewLeft とワークスペースの原点は同じ X の位置にあります。キャンバスがビューの下で右にスライドすると、この値(scrollX)は正の値になり、viewLeft はワークスペースの原点に対して負になります(ワークスペースの原点は、キャンバスの移動に伴ってキャンバス上の点が右にスライドするようなものです)。

したがって、ScrollX に absoluteLeft を含む場合、ワークスペースの起点をある意味「シフト解除」します。つまり、viewLeft は、ワークスペースの左端ではなく、blocklyDiv の左端を表します。

scrollY 数値

ワークスペースの原点を基準とする現在の垂直方向スクロール オフセット(ピクセル単位)。

ビューと、そのビューの下に移動するキャンバスについて考えると便利です。キャンバスが下に移動すると、この値はより正になり、ビューはキャンバスの上部を「見る」ようになります。キャンバスが上に移動するほど、この値は負の値になり、ビューはキャンバスの下部を「見る」ようになります。

この値について紛らわしいのは、この値が含まれておらず、absoluteTop offset が含まれてはいけないことです。これは、viewTop 値の計算に使用されるためです。

viewTop は、ワークスペースの原点を基準とする相対サイズです(ピクセル単位です)。ワークスペースの原点は、(少なくとも有効になっている場合は)ワークスペースの左上隅になります。ツールボックスの下に隠れないように、blocklyDiv の左上からシフトされています。

ワークスペースが有効な場合、viewTop とワークスペースの原点は同じ Y の位置にあります。キャンバスが下に向かってスライドすると、この値(scrollY)が正の値になり、viewTop がワークスペースの原点に対して負の値になります(ワークスペースの原点の画像は、キャンバスの移動に伴ってキャンバスのドットが下方向にスライドします)。

したがって、ScrollY に absoluteTop が含まれている場合、ある意味、ワークスペースの起点の「シフト解除」が行われます。つまり、viewTop がワークスペースの上端ではなく、blocklyDiv の上端を表します。

startScrollX 数値 スクロール開始時の横方向スクロールの値です(ピクセル単位)。
startScrollY 数値 スクロール開始時の垂直方向のスクロール値(ピクセル単位)。
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
ゴミ箱 ゴミ箱 | null ワークスペースのゴミ箱(ある場合)。
zoomControls_ ZoomControls | null

Methods

メソッド 修飾子 説明
addTopBlock(block) 上位のブロックのリストにブロックを追加します。
addTopBoundedElement(element) 制限付きの要素を最上位の境界要素のリストに追加します。
addTopComment(comment) 上位のコメントのリストにコメントを追加します。
centerOnBlock(id, blockOnly) ワークスペースをスクロールして、該当のブロックを中央揃えにします。ブロックの下に他のブロックがスタックされている場合は、blockOnly が true である場合を除き、ワークスペースはスタックの中央に配置されます。
cleanUp() 列内のすべてのブロックを並べ替えて、ワークスペースをクリーンアップします。
clear() ワークスペース内のすべてのブロックを、サイズ変更を防ぐために最適化して廃棄します。
createDom(opt_backgroundClass, injectionDiv) ワークスペースの DOM 要素を作成します。
createVariable(name, opt_type, opt_id) 指定した名前で新しい変数を作成します。フライアウトを更新して、新しい変数がすぐに表示されるようにします。
deleteVariableById(id) 渡された ID で変数を削除します。フライアウトを更新して、変数が削除されたことをすぐに表示します。
dispose() このワークスペースを破棄します。メモリリークを防ぐため、すべての DOM 要素とのリンクを解除します。
getAllBlocks(ordered) ワークスペース内のすべてのブロックを検索します。ブロックは必要に応じて位置順に並べ替えられます(上から下にわずかに LTR または RTL バイアスがかかります)。
getAudioManager() このワークスペースのオーディオ マネージャーを取得します。
getBlockById(id) このワークスペースで、指定した ID のブロックを見つけます。
getBlocksBoundingBox() ワークスペース上のブロックの境界ボックスを計算します。座標系: ワークスペースの座標。
getBubbleCanvas() バブルのサーフェスを形成する SVG 要素を取得します。
getButtonCallback(key) フライアウト内のボタンとラベルのクリックについて、指定されたキーに関連付けられたコールバック関数を取得します。
getCanvas() 描画サーフェスを形成する SVG 要素を取得します。
getComponentManager() このワークスペースのコンポーネント マネージャーを取得します。
getCursor() このワークスペースのカーソル。
getDragTarget(e) ポインタ イベントが終わっているドラッグ ターゲットを返します。
getFlyout(opt_own) このワークスペースに関連付けられているフライアウトのゲッター。このフライアウトは、ツールボックスの設定に応じて、ツールボックスまたはワークスペースが所有します。フライアウトがない場合は null になります。
getGrid() このワークスペースのグリッド オブジェクトを取得します。オブジェクトが存在しない場合は null を返します。
getInverseScreenCTM() 反転画面の CTM のゲッター。
getMarkerManager() このワークスペースのマーカー マネージャーを取得します。
getMetricsManager() このワークスペースの指標マネージャーを取得します。
getParentSvg() このワークスペースを含む SVG 要素を取得します。注: このメソッドは、ワークスペースが DOM に挿入された後にのみ呼び出されると想定しています。
getRenderer() このワークスペースに接続されているブロック レンダラを取得します。
getRootWorkspace()
getScale() ワークスペースのズーム係数を取得します。ワークスペースに親がある場合は、親を呼び出してワークスペースのスケールを取得します。
getSvgGroup() ワークスペースの SVG グループを返します。
getTheme() ワークスペース テーマ オブジェクトを取得します。
getToolbox() このワークスペースに関連付けられているツールボックスのゲッター(存在する場合)。
getToolboxCategoryCallback(key) 指定されたキーに関連付けられたコールバック関数を取得し、このワークスペースにカスタム ツールボックス カテゴリを入力します。
getTopBlocks(ordered) トップレベル ブロックを見つけて返します。ブロックは必要に応じて位置順に並べ替えられます(上から下にわずかに LTR または RTL バイアスがかかります)。
getTopBoundedElements() トップレベルの制限付き要素を見つけて返します。
getWidth() ワークスペースの水平オフセットを返します。XML の LTR/RTL の互換性を対象としています。
hideChaff(onlyClosePopups) ツールチップ、コンテキスト メニュー、プルダウンの選択などを閉じる
hideComponents(onlyClosePopups) 自動非表示のコンポーネント(フライアウト、ゴミ箱、ユーザーが登録したコンポーネントなど)を非表示にします。
highlightBlock(id, opt_state) ワークスペースでブロックをハイライト表示またはハイライト表示します。ブロックのハイライト表示は、現在実行中のブロックを視覚的にマークするためによく使用されます。
isDraggable() このワークスペースはドラッグ可能ですか?
isDragging() ユーザーは現在、ブロックをドラッグしているか、フライアウト/ワークスペースをスクロールしているか?
isMovable()

このワークスペースは移動できますか?

つまり、ユーザーは入力によってワークスペースの X Y 座標の位置を変更できるということです。これは、スクロールバー、スクロール ホイール、ドラッグ、またはスクロール ホイールまたはピンチを使用したズーム(マウスの位置の中心にズームが配置されるため)によって行われます。X Y 座標はプログラムで決定されるため、ズーム コントロールを使用したズームは含まれません。

isMovableHorizontally() このワークスペースは水平方向に移動できますか?
isMovableVertically() このワークスペースは上下に移動できますか?
isVisible() isvisible のゲッター
markFocused() このワークスペースを、現在フォーカスされているメイン ワークスペースとしてマークします。
moveDrag(e) このワークスペース上のオブジェクトのドラッグをトラッキングします。
newBlock(prototypeName, opt_id) 新しく作成されたブロックを取得します。
Paste(state) 指定したブロックまたはワークスペースのコメントをワークスペースに貼り付けます。オブジェクトの容量が残っているかどうかの確認は行いません。確認は、このメソッドを呼び出す前に行う必要があります。
recordDragTargets() このワークスペースのすべての削除領域のリストを作成します。
refreshTheme() テーマを更新したら、ワークスペース上のすべてのブロックを更新します。
registerButtonCallback(key, func) フライアウト内のボタンとラベルのクリックのために、特定のキーに関連付けられたコールバック関数を登録します。たとえば、XML の で指定されたボタンは、registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction) の呼び出しと一致する必要があります。
registerToolboxCategoryCallback(key, func) 特定のキーに関連付けられたコールバック関数を登録して、このワークスペースのカスタム ツールボックス カテゴリに値を入力する。例として、変数とプロシージャのカテゴリをご覧ください。
removeButtonCallback(key) フライアウトのボタンクリックに対するコールバックを削除します。
removeToolboxCategoryCallback(key) ツールボックス内のカスタム カテゴリ名のクリックに対するコールバックを削除しました。
removeTopBlock(block) 上位のブロックのリストからブロックを削除します。
removeTopBoundedElement(element) 上位境界要素のリストから境界要素を削除します。
removeTopComment(comment) 上位のコメントのリストからコメントを削除します。
renameVariableById(id, newName) 変数名を変更するには、変数マップで名前を更新します。フライアウトを更新して、名前が変更された変数がすぐに表示されるようにします。
render() ワークスペース内のすべてのブロックをレンダリングします。
resize() すべてのワークスペースの Chrome(ツールボックス、ゴミ箱、スクロールバーなど)のサイズを変更し、位置を変更します。この関数は、ゴミ箱、ズーム、ツールボックスなどの寸法と位置の再計算を必要とする変更(ウィンドウのサイズ変更など)時に呼び出される必要があります。
scrollCenter() ワークスペースを中央に配置します。
setResizeHandlerWrapper(handler) 後で破棄の際に削除できるように、サイズ変更ハンドラのデータを保存します。
setResizesEnabled(enabled) このワークスペースでサイズ変更が有効になっているかどうかを更新します。有効にすると、必要に応じてワークスペースのサイズが変更されます。無効にすると、再度有効にするまでワークスペースのサイズは変更されません。パフォーマンスのために、バッチ オペレーション中にサイズ変更を回避するために使用します。
setScale(newScale) ワークスペースのズーム倍率を設定します。
setTheme(theme) ワークスペースのテーマ オブジェクトを設定します。テーマを渡さない場合は、デフォルトで Classic テーマになります。
setVisible(isVisible) ワークスペースの表示 / 非表示を切り替えます。現時点ではメイン ワークスペースのみを対象としています。
startDrag(e, xy) このワークスペースでオブジェクトのドラッグの追跡を開始します。
translate(x, y) このワークスペースを新しい座標に変換します。
updateInverseScreenCTM() 反転画面 CTM をダーティとしてマークします。
updateToolbox(toolboxDef) 既存のツールボックスのブロックツリーを変更します。
zoom(x, y, 金額) 指定された (x, y) 座標を基準として、または中心となるようにワークスペースを拡大または縮小します。
zoomCenter(type) ズームイン / ズームアウトを使用して、ビューの中央にあるブロックをズームする。
zoomToFit() 可能であれば、ワークスペースに収まるようにブロックをズームしてください。