我有一个数组,它是类引用的文字名称。例如。在我的主要课程中我有
var page1:PageOne = new PageOne();
var page2:PageTwo = new PageTwo();
var page3:PageThree = new PageThree();
var sectionsArray = new Array ('page1', 'page2', 'page3')
我想写什么,但不能写:
var sectionsArray = new Array (page1, page2, page3)
我正在尝试根据这些值补间某些内容,但由于该值的类型为String,因此我无法将这些值与它们所代表的类引用相关联。所以我尝试了类似的东西:
var tweenObj:Object = _sectionsArray[0] as Object
TweenLite.to(tweenObj, 1, {alpha:0});
但所有这一切都是使它成为String类型的Object(并抛出一个tweenLite错误,因为我试图补间一个字符串),这对我没有帮助。
考虑处理我正在尝试做的事情有什么更好的方式?
非常感谢!!
答案 0 :(得分:2)
您可以改为使用[]启动。它不仅适用于您尝试实现的目标,而且比使用新功能更快。
var sections:Array = [page1, page2, page3];
然后在使用对象时,您只需执行以下操作:
TweenLite.to(sections[0], 1, {alpha:0});
由于数组中的所有对象都已经是正确的类型,因此在将它们与Tweenlite
一起使用之前,不需要对它们进行类型转换。
概念证明:
var page1:Sprite = new Sprite();
var page2:Sprite = new Sprite();
var page3:Sprite = new Sprite();
var sections:Array = [page1, page2, page3];
trace(sections[0]);
trace(sections[1]);
trace(sections[2]);
<强>输出:强>
[object Sprite]
[object Sprite]
[object Sprite]