ActionScript2.0
AS2.0を忘れないうちに復習。
class~extends MovieClipとしていろいろいじってみた。
ちょっと悩んだのがclassの中でfunction onEnterFrame(){}と定義した時。
必要なくなったらenterFrameを消したいのだがdeleteがどうしてもできない。
とりあえずonEnterFrame = null;でenterFrame内の処理はクリアできた。
deleteはできないのかなー?
とりあえずこんなもんを作ってみた。
コメント
おお!サクラじゃー!美しい。スチャ!って感じで花びらが広がるのがカッコイイです。
投稿者: 宮地 成太郎 | 2004年02月22日 10:00
最初、花びら開くのfor文のループでやってたんだけどいっぺんに動かすと動作が重くなるんでenterFrameでタイミングずらしてみたら、ちょっと面白い動きになりました。春になるまでにもうちょっとカッコヨクしたいとこです。
投稿者: kazu | 2004年02月24日 19:40
ActionScript 2.0のクラスに定義したfunctionは、消せません。functionをプロパティと同じように、ダイナミックに設定・削除できるのは、ECMAScript(ECMA-262第3版仕様)の特徴です。
function myEnterFrame () {}として、onEnterFrame = myEnterFrame;で設定、delete onEnterFrmae;で削除する方法になるでしょう。
投稿者: 野中 文雄 | 2004年02月24日 23:41
野中さんありがとうございます!
なるほど、「ダイナミックに設定・削除」ということを考えると
function onEnterFrame(){}
などとはやらないほうが良さそうですね。
コメントを参考に実験してみました。
class test1 extends MovieClip{
function test1(){
onPress = startEnterFrame;
onRelease = stopEnterFrame;
}
function myEnterFrame(){
trace("enterFrame実行中");
}
function startEnterFrame(){
onEnterFrame = myEnterFrame;
}
function stopEnterFrame(){
delete onEnterFrame;
}
}
投稿者: kazu | 2004年02月25日 01:13