2010-09-14 35 views
0

我想通过用变量替换长路径或类似的东西来使我的代码更容易阅读。ActionScript代码中的冗长显示列表路径?

在我的代码中,我可以多次定位实例,但实例在显示列表中可以有一个很长的路径。例如:myButton实例可以位于myButtonsPanel.section2.redArea.myButton,或类似的东西。

是否可以将这条长路径替换为变量或常量?是这样的:

var myPath = myButtonsPanel.section2.redArea; 
因此

,调用实例是:

myPath.myButton; 

回答

1

不是路径,但实际按钮

 
var myButton:MovieClip = myButtonsPanel.section2.redArea.myButton; 

虽然你也可以这样做:

 
var myContainer:MovieClip = myButtonsPanel.section2.redArea; 

//then access your button like this 
myContainer.myButton 

它确实取决于但是这个想法是,不是存储路径,而是直接引用MovieClip,然后使用该变量访问此MovieClip

+0

谢谢,这工作正常。然而,我有点惊讶,只有影片剪辑似乎与容器的方式,而不是Sprites。因为我不使用时间线,所以我从不使用MovieClips,并在属性面板中将我的IDE资源导出为Sprites。这是预期的吗?为什么? – TheDarkIn1978 2010-09-14 06:16:23

+0

它应该适用于任何显示对象。 – 2010-09-14 07:57:31

+1

@ TDI1978。可能你正在做类似于:var myContainer:Sprite = myButtonsPanel.section2.redArea;'然后是'myContainer.myButton'。 '雪碧'是“密封”的。意思是,它只有一套固定的属性/方法。 'Sprite'中没有'myButton'属性。所以编译器会给你一个错误。如果您将'myContainer'键入为'MovieClip',则会编译,因为'MovieClip'是'动态的。所以,属性可以在运行时添加到它。因此,根据定义,它*可以*在运行时具有myButton属性,因此编译器不会抱怨(尽管您的代码可能会在运行时中断)。 – 2010-09-15 03:54:04