PDA

Просмотр полной версии : Ссылки в массиве на методы


flyberok
04.05.2010, 20:53
Подскажите каким образом можно добавить MovieClip-ы из библиотеки.
Например имеется 10 MovieClip-ов, делаем для них классы (в Symbol Propities ставим галочку Export for Action Script и прописываем класс ), а потом я хотел сделать так:
class hero extends addSomeThing {
var heroes:Array=new Array; //сылка на метод

var heroes[0]=new pikN(); //pikN-один из классов MovieClip

function hero() {
var HeroSave=new Sprite();
addChild(HeroSave);
var pik=heroes[0];
HeroSave.addChild(pik);
}
}
Хотел потом создать цикл и добавлять все 10 мувиков в экземпляр основного класса.
И в случае чего чтобы можно было бы опять создать любой мувик на сцене через ссылку на метод.
А на меня прога ругается: 1086: Syntax error: expecting semicolon before leftbracket.

a_[w]
04.05.2010, 20:56
var heroes[0]=new pikN(); //pikN-один из классов MovieClip
вот здесь ошибка.
если вы хотите просто создать заполненный массив, используйте литерал
var heroes:Array = [new pikN()];
а если заполнить пустой, то оберните в метод и избавтесь от "var"

КорДум
04.05.2010, 21:01
Дык вы зачем-то ячейку массива определяете как новую переменную. Уберите var. И вообще, это ссылка на конструктор.

flyberok
04.05.2010, 21:10
я только учусь, вот поэтому такие ошибки. Видимо мне надо ссылка на конструктор. Спасибо за советы.

Добавлено через 30 минут
как я понял если я напишу
var heroes:Array = [new pikN()];
то это будет ссылка на результат выполнения конструктора, а мне надо ссылка на метод, значит надо так
var heroes:Array = [new pikN];
без ()

Wolsh
04.05.2010, 23:28
import pikN;
import pikM;
...
private var _heroes:Array = new Array();
...
_heroes[0] = pikN;
_heroes[1] = pikM;
...
var hero:MovieClip = new _heroes[1];