3

在我将每个孩子动态添加到舞台后,我需要访问它们,但我在弄清楚如何操作时遇到了问题。

单击它会将图像添加到舞台上,我需要使用 for() 一次使它们发光,但我不知道如何用自己的名称 (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 回答