3

ステージに動的に追加した後、各子にアクセスする必要がありますが、その方法を理解するのに問題があります。

クリックすると、イメージがステージに追加され、 for() を使用して一度に 1 つずつ光らせる必要がありますが、それぞれに独自の名前 ( name + i ) を付けてアクセスする方法がわかりません。後で。

前もって感謝します

stage.addEventListener(MouseEvent.MOUSE_DOWN, clicky);
var i = 1; 
function clicky(event:MouseEvent):void
{
    i++;
    var fl_MyInstance:LibrarySymbol = new LibrarySymbol();
    addChild(fl_MyInstance);


    var myStageX:Number = Math.round(event.stageX);
    var myStageY:Number = Math.round(event.stageY);

    fl_MyInstance.x = myStageX;
    fl_MyInstance.y = myStageY;

        if(myStageX<150){
            fl_MyInstance.scaleX = fl_MyInstance.scaleY = 1-(myStageX/300);
        }else{
            fl_MyInstance.scaleX = fl_MyInstance.scaleY = 0.5;
            }
}

編集: ご回答ありがとうございます。後でリムーバブルにしたいので、配列でやってみます。このプロジェクトのポイントは、ステージ全体に星を作成することです。クリックすると、ある星から別の星にドットが移動し、当たったときに光ります。

4

2 に答える 2

3

後で名前でアクセスする必要がある場合は、シンボルに名前を付けることでアクセスできます。

...
var fl_MyInstance:LibrarySymbol = new LibrarySymbol();
fl_MyInstance.name = "symbol_" + i;
addChild(fl_MyInstance);
...

代わりに、それらを配列またはベクターに追加します。こうすることで、後でそれらに簡単にアクセスできます。処分するときにもいいです。

...
var fl_MyInstance:LibrarySymbol = new LibrarySymbol();
_symbolList.push(fl_MyInstance)
addChild(fl_MyInstance);
...
于 2010-12-11T21:32:15.297 に答える
1

getChildren を使用して、配列内のそれらにアクセスできます。このようなものがうまくいくはずです:

var children:ArrayCollection = this.getChildren();

foreach(var child:LibrarySymbol in children)
{
...do whatever
}

それらに個別にアクセスしたい場合は、getChild または getChildAt などを使用できます。動的データで命名規則を使用することは、おそらく最も難しい方法です。

詳細については、こちらをご覧ください: http://livedocs.adobe.com/flex/3/html/help.html?content=05_Display_Programming_08.html

于 2010-12-11T21:32:33.497 に答える