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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.04.2012, 13:59
heartless вне форума Посмотреть профиль Отправить личное сообщение для heartless Найти все сообщения от heartless
  № 1  
Ответить с цитированием
heartless

Регистрация: Nov 2010
Сообщений: 52
По умолчанию added to stage не срабатывает при создании спрайта

Код AS3:
public class Movie extends Sprite
	{
 
		public function Movie(myAttr:Object = null)
		{
			this.addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		public function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
		}
 
	}
почему инит не работает?

Старый 29.04.2012, 14:01
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Для начала, в данном примере нет приватной переменной attr.
Затем, Вы добавляете экземпляр Movie на сцену?
И какую реакцию Вы хотите получить, с пустым хендлером init? (отписка от события не в счет)
__________________
тут я

Старый 29.04.2012, 14:10
heartless вне форума Посмотреть профиль Отправить личное сообщение для heartless Найти все сообщения от heartless
  № 3  
Ответить с цитированием
heartless

Регистрация: Nov 2010
Сообщений: 52
в дочернем классе к данному (который в Main вызывается) есть действия в ините (я сделал оверрайд в классе-сыне).
сейчас посмотрел, реально вызывается только инит Movie а инит дочернего почему-то нет
хотя не так давно все работало. все что я поменял - начал наследовать Movie от Sprite

Старый 29.04.2012, 14:16
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Нужно построить зиккурат больше кода. Пока я вижу, что у Вас класс с отстуствующим полем экземпляра и нет добавления экземпляра на сцену.
__________________
тут я

Старый 29.04.2012, 14:19
heartless вне форума Посмотреть профиль Отправить личное сообщение для heartless Найти все сообщения от heartless
  № 5  
Ответить с цитированием
heartless

Регистрация: Nov 2010
Сообщений: 52
Код AS3:
 
	public class Movie extends Sprite
	{
 
		private var list:Array = null;
		public var attr:Object;
 
		public function Movie(myAttr:Object = null)
		{
			attr = myAttr;
			this.addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		public function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		public function free():void {
 
		}
 
	}
 
	public class MainMenu extends Movie {
 
		public function MainMenu(myAttr:Object = null) {
			super(myAttr);
		}
 
		override public function init(e:Event = null):void
		{
			super.init();
			PlayBtn.selectable = false;
			ControlsBtn.selectable = false;
			PlayBtn.addEventListener(MouseEvent.CLICK, playbtn);
		}
 
		private function playbtn(e:MouseEvent):void 
		{
			Main.mm.show(new LevelSelect());
		}
 
		override public function free():void
		{
			PlayBtn.removeEventListener(MouseEvent.CLICK, playbtn);
			super.free();
		}		
 
	}
 
//а это в мейне
 
mm.add(new MainMenu());
 
//а это в mm
 
    public function add(state:Movie):Movie {
        	if (clip == null || state == null) return null;
      		list.push(state);
      		clip.addChild(state);
        	return state;
   }

Старый 29.04.2012, 14:24
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Да вроде все верно. Куда трейсы доходят? Хотя я бы посоветовал дубаггером пройтись.
__________________
тут я

Старый 29.04.2012, 14:29
heartless вне форума Посмотреть профиль Отправить личное сообщение для heartless Найти все сообщения от heartless
  № 7  
Ответить с цитированием
heartless

Регистрация: Nov 2010
Сообщений: 52
в майнменю вообще не заходит, только в муви все
-----
тонкость еще в том что MainMenu это еще и класс символа в библиотеке
и когда я в мейне пробую инклудить класс (с кодом, тот что выше) MainMenu у меня появляется
D:\Projects\swfgame\src\Main.as(25): col: 16 Error: Call to a possibly undefined method MainMenu.


Последний раз редактировалось heartless; 29.04.2012 в 14:33.
Старый 29.04.2012, 14:48
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Кажется, я понял. У Вас вот это условие:
Код AS3:
if (clip == null || state == null) return null;
Завершает выполение метода, возвращая null. То есть addChild не срабатывает в add(), проверьте.
Ну и кроме того, советую переименовать класс графического ассета в библиотеке на отличное от MainMenu.
__________________
тут я

Старый 29.04.2012, 15:21
heartless вне форума Посмотреть профиль Отправить личное сообщение для heartless Найти все сообщения от heartless
  № 9  
Ответить с цитированием
heartless

Регистрация: Nov 2010
Сообщений: 52
Цитата:
Сообщение от КорДум Посмотреть сообщение
Кажется, я понял. У Вас вот это условие:
Код AS3:
if (clip == null || state == null) return null;
Завершает выполение метода, возвращая null. То есть addChild не срабатывает в add(), проверьте.
Ну и кроме того, советую переименовать класс графического ассета в библиотеке на отличное от MainMenu.
как тогда я буду создавать этот ваш графический ассет в классе MainMenu?

Старый 29.04.2012, 15:24
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 10  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Он далеко не мой, а Ваш. Используйте композицию.
Код AS3:
_menu = new MainMenuMC();
__________________
тут я

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

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

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


 


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


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