Форум 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=142653)

flyberok 27.07.2010 15:57

Как обратиться из простого класса к переменной главного
 
Есть главный класс (main.as):
Код AS3:

package {
        import flash.display.Sprite;
        import com.ter;
 
        public class main extends Sprite {
                public var tr:uint=1;
                function main() {
                        var ttt=new ter();
                }
        }
}

и есть в папке com другой файл (ter.as) с классом (ter):
Код AS3:

package com {
 
        public class ter {
                function ter() {
                        trace(tr);
                }
        }
}

1120: Access of undefined property tr.

не получается обратиться к переменной tr. Подскажите, пожалуйста, каким образом это можно сделать.

Хемуль 27.07.2010 16:07

Код AS3:

import main;
...
trace(this.parent as main).tr


flyberok 27.07.2010 16:35

спасибо, примерно понял как надо, только для этого случая, не подходит так как класс ter не расширяет никакого класса и тем более не является потомком DisplayObjectContainer для которого работает свойство parent.

TWETTI 27.07.2010 16:43

Можно вот так сделать.
Main.as
Код AS1/AS2:

package
{
        import flash.display.Sprite;
        import com.Sub;
 
        public class Main extends Sprite
        {
                public static var variable:int = 1;
 
                public function Main()
                {
                        var sub:Sub = new Sub();
                }
 
        }
 
}

Sub.as
Код AS3:

package com
{
        public class Sub
        {
                public function Sub()
                {
                        trace(Main.variable);
                }
 
        }
 
}


flyberok 27.07.2010 16:57

О, спасибо, а всего то static добавить.
Я еще вариант придумал
Main.as
Код AS3:

package {
        import flash.display.Sprite;
        import com.ter;
 
        public class main extends Sprite {
                public var tr:uint=1;
                function main() {
                        var ttt=new ter(this.stage);
                }
        }
}

ter.as
Код AS3:

package com {
 
        public class ter {
                function ter(D:Object) {
                        trace(D.getChildAt(0).tr);
                }
        }
}

Добавлено через 2 минуты
тока вот не понял почему когда пишу
Код AS3:

 function ter(D:DisplayObjectContainer)

почему то не фурычит, хотя Stage является прямым потомком DisplayObjectContainer, а Object все работает ок.


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

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