Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вызов функции из клипа-загрузчика (http://www.flasher.ru/forum/showthread.php?t=114243)

telit 23.07.2008 01:03

Вызов функции из клипа-загрузчика
 
К примеру у меня есть главный класс:
Код:

package
{
...
public class Main extends MovieClip
{
    public function Main():void
    {
    Загружаем swf в какой то мувик
    }
    public function testSwf(testWord:String)
    {
          trace(testWord);
    }
}

в мувике который загрузили на последнем кадре висит такой код:
Код:

(root as MovieClip).testSwf("e-moe")
В trace ошибка:

Код:

TypeError: Error #1006: testSwf is not a function.
        at LittleFarm_fla::comix2_1/LittleFarm_fla::frame390()

как правильно к root обратиться?

mre 23.07.2008 01:10

root для каждого swf свой, используйте stage.
Цитата:

> в мувике который загрузили на последнем кадре висит такой код
Это AS3. Может быть хватит писать код в кадрах?

etc 23.07.2008 01:45

Цитата:

Сообщение от mre (Сообщение 753759)
root для каждого swf свой, используйте stage.

Коли было бы так, ошибка не возникла бы тогда.

terbooter 23.07.2008 08:31

Я делал вот так:
Код:

package  {
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.net.URLRequest;
        import flash.events.Event;
       

        public class  Test extends Sprite {
               
                private var loader:Loader
               
                public function Test() {
                        trace("test");
                       
                        this.loader = new Loader();
                        this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
                        var urlRequest:URLRequest = new URLRequest("toLoad.swf");
                        loader.load(urlRequest);
                       
                       
                }
               
                private function onLoadComplete(e:Event):void {
                        trace("onLoadComplete");
                        this.addChild(this.loader);
                }
               
                public static function testStaticFunction(param:String):void {
                        trace("testStaticFunction", param);
                }
               
        }
       
}

В файле toLoad.swf в первом кадре:
Код:

trace("toLoad.swf");
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
function onAddedToStage(e:Event):void{
 trace("toLoad.swf has been added to stage");
 Test.testStaticFunction("!!!");
}

Попробуйте тоже через статический метод

mre 23.07.2008 10:37

А какой смысл вызывать метод из загрузчика если он статический?

terbooter 23.07.2008 15:04

Цитата:

Сообщение от mre (Сообщение 753783)
А какой смысл вызывать метод из загрузчика если он статический?

А где вы видите что метод вызывает загрузчик?
Статический метод загрузчика вызывает загружаемая SWF-ка из кадра.
Как я понимаю, примерно это хочет получить автор.

mre 23.07.2008 15:32

Неверно сформулировал.
А какой смысл вызывать метод загрузчика если он статический?
Если автор пояснит что хочет делать в этом методе, станет понятно о чем я говорю.


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

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