0

我正在创建一个从特定源读取 XML 文件的 Flash 应用程序。XML 文件最多包含 5 个节点,每个节点包含名称、描述和图像 URL。

为了表示每个节点中的数据,我创建了一个包含另一个影片剪辑(从 url 加载图像)、一个短动态文本框(用于名称)和一个长动态文本框(用于描述)的影片剪辑。

在代码中,我可以通过 -

new_mc.myname.text = "一些文字"; new_mc.image_mc.loadMovie("path_to_image");

只要我使用 duplicateMovie() 并使用实例名称“new_mc”就可以了

我的问题从循环开始......

因为我可以在 for 循环中读取 XML 节点,所以我想我只是动态地创建影片剪辑并访问其中的所有对象。

因此,在 for 循环中,我创建了一个实例,例如-

 myform.duplicateMovie("new_mc"+i,i)

但我无法访问使用实例名称 =“new_mc”+ i 创建的电影

如何访问新创建的影片剪辑实例,如 new_mc0、new_mc1、new_mc3、...

以便我可以访问其中的对象?

由于您有足够的经验,因此解决方案可能对您来说足够简单,但我是这里的新手,请求帮助:)

祝大家有美好的一天!

4

1 回答 1

0

我几乎从未在 AS2 中使用过 duplicateMovie() 方法,但如果这是您的选择,您可以像这样访问它们:

this["new_mc"+i];

否则,一个好的做法是始终引用您的实例以更好地控制它:

var forms:Array = new Array();

for(...)
   forms[i] =  myform.duplicateMovie("new_mc"+i,i);

...

forms[2].myname.text = "hello";
  • 首先我会建议你使用 AS3,但你仍然使用 AS2 可能是有原因的......
  • 第二件事,在 AS2 中创建实例,在库中定义 MovieClips 并使用 attachMovie(); 会更加顺畅。创建实例的方法。
于 2009-03-21T14:01:37.887 回答