- 締切済み
flashAS3.0でのランダムモーションの作り方
FlashのAS3.0でhttp://www.geocities.jp/flashiroha/script/as11.html のような、ランダムに再生されるモーションが作りたいです。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
その ランダムモーション とやらがどれを指すのかわかりませんが 「1.位置無作為にインスタンスを発生させる。」 を ActionScript 3.0 流に書き直すなら次のようになります。 まず 300×200px に設定したステージ上に★を描き その★を基準点「中央」にしたムービークリップに変換します。 するとライブラリにそのムービークリップが登録されるので そのライブラリのムービークリップを選択して 「プロパティ」より □ActionScript用に書き出し にチェックを入れ 「クラス」に例えば「Star」という名前を付けます。 ※【添付図】参照↓ また ステージ上には 「start」ボタンと「reset」ボタンを用意して それぞれには 「start_btn」,「reset_btn」という "インスタンス名" を付けておきます。 また ステージ上の★ムービークリップは削除しておきます。 そしてタイムラインのフレーム1に次のようなスクリプトを書きます。 -------------------------------- //変数 i の宣:整数 var i:int; //makeStarの定義 function makeStar(e:Event):void { if (i <= 50) { this["star" + i] = new Star(); this["star" + i].x = Math.random() * 300; this["star" + i].y = Math.random() * 200; this["star" + i].alpha = 0.1; this["star" + i].addEventListener(Event.ENTER_FRAME,rotateStar); this.addChild(this["star" + i]); i++; } else { this.removeEventListener(Event.ENTER_FRAME,makeStar); } } //rotateStar の定義 function rotateStar(e:Event):void { e.target.rotation += 30; if (e.target.alpha<1) { e.target.alpha+=0.05; } else { e.target.alpha=1; } } //start_btnクリック時に startMakeStar を実行 start_btn.addEventListener(MouseEvent.CLICK,startMakeStar); //startMakeStar の定義 function startMakeStar(e:MouseEvent):void { i=0; this.addEventListener(Event.ENTER_FRAME,makeStar); reset_btn.addEventListener(MouseEvent.CLICK,resetMakeStar); start_btn.removeEventListener(MouseEvent.CLICK,startMakeStar); } //resetMakeStar の定義 function resetMakeStar(e:MouseEvent):void { for (var j:int=0; j<=50; j++) { if (this["star"+j]!=null) { this.removeChild(this["star"+j]); this["star"+j] = null; } } this.removeEventListener(Event.ENTER_FRAME,makeStar); start_btn.addEventListener(MouseEvent.CLICK,startMakeStar); reset_btn.removeEventListener(MouseEvent.CLICK,resetMakeStar); } -------------------------------- 回答文字数制限の都合上 コメント行 ( // で始まる行) が十分書けませんでした(悪しからず)。