Страница 1 из 1

Loader и MovieClip

Добавлено: 16 янв 2013, 13:25
mastaxys
Доброго дня. Недавно пересел с AS2 на AS3.

Вопрос может быть простецкий, но у меня что голова уже кругом ))

Есть в библиотеке мувик panel со следующей вложенностью других мувиков: item0.image (т.е. panel.item0.image)
В библиотеке присвоил мувику panel класс my_panel.

Далее с помощью Loader'а подгружаю картинку :

Код: Выделить всё

loader.load(new URLRequest(friends[0].photo)); //из массива достаю адрес картинки
ВОПРОС!
1.Как добавить мувиклип panel на сцену с нужными координатами?
2.Как в мувиклипе panel заменить image на картинку, подгруженную Лоадером?

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 13:47
bodnar

Код: Выделить всё

addChild(panel);panel.x=1;panel.y=2; 
А panel.item0.image какой тип?

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 13:47
mastaxys
А panel.item0.image какой тип?
MovieClip

а вот:

Код: Выделить всё

addChild(panel)
выдаёт 1067: Неявное приведение значения типа Class к несоответствующему типу flash.display:DisplayObject.

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 14:16
bodnar
ну так экземпляр то создавать надо

Код: Выделить всё

var panel = new Panel(); ... addChild(panel);panel.x=1;panel.y=2;

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 14:24
mastaxys
Спасибо. Сейчас поробую.


Странно (( Выдало следущее:
ReferenceError: Error #1065: Переменная Button не определена.

ReferenceError: Error #1065: Переменная UILoader не определена.

ReferenceError: Error #1065: Переменная ComponentShim не определена.

ReferenceError: Error #1065: Переменная panel не определена.

ReferenceError: Error #1065: Переменная Main не определена.

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 14:51
Alazaur

Код: Выделить всё

var mypanel:my_panel = new my_panel();var loader:Loader = new Loader();loader.load(new URLRequest(friends[0].photo));mypanel.item0.image.addChild(loader);
Только в библиотеке клипу item0 тоже поставьте галочку "Экспорт для ActionScript" и какой-нибудь класс присвойте, иначе до вложенного в него клипа скорее всего нельзя будет достучаться.

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 14:56
mastaxys
Alazaur писал(а):

Код: Выделить всё

var mypanel:my_panel = new my_panel();var loader:Loader = new Loader();loader.load(new URLRequest(friends[0].photo));mypanel.item0.image.addChild(loader);
Только в библиотеке клипу item0 тоже поставьте галочку "Экспорт для ActionScript" и какой-нибудь класс присвойте, иначе до вложенного в него клипа скорее всего нельзя будет достучаться.
Спасибо! А подскажите, что это за ошибки?
ReferenceError: Error #1065: Переменная Button не определена.

ReferenceError: Error #1065: Переменная UILoader не определена.

ReferenceError: Error #1065: Переменная ComponentShim не определена.

ReferenceError: Error #1065: Переменная panel2 не определена.

ReferenceError: Error #1065: Переменная panel не определена.

ReferenceError: Error #1065: Переменная Main не определена.
Эти ошибки вылетают при объявлении:

Код: Выделить всё

var panel = new panel();

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 15:04
Alazaur
Ну там как бы написано, что за ошибки. Использование несуществующих переменных. Надо смотреть исходник, так не скажешь, кто его знает чего у вас там :))
а я кажется понял, посмотрев на ваше определение:

Код: Выделить всё

var panel = new panel();
вы пытаетесь определить переменную названием клипа из библиотеки так?
Для ActionScript эти названия ничего не значат, называете клипы в библиотеке вы просто для вашего удобства. Определять переменные нужно классом, который вы указываете когда ставите галочку "Экспорт для ActionScript".
Напрмер если там вы указали ClassPanel то определение переменной будет таким

Код: Выделить всё

var panel:ClassPanel = new ClassPanel();

Re: Loader и MovieClip

Добавлено: 16 янв 2013, 15:25
mastaxys

Код: Выделить всё

var panel:ClassPanel = new ClassPanel();
Спасибо, в этом была проблема:

Заменил

Код: Выделить всё

var panel2 = new panel();
на

Код: Выделить всё

var panel2:panel = new panel();
и всё заработало.