【使い方】 「null」か「undefined」を入力して送信すると、UIクラッシュします。 null生成やundf生成用にバックパックなどして構いません。 【起こっている事】 リストにnull型やundefined型の値が含まれる状態でそのリストのモニターを表示しようとすると、UIクラッシュを引き起こします。 【説明】 『nullの作り方』 定義ブロックの引数のデフォルト値を利用したnull値の作成方法です。 任意の一時リストを用意します。 真偽値引数を一つ持つ新しい定義ブロックを作成し、 その定義の「procedures_prototype」ブロックの「mutation」にある「argumentdefaults」の値を「[[null]]」に置き換えます。 それから、作成した定義内に「data_setvariableto」ブロックを用意し、値部分(inputs.VALUE)に定義の真偽値引数ブロックを、フィールド部分(fields.VARIABLE)の中身(代入先変数の情報)の「name」「value」「id」に一時リストの情報を入れます。 その後に「data_itemoflist」ブロックを利用して一時リストの最初の値を取得する事でnull値が取れます。 『undefinedの作り方』 forEachブロックを利用したundefined値の作成方法です。 任意の一時リストを用意します。 「control_for_each」ブロックを用意し、値部分(inputs.VALUE)に適当な数字(10など)を入れ、フィールド部分(fields.VARIABLE)はプルダウンから一時リストを選択します。 実行すると、本来配列が期待されるvalueに数値型が代入されているため「data_itemoflist」の様な一部のリストカテゴリレポーターブロックの返り値からundefined値が取れます。 【opcodeの説明】 『procedures_prototype』 opcodeはprocedures_prototype。 定義ブロックを作成した際に作成され、各種引数の情報などを持つ。 それ単体ではあまり有用ではない。 『control_for_each』 opcodeはcontrol_for_each。 英語版では「For each () in []」ブロック。 日本語では「()の要素を[]に入れて繰り返す」ブロック。 制御カテゴリのブロック。 廃止ブロック(隠しブロック)で、ブロックパレットには存在しないが実際に動作する利用可能ブロック。jsonハックやその他の方法で入手可能。 『data_setvariableto』 opcodeはdata_setvariableto。 日本語では「[]を()にする」ブロック。 変数カテゴリのブロック。 『data_itemoflist』 opcodeはdata_itemoflist。 日本語では「[]の()番目」ブロック。 リストカテゴリのブロック。 【その他諸々】 『配列型でないリストを表示してもUIクラッシュする』 上記のundefined値の作り方を実行した際の一時リストを表示する事でも引き起こせます。 リストの中身が数値型(配列型でない)なので、そのリストをそのまま表示してもUIクラッシュを引き起こします。 『翻訳ブロックを利用したundefined値の作成方法』 「翻訳」拡張機能を追加します。 翻訳ブロックを用意し、翻訳対象には適当な内容を、国部分にnnなどを入れて返り値を見ます。 存在しない国コードを渡す事で、APIからの200レスポンスを想定する箇所で400レスポンスが返るのでデータが正しく取れず、undf値が返ります。 【情報】 バックパックはご自由にどうぞ。 利用の際は、対応外のブロックがある状態のスプライトはスクリプトエリアが消し飛ぶ事に注意してください。 このプロジェクトは非共有になる可能性があります。(クラッシュプログラムの拡散になりかねない)