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

Abdilxamidov 08.03.2009 01:24

Вывод отображаемых объектов другого класса
 
Здравствуйте!
вот столкнулся еще с проблемой, к-рую не могу решить самостоятельно.
Попытаюсь формализовать вопрос. Вот, например, у меня есть владелец сцены и его класс MyClass_1:
Код AS3:

package {
        import flash.display.*;
        import flash.text.*;
 
        public class MyClass_1 extends MovieClip {
                var C2:MyClass_2=new MyClass_2();
 
                public function MyClass_1() {
                        C2.showMess("Hello, world!");
                }
        }
}

и например такой класс MyClass_2():
Код AS3:

package {
        import flash.display.*;
        import flash.text.*;
 
        public class MyClass_2 extends MovieClip {
                var messArea:TextField = new TextField();
                var mess="Начальное значение";
 
                public function MyClass_2() {
 
                }
                public function showMess(m_mess) {
                        messArea.text=m_mess;
                        trace(messArea.text);
                        addChild(messArea);
                }
        }
}

Понятно, что сейчас "Hello, world!" будет отображаться в MyClass_2.swf.

Вот вопрос: Например, как в MyClass_2 сделать так, чтобы объект messArea отображался в сцене MyClass_1.swf ?

Я пытаюсь максимально понятно объяснить проблему, но спросите, если не все понятно. Очень нужна помощь, самому пока не хватает знаний.

dimarik 08.03.2009 01:31

Код AS3:

package {
        import flash.display.*;
        import flash.text.*;
 
        public class MyClass_1 extends MovieClip {
                var C2:MyClass_2=new MyClass_2();
 
                public function MyClass_1() {
                        C2.showMess("Hello, world!", this);
                }
        }
}
 
package {
        import flash.display.*;
        import flash.text.*;
 
        public class MyClass_2 extends MovieClip {
                var messArea:TextField = new TextField();
                var mess="Начальное значение";
 
                public function MyClass_2() {
 
                }
                public function showMess(m_mess, target:DisplayObjectContainer=null) {
                        messArea.text=m_mess;
                        trace(messArea.text);
                        if (!target) target = this;
                        target.addChild(messArea);
                }
        }
}


Abdilxamidov 08.03.2009 01:55

круто :), ОГРОМНОЕ спасибо, всё работает! Особая благодарность за скорость ответа.

Добавлено через 61 час 44 минуты
В продолжение темы: а как аналогично отобразить в первом классе символ MovieClip, находящийся в классе 2? Вот, например
Код AS3:

package {
        import flash.display.*;
        import flash.text.*;
 
        public class MyClass_2 extends MovieClip {
                var myMc:MySymbol=new MySymbol(); //символ типа MovieClip, нарисованный вручную в библиотеке MyClass_2.fla
 
                public function MyClass_2() {
 
                }
                public function showMess(target:DisplayObjectContainer=null) {
                        if (!target) target = this;
                        target.addChild(myMc); // в окно target почему-то ничего не выводит
                }
        }
}

Добавлено через 62 часа 12 минут
Linkage к этому символу MySymbol прописан


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

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