![]() |
Loader и MovieClip это одно и тоже?
В данном примере
http://www.flasher.ru/forum/showthread.php?t=79970 В итоге на экран выводится объект типа Loader, в который скачалась картинка. Можно ли делать с этим объктом все то, что можно делать с клипом? И еще, у меня не получилось дублировать loader Код:
var mmc:Loader = new Loader(); |
|
попробовал загрузить клип с текстовым полем, затем
Код:
loader.ft.text='text'; |
что такое loader? Выдерни кусок кода по больше.
Есть два варианта: 1. мувик уже лежал на таймлайне до компиляции и тогда addChild() не нужен (но это не твой случай) 2. Мувик лежит в библиотеке, тогда сначало его надо экспортировать в экшен скрипт, задав ему класс (например MovieFt) и родителя (можно flash.display.MovieClip, но не только), затем в коде, пишешь что-то вроде Код:
var t:MovieFt=new MovieFt(); |
Лоадер наследуется от DisplayObjectContainer (Loader -> DisplayObjectContainer -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object), поэтому не совсем всё, что с мувиклипом, т.е. допустим свойства mask и filters у него уже есть, а вот useHandCursor и graphics ещё нет.
loader - это класс, реализующий загрузку. Он не содержит напрямую все объекты, загруженные в него, только ссылку на главный класс загруженного мувика (content). Т.е. обращаться нужно: Код:
loader.content.ft.text = "123";Код:
loader.content.bitmapData; |
Код:
1119: Access of possibly undefined property ft through a reference with static type flash.display:DisplayObject. |
То же самое: http://flasher.ru/forum/showthread.php?t=100175
Выбирайте: либо пишите в simple mode, либо ставьте везде операторы приведения типа. |
после отключения strict mode сработало.
А как сделать с операторами приведения Код:
var mc:MovieClip = loader as MovieClip; |
loader.content as MovieClip разве что, потому как loader является оберткой, а не непосредственным контентом. Не отключайте strict ни при каких обстоятельствах.
|
Я тоже сразу об этом подумал, но в тот момент базовый класс подгружаемого клипа был потомком Sprite, и появлялась ошибка
Код:
TypeError: Error #2007: Parameter child must be non-null.пс Зачем в каждом примере, начиная с 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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.