Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Можно ли обращаться к методам внутреннего swf из внешнего swf? (http://www.flasher.ru/forum/showthread.php?t=155873)

Parez 11.05.2011 22:05

Можно ли обращаться к методам внутреннего swf из внешнего swf?
 
Я загружаю в главный ролик другой swf.
Требуется передать в загруженный извне swf ролик некоторые переменные или даже запускать его внутренние функции. Это возможно?

Dukobpa3 11.05.2011 23:02

Код AS3:

//********************************
                        var loader:Loader = new Loader();
                        loader.load(new URLRequest("3dtour/3dtour.swf"));
 
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
//********************************
 
                private function loadComplete (e:Event):void {
                        loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadComplete);
                        panorama = e.target.loader.content as MovieClip;
 
                        panorama.setArea(40 * _scale, 90 * _scale, 840 * _scale, 590 * _scale);
                        panorama.loadPanorama("panoName=3dtour&xml_file=3dtour/3dtour.xml");
                }

Рабочий код по заданной теме.

Parez 12.05.2011 00:31

Спасибо.
Но почему-то, когда я вывожу тип переменной загруженного ролика (в вашем примере panorama), выводится имя базового класса загружаемого ролика с непонятной приставкой __Preloader__. Например, если базовый класс загружаемого ролика был InnerMovie, то он выводит InnerMovie__Preloader__. И когда я обращаюсь к методам InnerClip, Flash выводит ошибку, что в классе InnerMovie__Preloader__ не существует такого свойства/метода. Почему так происходит?

Dukobpa3 12.05.2011 00:39

Ну видимо потому что там не существует такого свойства/метода :) Очевидно же :)

Ну а если серьезно то за некорявость дочерней свф я не отвечаю:)

или вы могли с именами ошибиться банально.

Parez 12.05.2011 00:41

Нет, вы мне лучше объясните, откуда берётся этот суффикс __Preloader__? Не надо думать, что я настолько туп, что не могу разобраться в собственном коде. Тем более пока я всего лишь тестирую и разбираюсь, а не пишу что-то конкретное.

Dukobpa3 12.05.2011 00:45

Это лучше вы мне объясните:)

Я то откуда знаю, может там действительно прелоадер какой-то есть, который вы загружаете, а он потом начинает грузить основную флешку.

Parez 12.05.2011 00:47

Давайте я вам сейчас лучше всё это дело скину, чтоб не было лишних предубеждений. Кстати, у вас какой Flash?

Dukobpa3 12.05.2011 00:51

У меня цс4 и цс5. Но раз уж так всё серьезно то может сразу в вакансии? :)

Parez 12.05.2011 00:53

Вложений: 1
Не понял шутки.

Всё примитивно и просто. Там неоткуда взяться прелоадеру.

Dukobpa3 12.05.2011 01:40

InnerMovie.fla -> Scene -> Properties -> ActionScript Settings -> tab "LibraryPath" -> Тут внизу убрать стандартный "Preloader Method" и поставить Custom Preloader Loop.

ЦС5 по-умолчанию вставляет свой прелоадер, что и требовалось доказать.


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

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