« Flash でアニメーション作成 ひととおり | メイン | 天然パーマ »

Flash: タイムライン上のオブジェクト同一性について

あとで読む
flash_object_on_timeline.png

ひととおりアニメーション作成 してみて、「モーショントゥイーンべんりー」とか喜んでいたのだが、「始点と終点のオブジェクトって同じモノなの?」とか疑問が湧いてきたので、実験してみた。あ、えーと、AS2.0で記述。

たとえば、1フレーム目に「丸」オブジェクトを置いて、10フレーム目にキーフレームを挿入する。なんとなくコピーされたように見えるが、10フレーム目の「丸」オブジェクトは移動してプロパティ値が変わったとしても、同じオブジェクトのようである。これは以下のようにして確認できる。

1フレーム目の「丸」オブジェクトthe_circle というインスタンス名をつける。そして、1フレーム目のフレームアクション

function trace_the_circle() {
	var object_path:String = the_circle ? the_circle : 'undefined';
	trace(_currentframe+': '+object_path);
}
trace_the_circle();

10フレーム目のフレームアクション

trace_the_circle();

と記述して、再生させると「出力」に

1: _level0.the_circle
10: _level0.the_circle

と、10フレーム目のオブジェクトにはインスタンス名が(編集画面上は)ないにもかかわらず、同じオブジェクトのようである。

しかし、20フレーム目に空白キーフレームを挿入し、オブジェクトがないフレーム列を挿入すると、30フレーム目に「丸」オブジェクトを復活させたとしても、これは違うオブジェクトのようである。

1: _level0.the_circle
10: _level0.the_circle
20: undefined
30: undefined
40: undefined

なお、10フレーム目の「丸」オブジェクトに別のインスタンス名(たとえば、the_circle_2)をつければ、オブジェクト同一性は失われるようである。

結論: Flashオブジェクトをなんとなくインテリジェントに処理するらしい。

でも、分かりにくいので、シンプルな仕様にしてほしい。

おまけ

Trackbacks

Trackback URL:
http://groundwalker.com/mt/gwtb.cgi/327

« Flash でアニメーション作成 ひととおり | メイン | 天然パーマ »

スポンサー

関連ブログ

あわせて読みたい
Powered by
Movable Type 3.34
track feed
groundwalker

連絡先