Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   запустить функцию в главной swf (http://www.flasher.ru/forum/showthread.php?t=149240)

54321go 21.01.2011 12:12

запустить функцию в главной swf
 
У меня есть главный клип main, в него гружу temp. В main есть функция goVideo() мне надо её вызвать из temp.
Код AS3:

MovieClip(root).goVideo()

Так не получается.

bav 21.01.2011 12:25

Попробуйте диспачить событие в temp, ловить его в main, и в ответ на него запускать свою функцию.

54321go 21.01.2011 14:52

А сделать в main функцию которую видно в temp можно?

bav 21.01.2011 15:10

Можно. Вот например:
Подгружаемая флешка:
Код AS3:

package  
{
    import flash.display.MovieClip;
    import flash.events.Event;
 
    public class Test extends MovieClip
    {
        public function Test():void
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(event:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
 
            if (parent != stage)
                parent["parentFunc"]();
            else
                trace("in child");
        }
    }
}

Главная (подгружающая) флешка:
Код AS3:

package  
{
    import flash.display.Loader;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.net.URLRequest;
 
    public class Main extends MovieClip
    {
        public function Main():void
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(event:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
 
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
            loader.load(new URLRequest("test.swf"));
        }
 
        private function loadHandler(event:Event):void
        {
            var mc:MovieClip = event.target.content as MovieClip;
            addChild(mc);
        }
 
        // обратите внимание на спецификатор public
        public function parentFunc():void
        {
            trace("in parent");
        }
    }
}


Vishapakahr 21.01.2011 15:11

да , public static function myFunc():*{} в temp е вызеваеш main.myFunc();

cleptoman 21.01.2011 15:11

передать ссылку на main в temp.

но не нужно.

Добавлено через 1 минуту
Vishapakahr, не надо сбивать с толку. вы написали метод класса, тогда как нужен метод экземпляра.


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

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