Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Loader и MovieClip это одно и тоже? (http://www.flasher.ru/forum/showthread.php?t=100153)

Ноябрь 21.08.2007 03:56

Loader и MovieClip это одно и тоже?
 
В данном примере
http://www.flasher.ru/forum/showthread.php?t=79970
В итоге на экран выводится объект типа Loader, в который скачалась картинка. Можно ли делать с этим объктом все то, что можно делать с клипом?
И еще, у меня не получилось дублировать loader
Код:

var mmc:Loader = new Loader();
mmc=loader;
addChild(loader);
addChild(mmc);

но получилось, что loader.x и mmc.x это одно и то же свойство.

Dima_DPE 21.08.2007 04:01

1.http://livedocs.adobe.com/flash/9.0/...ay/Loader.html
2.http://flasher.ru/forum/showpost.php...2&postcount=60

Ноябрь 21.08.2007 05:16

попробовал загрузить клип с текстовым полем, затем
Код:

loader.ft.text='text';
addChild(loader);

1119: Access of possibly undefined property ft through a reference with static type flash.display:Loader.

Dima_DPE 21.08.2007 07:48

что такое loader? Выдерни кусок кода по больше.
Есть два варианта: 1. мувик уже лежал на таймлайне до компиляции и тогда addChild() не нужен (но это не твой случай) 2. Мувик лежит в библиотеке, тогда сначало его надо экспортировать в экшен скрипт, задав ему класс (например MovieFt) и родителя (можно flash.display.MovieClip, но не только), затем в коде, пишешь что-то вроде
Код:

var t:MovieFt=new MovieFt();
t.ft.text='text';
addChild(t);


Dendroid 21.08.2007 12:29

Лоадер наследуется от DisplayObjectContainer (Loader -> DisplayObjectContainer -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object), поэтому не совсем всё, что с мувиклипом, т.е. допустим свойства mask и filters у него уже есть, а вот useHandCursor и graphics ещё нет.

loader - это класс, реализующий загрузку. Он не содержит напрямую все объекты, загруженные в него, только ссылку на главный класс загруженного мувика (content). Т.е. обращаться нужно:
Код:

loader.content.ft.text = "123";
или если загружен битмап:
Код:

loader.content.bitmapData;

Ноябрь 21.08.2007 20:15

Код:

1119: Access of possibly undefined property ft through a reference with static type flash.display:DisplayObject.
:confused:

Dendroid 21.08.2007 22:52

То же самое: http://flasher.ru/forum/showthread.php?t=100175
Выбирайте: либо пишите в simple mode, либо ставьте везде операторы приведения типа.

Ноябрь 22.08.2007 00:57

после отключения strict mode сработало.
А как сделать с операторами приведения
Код:

var mc:MovieClip = loader as MovieClip;
??

etc 22.08.2007 01:52

loader.content as MovieClip разве что, потому как loader является оберткой, а не непосредственным контентом. Не отключайте strict ни при каких обстоятельствах.

Ноябрь 22.08.2007 02:59

Я тоже сразу об этом подумал, но в тот момент базовый класс подгружаемого клипа был потомком Sprite, и появлялась ошибка
Код:

TypeError: Error #2007: Parameter child must be non-null.
        at flash.display::DisplayObjectContainer/addChild()
        at main::Test/::displayImage()

Затем я сделал его MovieClip и все получилось.

пс
Зачем в каждом примере, начиная с Hello world используют Sprite? Ведь даже в другой кадр перейти не удается.
А с мувиклипом в руте все замечательно работает, включая тот скрипт загрузки изображений.
Ведь если говорить о переходе от АС2 к АС3, то код в (первом) кадре соответствует коду в базовом классе, который является потомком MovieClip.


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

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