Помогите преобразовать строковый массив в имя переменной класса - PullRequest
0 голосов
/ 29 мая 2011

У меня есть массив, которые являются буквальными именами ссылок на классы. Например. в моем основном классе у меня есть

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 (и выдает ошибку tweenLite, потому что я пытался обработать строку), что мне не помогает.

Как лучше думать о том, что я пытаюсь сделать?

Большое спасибо заранее !!

1 Ответ

2 голосов
/ 29 мая 2011

Вместо этого вы можете использовать инициацию [].Он будет работать не только с тем, чего вы пытаетесь достичь, но и быстрее, чем с новым.

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...