Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как обращаться к root, из детей поколения >2ого? (http://www.flasher.ru/forum/showthread.php?t=130693)

Tr1te 01.10.2009 22:57

Как обращаться к root, из детей поколения >2ого?
 
У меня есть основной класс, в котором есть функция Func():
Код AS3:

package Scr{
        import flash.display.*;
        public class Main extends MovieClip {
 
                var Layer01_Provider:Layer01;
 
                function Main():void {
                        Layer01_Provider=new Layer01();
                        addChild(Layer01_Provider);
                }
                function Func():void {
                }
        }//class
}//package

Есть слой Layer01, который добавляется в главном слое:
Код AS3:

package Scr{
        import flash.display.*;
        public class Layer01 extends MovieClip {
 
                var Layer02_Provider:Layer02;
 
                function Layer01():void {
                        Layer02_Provider=new Layer02();
                        addChild(Layer02_Provider);
                }
        }//class
}//package

Есть слой Layer02, который добавляется в Layer01:
Код AS3:

package Scr{
        import flash.display.*;
        public class Layer02 extends MovieClip {
 
                function Layer02():void {
 
                }
        }//class
}//package

Как мне из слоя Layer02 обратиться к Func(), который находиться в главном слое?

GFreemen 01.10.2009 23:29

проще в Layer02 сгенерировать событие, слушать его в Main и по этому событию запускать Func().

switcher! 02.10.2009 01:07

+ сделать Func static и обращаться через Main.Func()

+ передавать в конструкторы this (основной класс) параметром из одного в другой по цепочке. А в нужном - уже работать или с аргументом конструктора или присвоить переменной экземпляра.
Правда, этот способ, слишком вычурный ))

Котяра 02.10.2009 09:43

правильнее:
Цитата:

Сообщение от GFreemen (Сообщение 855056)
проще в Layer02 сгенерировать событие, слушать его в Main и по этому событию запускать Func().


random13 02.10.2009 11:26

а еще лучше уйти от мысли что вы работаете со слоями

Tr1te 02.10.2009 12:56

Цитата:

Сообщение от random13 (Сообщение 855107)
а еще лучше уйти от мысли что вы работаете со слоями

Почему, это очень удобно.

AL.exe 05.10.2009 01:41

Ну, хотя бы потому, что их не существует для программиста :)

dimarik 05.10.2009 10:32

(super.root as Layer01_Provider).Func();

etc 05.10.2009 22:09

Цитата:

Сообщение от dimarik (Сообщение 855504)
(super.root as Layer01_Provider).Func();

Ух, Димка, быдлокодеров разводишь?

dimarik 05.10.2009 22:58

Аха, на понт развожу.


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

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