Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.09.2011, 11:24
Pubman вне форума Посмотреть профиль Отправить личное сообщение для Pubman Найти все сообщения от Pubman
  № 1  
Ответить с цитированием
Pubman
[+4 25.11.10]

Регистрация: Sep 2010
Сообщений: 2
По умолчанию Переполнение стека

Всем привет.
Есть вопрос.
У меня есть класс Menu и класс Square (рисует квадрат с нулевой alpha)
В menu я создаю экземпляр класса square.
После неких манипуляций мне надо чтобы квадрат появился на экране (alpha=1)
Я в Menu присваиваю переменой экземпляра класса square еденицу и делаю диспатч евент.
Далее мне надо поставить слушатель события в Square. Соответственно я создаю там экземпляр класса меню.
Получаю переполнения стека, т.к. класс меню создает экземпляр класса square, а square создает экзмепляр класса меню.
Как быть в данной ситуации? Мне надо в классе square поймать событие, которое было диспатчено в классе menu.

Старый 23.09.2011, 11:26
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Как быть в данной ситуации?
Просто передать экземпляру Square в конструкторе ссылку на menu, и не нужно будет создавать никаких экземпляров



Код AS3:
public class Menu extends Sprite {
 
       public function Menu() {
            var suqare:Square = new Square(this);
            addChild(square);
       }
 
}
 
 
 
public class Square extends Sprite {
 
       private var _menu:Menu;
 
       public function Square(menu:Menu) {
             _menu = menu;
             _menu.dispatchEvent(new Event("someEvent"));
       }
 
}


Последний раз редактировалось goodguy; 23.09.2011 в 11:29.
Старый 23.09.2011, 11:52
Pubman вне форума Посмотреть профиль Отправить личное сообщение для Pubman Найти все сообщения от Pubman
  № 3  
Ответить с цитированием
Pubman
[+4 25.11.10]

Регистрация: Sep 2010
Сообщений: 2
Понял. спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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