首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Actionscript 3按索引访问子对象的子项

Actionscript 3按索引访问子对象的子项
EN

Stack Overflow用户
提问于 2012-05-03 23:12:12
回答 2查看 3.6K关注 0票数 0

所以我在我的库中添加了一个电影剪辑,它包含了更多的组件,我已经能够使用以下命令获得有关这些组件的信息:

代码语言:javascript
运行
复制
try
{
    for (i = 0; i < musicControls.numChildren; i++){
        trace ('\t|\t ' +i+'.\t name:' +  musicControls.getChildAt(i).name + '\t type:' + typeof ( musicControls.getChildAt(i))+ '\t' +  musicControls.getChildAt(i));      
    }
}
catch (error:Error)
{
    trace("Failed:", error.message);
}

上面的脚本返回下面的信息。我想问一下,现在有没有办法通过索引来访问这些孩子。例如,电影剪辑中的一个组件是进度条,我如何引用它?我试过使用getChildByName,但它不起作用,在寻求帮助时,每个人都说使用它很慢。我很抱歉,如果这是一个基本问题,我不是很擅长as3。

代码语言:javascript
运行
复制
|    0.  name:plyControl     type:object    [object Button]
|    1.  name:stopControl    type:object    [object Button]
|    2.  name:nextControl    type:object    [object Button]
|    3.  name:prevControl    type:object    [object Button]
|    4.  name:progressControl    type:object    [object ProgressBar]
|    5.  name:volControl     type:object    [object Slider]
|    6.  name:__id11_    type:object    [object MovieClip]
|    7.  name:__id12_    type:object    [object TLFTextField]
|    8.  name:instance71     type:object    [object MovieClip]
|    9.  name:vizControl     type:object    [object ComboBox]
|    10.     name:__id13_    type:object    [object MovieClip]
|    11.     name:__id14_    type:object    [object TLFTextField]
|    12.     name:instance74     type:object    [object MovieClip]
|    13.     name:__id15_    type:object    [object MovieClip]
|    14.     name:timeControl    type:object    [object TLFTextField]
|    15.     name:instance75     type:object    [object MovieClip]

编辑:或者非常擅长语法和拼写,从外观上看...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-04 00:58:54

下面的代码不能工作吗?

代码语言:javascript
运行
复制
var progressBar:ProgressBar = musicControls.getChildByName("progressControl") as ProgressBar;
if(progressBar)
    //  doStuff

你说getChildByName不工作,你得到了什么错误信息?

票数 2
EN

Stack Overflow用户

发布于 2012-05-04 01:11:30

您正在朝着正确的方向前进,并且实际上已经通过您的演示证明了您可以做到。在舞台上从库资源实例化的任何对象都将始终具有相同的索引结构(毕竟它基本上是原始对象的代理)。因此,如果您知道您的进度条在哪个层上,您的引用将如下所示:

myPointer = musicControls.getChildAt(4);

如果你想通过索引获取一个孩子的孩子,你可以这样做:

musicControls.getChildAt(4).getChildAt(0);

您可以在dot.notation语法中混合和匹配您的操作,因为(在每一步)代码都会从函数调用解析到它返回的对象中。

this.getChildByName("musicControls").progressControl.getChildAt(0)

我希望这能澄清一些事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10434253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档