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

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

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

Регистрация: Jul 2012
Сообщений: 112
По умолчанию не срабатывает событие ADDED_TO_STAGE

почему не срабатывает trace?
Код AS3:
package mvc
{
	import flash.text.TextField;
	import flash.events.EventDispatcher;
	import flash.events.Event;
	import flash.display.Stage;
 
	public class View extends EventDispatcher
	{
		private var stage:Stage;
 
		public function View()
		{
			if(!stage){
				addEventListener(Event.ADDED_TO_STAGE, init);
			}			
		}
 
		private function init(e:Event):void
		{
			trace("ss");
		}		
 
	}
 
}

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

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

Старый 11.07.2012, 00:23
olejan1991 вне форума Посмотреть профиль Отправить личное сообщение для olejan1991 Найти все сообщения от olejan1991
  № 3  
Ответить с цитированием
olejan1991

Регистрация: Jul 2012
Сообщений: 112
а как определить тогда,что сцена имеет значение не null?

Старый 11.07.2012, 00:40
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 4  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Так оно у вас по умолчанию null. Но значение никогда не "появится", следовательно слушатель не сработает.
__________________
местонахождение

Старый 11.07.2012, 00:41
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 5  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
сделайте extend Sprite, и уберите знак восклицания в условии
__________________
adobe AS3 manual

Старый 11.07.2012, 00:43
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
а как определить тогда,что сцена имеет значение не null?
Зачем, если она всегда будет null?
У Вас объект не дисплейный. Он никогда не будет добавлен в Список отображения ("на стейдж").
Цитата:
и уберите знак восклицания в условии
Эмм...?
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 11.07.2012 в 00:46.
Старый 11.07.2012, 00:44
olejan1991 вне форума Посмотреть профиль Отправить личное сообщение для olejan1991 Найти все сообщения от olejan1991
  № 7  
Ответить с цитированием
olejan1991

Регистрация: Jul 2012
Сообщений: 112
Блин, но а как мне из класса создать элемент

Вот я пытаюсь, но мне понятное дело выдает ошибку
Код AS3:
package mvc
{
	import flash.text.TextField;
	import flash.events.EventDispatcher;
	import flash.events.Event;
	import flash.display.Stage;
 
	public class View extends EventDispatcher
	{
		private var numbSquare:Number;
 
		private var _model:Model;
 
		private var stage:Stage;
 
		public function View()
		{
			if(!stage){
				addEventListener(Event.ADDED_TO_STAGE, init);
			}			
		}
 
		private function init(e:Event):void
		{
			trace("ss");
		}
 
		public function set model(m:Model):void
		{
			_model = m;
			_model.addEventListener(Model.MODEL_CHANGED, update);
		}
 
		private function update(e:Event):void
		{
			numbSquare = Number(_model.numbSquare);
			for (var i:int = 0; i < numbSquare; i++)
			{
 
				trace(i);
				var square:Square = new Square();
				stage.addChild(square)
			}
		}
 
		public function get model():Model
		{
			return _model;
		}
 
	}
 
}
Код AS3:
import mvc.Model;
import mvc.View;
import flash.events.Event;
 
var model:Model = new Model();
var view:View = new View();
 
view.model = model;
 
model.load("xml/settings.xml");
а ошибка такая:


Код:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at mvc::View/update()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at mvc::Model/setSquare()
	at mvc::Model/xmlLoaded()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()
в общем о том, что сцена null и что придумать я не могу понять


Последний раз редактировалось iNils; 11.07.2012 в 01:00.
Старый 11.07.2012, 00:49
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вам уже ответили.
Цитата:
Сообщение от strangedk Посмотреть сообщение
сделайте extend Sprite
__________________
Reality.getBounds(this);

Старый 11.07.2012, 00:55
olejan1991 вне форума Посмотреть профиль Отправить личное сообщение для olejan1991 Найти все сообщения от olejan1991
  № 9  
Ответить с цитированием
olejan1991

Регистрация: Jul 2012
Сообщений: 112
Да нет, это не подойдет: он уже наследуется от EventDispatcher и это не DocumentClass чтоб его от Sprite наследовать

Старый 11.07.2012, 01:51
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вам бы почитать что-нибудь.. Хотя бы справку..
Вам объяснили уже всё: почему нет события, что нужно сделать и почему именно это.
Вы ждете событие "меня добавили на стейдж" от объекта, который по природе своей никогда не сможет быть добавлен на стейдж — для этого он должен наследовать DisplayObject.
EventDispatcher не является наследником DisplayObject, и никогда не будет добавлен на стейдж (в список отображения). Соответственно событие ADDED_TO_STAGE он никогда не продиспатчит (разве что кто-нибудь заставит его извне это сделать))))
__________________
Reality.getBounds(this);

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

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

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


 


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


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