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

Denis_Pryanikov 02.09.2011 11:02

Обращение к контейнеру
 
Есть класс:

Код AS3:

package { 
        import flash.display.MovieClip;       
        import flash.events.MouseEvent;
 
        public class WantClick extends MovieClip {
 
                public static var  myMc : myMovie = new myMovie();
 
                public function WantClick() {
                        myMc.addEventListener(MouseEvent.CLICK, function() {
                                                                mainCnt.testTxt.text = 'click';
                                                                });       
 
                }                       
 
        }
}

В главном классе обращаюсь так:
Код AS3:

var want : WantClick = new WantClick();

Суть: mainCnt - это контейнер созданный вручную и в него помещено текстовое поле testTxt. Клип myMovie так же находится в этом контейнере.
Как будет правильно обратиться в содержимому контейнера? Ну вот допустим по клику вывести текст.
Выдается ошибка "Обращение несуществующего свойства mainCnt". Ежели заменить
Код AS3:

mainCnt.testTxt.text = 'click';

на trace() то ошибок нет, но и на клик нет реакции...
Что делать?
(и такой мини вопрос: если я пишу extends MovieClip нужно ли делать импорт MovieClip?)

2Sun 02.09.2011 11:14

А это
Код AS3:

mainCnt

у вас где? Из приведенного куска не понятно кого вы зовете.

Denis_Pryanikov 02.09.2011 11:16

mainCnt в первом кадре на сцене
З.Ы: мини-вопрос еще без ответа...

Genzo 02.09.2011 11:30

Код AS3:

myMc : myMovie = new myMovie();

а на сцену вы его добавили?
мини вопрос : ответ да

Denis_Pryanikov 02.09.2011 11:38

да, myMc на сцене внутри mainCnt. У mainCnt НЕ стоит экспорт в ActionScript. Точнее ставил, обращался к нему, но это не помогло...

Genzo 02.09.2011 11:59

Код AS3:

да, myMc на сцене внутри mainCnt.

тогда зачем вы создаете еще один экземпляр , не добавляете его на сцену и вешаете на него прослушиватель , если он у вас есть уже.
Скорее всего вам надо делать так :
Код AS3:

public class WantClick extends MovieClip { 
 
 
                public function WantClick() {
                        mainCnt.myMc.addEventListener(MouseEvent.CLICK, function() {
                                                                mainCnt.testTxt.text = 'click';
                                                                });       
 
                }                       
 
        }


Denis_Pryanikov 02.09.2011 12:09

я пробовал обращаться по Instance name, но выдается "Обращение несуществующего свойства mainCnt"
Вы ведь в строке
Код AS3:

mainCnt.myMc.addEventListener...

имели ввиду instance имена?

Genzo 02.09.2011 12:14

Очень тяжело вас понять :
Цитата:

mainCnt - это контейнер созданный вручную и в него помещено текстовое поле testTxt
да, myMc на сцене внутри mainCnt.
соответственно у вас есть 2 объекта , значит можете к ним обращаться mainCnt.myMc. , но структура оочень странная и я бы сказал непонятная

Denis_Pryanikov 02.09.2011 12:22

В главном классе я так и обращаюсь к другим объектам контейнера (mainCnt.anyClip) и все работает. Но из этого класса ( WantClick() )я не могу так обратиться.
Просто хотел вынести в отдельный класс различные подсветки кнопок (внутри mainCnt) и т.п., чтобы главный не загромождать


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

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