Asm class

テスト用バイトコードアセンブラ。

Constructors

Asm()

Properties

hashCode int
The hash code for this object.
no setterinherited
length int
現在のバイト位置(後方ジャンプのオフセット計算用)。
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

build() Uint8List
これまでに積んだActionRecord列の末尾にオペコード0x00(アクション列の終端 マーカー)を1byte追加し、DoActionタグのボディとして使えるバイト列を返す。
getUrl2({int flags = 0}) Asm
ActionGetURL2(オペコード0x9A)。UI8 1byteのflagsをオペランドとして書き込む。 実行時、呼び出し先URLとターゲットはこのアクション実行前にスタックへ積んでおく 必要がある(POP順はターゲット→URL、つまりURL→ターゲットの順にPUSHする)。
gotoFrame(int frame0) Asm
ActionGotoFrame(オペコード0x81)。UI16(リトルエンディアン)の0始まりフレーム 番号frame0をオペランドとして書き込む。実行時、カレントターゲットを該当フレーム へ移動し停止させる。
gotoLabel(String label) Asm
ActionGotoLabel(オペコード0x8C)。ジャンプ先のlabelをSJISのnull終端文字列 としてオペランドに書き込む。実行時、カレントターゲットを該当ラベルのフレームへ 移動し停止させる。
iff(int offset) Asm
ActionIf(オペコード0x9D)。SI16(符号付き16bit・リトルエンディアン)の offsetをオペランドとして書き込む。実行時、スタックからPOPした値が真の場合に このアクションレコード終端位置からoffsetバイト分岐する。
jump(int offset) Asm
ActionJump(オペコード0x99)。SI16(符号付き16bit・リトルエンディアン)の offsetをオペランドとして書き込む。実行時、このアクションレコード終端位置 からのバイトオフセットとして無条件にプログラムカウンタへ加算される。
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
op(int code) Asm
codeをオペランドなしの1byteアクションレコードとしてそのまま書き込む。 Play(0x06)・Stop(0x07)など、オペコードが0x80未満で可変長オペランドを 持たないアクション用。
pushFloat(double v) Asm
ActionPush(オペコード0x96)。型タグ1(浮動小数点数)+ vをFLOAT(4byte・ リトルエンディアン単精度)にエンコードしたバイト列をオペランドとして書き込む。 実行時にスタックへ数値をPUSHする。
pushString(String s) Asm
ActionPush(オペコード0x96)。型タグ0(文字列)+ SJISエンコードしたsのnull終端 バイト列をオペランドとして書き込む。実行時にスタックへ文字列値をPUSHする。
setTarget(String path) Asm
ActionSetTarget(オペコード0x8B)。以降のアクションのカレントターゲットとする pathをSJISのnull終端文字列としてオペランドに書き込む。
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited