Flash AS3 动态添加子项。命名它们并调用每个分开的问题
Posted
技术标签:
【中文标题】Flash AS3 动态添加子项。命名它们并调用每个分开的问题【英文标题】:Flash AS3 dynamically added children . Problem with naming them and calling each separated 【发布时间】:2011-05-24 01:41:02 【问题描述】:在我将每个孩子动态添加到舞台后,我需要访问它们,但我无法弄清楚如何。
点击它会将图像添加到舞台上,我需要使用 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;
编辑: 谢谢您的回答 。考虑到我想让它们稍后可移动,我将尝试使用数组来完成。 该项目的重点是在舞台上创建星星,您可以在其中单击并让一个点从一颗星星移动到另一颗星星,使它们在击中它们时发光。
【问题讨论】:
【参考方案1】:如果您以后需要通过名称访问它们,您可以通过命名符号来实现:
...
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);
...
【讨论】:
+1。我这样做的方式。如果 Vectors 让您投赞成票,请提及其用途。【参考方案2】:您可以使用 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
【讨论】:
以上是关于Flash AS3 动态添加子项。命名它们并调用每个分开的问题的主要内容,如果未能解决你的问题,请参考以下文章