2012-05-14 27 views
0

我正在开发一个动态生成XML导航的Flash项目。现在我试图让它与数组一起工作,这样一旦我知道逻辑工作,我就可以将它调整到xml。我是as3的新手,学习有点颠簸。我一直在寻找解决方案,但是我看到的很多例子要么太简单,不能回答我的问题,要么太复杂,因为我处于新的一面。这是我正在使用的代码。引用影片剪辑的麻烦

var clientList:Array = new Array("Client1","Client2","Client3","Client4","Client5","Client6","Client7","Client8","Client9","Client10","Client11","Client12","Client13","Client14","Client15"); 
for each (var cName in clientList){ 
    var newClientBtn:btnClientNav = new btnClientNav(); 
    newClientBtn.x = workX; 
    newClientBtn.y = workY; 
    workY += newClientBtn.height; 
    newClientBtn.mcClientName.text = cName; 
    lContent.mcWork.addChild(newClientBtn.name); 
    trace(newClientBtn); 
} 

我不能指出如何正确引用动态创建的剪辑。我在按钮中有一个动态文本框,但无法弄清楚如何正确引用它来改变它,然后我的下一个问题将引用按钮来进行翻转和点击代码。我知道这可能是一些简单的解决办法,但我一直在寻找它太久,我的眼睛开始交叉..先谢谢你提供任何建议。

+0

btnClientNav是一个导出到Actionscript的'MovieClip'吗? – PanterA

回答

0

为什么不将您正在创建的剪辑存储在稍后可以访问的对象中?

如果你想通过名字虽然引用一个影片剪辑,这样做的一个方法是:

var referenceMC:MovieClip = MovieClip(containerMC.getChildByName(“targetMC”)); 

如果这是一个文本字段,或者您是后一个按钮,我相信你会做同样的而是将getChildByName的结果转换为您所需的控件。

我也相信你想添加按钮本身作为一个孩子,而不是将其名称传递给你的addChild调用?

+0

将按钮存储在对象中意味着什么?你的意思是客户类吗?如果它们是在一个自定义类中创建的,它们不会是同样的问题吗?你将如何在时间表中引用它们。我从来没有在ActionScript中编写过自定义类。我已经用objectiveC与他们合作过,但由于某种原因,这对我更有意义。我不确定什么时候适合在Flash中使用它们,特别是当我将它创建为动画片段时。 – Tenthrow

+0

我以为你可以有另一个数组,你只需将新的影片剪辑分配给该数组,那么如果你需要再次访问你的newClientBtn,那么类似这样的事情: 'var mybuttons:Array = new Array(); '并在你的循环中'mybuttons.push(newClientBtn);' – Allar