帮助将基于字符串的数组转换为类变量名

时间:2011-05-29 10:17:34

标签: flash actionscript-3

我有一个数组,它是类引用的文字名称。例如。在我的主要课程中我有

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错误,因为我试图补间一个字符串),这对我没有帮助。

考虑处理我正在尝试做的事情有什么更好的方式?

非常感谢!!

1 个答案:

答案 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]