- ベストアンサー
AS3.0でたくさんあるムービークリップの記述を簡略化する方法はある?
- AS3.0を使用していると、複数のムービークリップの記述が長くなってしまい困っています。一つにまとめる方法はあるのでしょうか?
- また、マウスイベントのリスナーも多く作成する必要があります。省略する方法はないのでしょうか?
- AS3.0で多数のムービークリップとマウスイベントを扱う場合、効率的な記述方法や省略方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
xx0から始まる連番だと楽なのですが… for (var i:int = 0; i < numChildren; i++ ) { getChildByName( parseInt ("xx" + i)).alpha = 0; getChildByName( parseInt ("xx" + i)).buttonMode = ture; getChildByName( parseInt ("xx" + i)).addEventListener(MouseEvent.ROLL_OVER, xxxOver); getChildByName( parseInt ("xx" + i)).addEventListener(MouseEvent.ROLL_OUT, xxxOver); getChildByName( parseInt ("xx" + i)).addEventListener(MouseEvent.CLICK, xxxOver); } しかし、名前がばらばらということで、 for (var i:int = 0; i < numChildren; i++ ) { getChildAt( parseInt (i)).alpha = 0; etc....... } で、できますが、これだと、ステージ上 (もしくはMovieClipの中)のすべてのMovieClipに適用されてしまいます。 そこで、適用したいMCを選択して新たにシンボル化してyyと名前をつけ、 for (var i:int = 0; i < numChildren; i++ ) { yy.getChildAt( parseInt (i)).alpha = 0; etc....... } もしくは、シンボル化したyyの中で、 for (var i:int = 0; i < numChildren; i++ ) { getChildAt( parseInt (i)).alpha = 0; etc....... } ただこれだと、addEventListener、alphaをそれぞれ個別に適用できませんし、 シンボル化してしまうので、FLASH上での取り回しが少し大変になります。 ほかにもやり方あると思いますけど...。