![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 9
|
Есть основной swf с назначенным ему классом AS3. в него пытаюсь загрузить другой swf, у которого в свою очередь свой класс. При попытке обратиться к методам загруженного swf из Основного swf возникает ошибка - TypeError: Error #1006: playerList не является функцией.
private function onChatBtn(event:Event) { var context:LoaderContext = new LoaderContext(); context.checkPolicyFile = true; chatLoader = new Loader(); chatLoader.contentLoaderInfo.addEventListener( Event.INIT, loadChat ); chatLoader.load( new URLRequest("http://127.0.0.1/chat.swf"),context ); } public function loadChat(event:Event) { var arr:Array = ["1","2"]; var chatMovie:* = event.target.content; this.addChild(chatMovie); chatMovie.playerList(arr); //chatMovie.chatStart(socket); } public function playerList(list:Array) { plList = list; this.playerSpis.text=plList.join("\n"); } Добавлено через 2 минуты в конструкторах классов обоих swf имеется след. код: в приложении используется и обычная загрузка и загрузка через сокет |
|
|||||
|
Я что-то подобное делала, у меня так работает:
private var swf_loader : Loader; //.... swf_loader = new Loader(); swf_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadSWFCompleteHandler); swf_loader.load(new URLRequest(DataContainer.BITMAP_SWF_PATH)); //... private function loadSWFCompleteHandler(event :Event):void{ var lib :Object = swf_loader.content; var bmp :BitmapData = lib.getBitmapData(id); // вызов функции из класса в загруженной свф-ке } |
|
|||||
|
Adomax, куда типизацию потеряли?
__________________
Работаю |
|
|||||
|
.
|
Сравните
и Даю подсказку: content Вы берете у чего? UPD. Я ошибся. Эти ссылки указывают на один и тот же объект. Тогда все должно работать, при условии наличия playerList в document class'е подгружаемой swf. Последний раз редактировалось dimarik; 01.07.2009 в 12:33. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 9
|
mre, допустим написал интерфейс в базовом классе iChat, перечислил в нем все public методы класса chat.
как мне потом сказать flash-у, что загруженный мувик использует интерфейс iChat. И нужно ли написать в классе chat : implements iChat? и если нужно, где тогда хранить интерфейс? или вообще нужно создать отдельный as3 файл с классом chat и интерфейсом iChat? dimarik, я пробовал вот так: не работает, а вот это: var chatMovie:Object = chatLoader.content; this.addChild(chatMovie); chatMovie.playerList(arr); 1118: Implicit coercion of a value with static type Object to a possibly unrelated type flash.display isplayObject. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 9
|
dimarik,
так же выдает 1006 ошибку var arr:Array = ["1","2"]; var chatMovie:Object = chatLoader.content; chatMovie.playerList(arr); Snut, можно подробней про типизацию..... верней что я забыл? |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|