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

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

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

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
По умолчанию свойство stage

есть задача. нужно в методе некоторого класса добавить объект на рабочую поверхность (stage)

Код:
public class MyClass extends MovieClip {

  public function someMethod () {
    ....
    stage.addChild( child );
  }

}
правильно ли я понимаю, что здесь свойство stage которое наследуется от DisplayObject (MyClass -> MovieClip -> Sprite -> ... -> DisplayObject) должно указывать на рабочую область?


Код:
var mc:MyClass = new MyClass ();
mc.someMethod();
бросает ошибку, что stage null.

что нужно сделать, чтобы добавить объект на рабочую поверхность (на самый верхний уровень)?


Последний раз редактировалось iNils; 27.05.2009 в 20:21.
Старый 27.05.2009, 17:21
Snut вне форума Посмотреть профиль Отправить личное сообщение для Snut Посетить домашнюю страницу Snut Найти все сообщения от Snut
  № 2  
Ответить с цитированием
Snut
 
Аватар для Snut

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 489
Отправить сообщение для Snut с помощью ICQ Отправить сообщение для Snut с помощью MSN Отправить сообщение для Snut с помощью Skype™
стеджа у этого класса нет, так как нет ссылки на стейдж. можно передать классу в конструктор стейдж от меин класса приложения и ставить уже в него.
__________________
Работаю

Старый 27.05.2009, 17:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
stage есть, но
"If a display object is not added to the display list, its stage property is set to null."

т.е. или дождаться (Event.ADDED_TO_STAGE) когда stage будет определен
или пользоваться после явного addChild объекта (и его родителей тоже)

Старый 27.05.2009, 17:31
catyoshi вне форума Посмотреть профиль Отправить личное сообщение для catyoshi Найти все сообщения от catyoshi
  № 4  
Ответить с цитированием
catyoshi

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
мм.. т.е. я сначала должен добавить экземпляр моего класса MyClass на stage, и только потом у меня внутри экземпляра MyClass появится не null'овое значение свойства stage?

тогда вопрос. а может ли экземпляр MyClass сам добавиться на stage (спровоцировать событие Event.ADDED_TO_STAGE)?

2Snut: спсисбо за совет. я пока так и сделаю

Старый 27.05.2009, 19:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от catyoshi Посмотреть сообщение
а может ли экземпляр MyClass сам добавиться на stage (спровоцировать событие Event.ADDED_TO_STAGE)?
Без ссылки на stage только одним единственным способом, но описывать его не буду, т. к. один фиг в релизе не работает.

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

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 489
Отправить сообщение для Snut с помощью ICQ Отправить сообщение для Snut с помощью MSN Отправить сообщение для Snut с помощью Skype™
Цитата:
Сообщение от __etc Посмотреть сообщение
Без ссылки на stage только одним единственным способом, но описывать его не буду, т. к. один фиг в релизе не работает.
Опиши, мне интересно
__________________
Работаю

Старый 27.05.2009, 17:34
Snut вне форума Посмотреть профиль Отправить личное сообщение для Snut Посетить домашнюю страницу Snut Найти все сообщения от Snut
  № 7  
Ответить с цитированием
Snut
 
Аватар для Snut

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 489
Отправить сообщение для Snut с помощью ICQ Отправить сообщение для Snut с помощью MSN Отправить сообщение для Snut с помощью Skype™
Сори, я просто вопрос не понял. А сам добавится.... это что-то из области фантастики, если нет ссылки на стейдж всего приложения то не сможет

*ушел проверять*

Добавлено через 4 минуты
Код AS3:
package {
	import flash.display.Sprite;
 
	[SWF(width="1000", height="600", frameRate="24")]
	public class TestVisual extends Sprite {
		public function TestVisual() {
			var sa:SelfAdder = new SelfAdder( super.stage );
		}
	}	
}
 
import flash.display.Sprite;
import flash.display.Stage;
 
 
internal class SelfAdder extends Sprite {
 
	private var _stage:Stage;
 
	public function SelfAdder(stage:Stage) {
		this._stage = stage;
 
		if (this._stage) {
			super.graphics.beginFill(0xFF0000);
			super.graphics.drawCircle(100, 100, 100);
			super.graphics.endFill();
 
			this._stage.addChild( this );
		}
	}
}
вот так сможет добавится сам на сцену
__________________
Работаю


Последний раз редактировалось Snut; 27.05.2009 в 17:45.
Старый 28.05.2009, 00:55
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Snut, в блоге ищи.

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

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

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


 


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


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