Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ссылки в массиве на методы (http://www.flasher.ru/forum/showthread.php?t=139556)

flyberok 04.05.2010 20:53

Ссылки в массиве на методы
 
Подскажите каким образом можно добавить MovieClip-ы из библиотеки.
Например имеется 10 MovieClip-ов, делаем для них классы (в Symbol Propities ставим галочку Export for Action Script и прописываем класс ), а потом я хотел сделать так:
Код AS3:

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

Код AS3:

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

вот здесь ошибка.
если вы хотите просто создать заполненный массив, используйте литерал
Код AS3:

var heroes:Array = [new pikN()];

а если заполнить пустой, то оберните в метод и избавтесь от "var"

КорДум 04.05.2010 21:01

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

flyberok 04.05.2010 21:10

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

Добавлено через 30 минут
как я понял если я напишу
Код AS3:

var heroes:Array = [new pikN()];

то это будет ссылка на результат выполнения конструктора, а мне надо ссылка на метод, значит надо так
Код AS3:

var heroes:Array = [new pikN];

без ()

Wolsh 04.05.2010 23:28

Код AS3:

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



Часовой пояс GMT +4, время: 22:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.