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

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

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
По умолчанию как добавить больше одного ребёнка на Stage?

пытаюсь понять что такое этот [object Stage], просто stage., root... как я понял Stage - это класс c типом DisplayObjectContainer (или расширяющий DisplayObjectContainer) который создаётся по-умолчанию при запуске основного класса приложения из FlashDevelop. Вот тестовый код:

Код AS3:
package zoo.actionscript.stage 
{
 
	import as3Tutorial.scr.FloatingCont;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.text.TextField;
 
	public class Main extends Sprite
	{
		private var _tF:TextField;
		private var _container:Sprite;
		private var _shape:Shape;
		private var _someClass:FloatingCont;
 
 
		public function Main() 
		{
			addChild(_tF = new TextField());
			addChild(_container = new Sprite());
			addChild(_shape = new Shape());
			addChild(_someClass = new FloatingCont("C://textForLoad.txt"));
 
		trace (stage.numChildren);	
		trace (this.numChildren);
		}
 
	}
 
}
stage.numChildren возвращает всегда 1, независимо от количества добавляемых DisplayObjectов, значит, навверное, эти DisplayObjectы принадлежат классу Main, а этот Main уже находится в классе Stage? тогда возникает вопрос:
как добавить ещё одного ребёнка для класса Stage? чтобы stage.numChildren было больше 1.

Добавлено через 15 минут
sorry, дошло...
Код AS3:
stage.addChild
значит stage - он всегда как бы один глобальный? у самих классов нет своего stage отдельного? у класса, расширяющего Sprite, например?


Последний раз редактировалось nelco; 14.09.2015 в 06:10.
Старый 14.09.2015, 06:41
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
значит stage - он всегда как бы один глобальный? у самих классов нет своего stage отдельного?
Именно так. И не надо на stage ничего добавлять. Элементы нужно распростарнять по своим контейнерам, чтобы был порядок, а не валялось все в куче.
На stage можно добавить какие-нибудь модальные окна с подтверждением действий и т.п., чтобы быть уверенным, что они поверх всего

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Вы путаете понятие stage(Область видимости) и DisplayList(Список отображения).
Каждый DisplayObjectContainer имеет свой DisplayList, в который можно добавлять DO/DOC.
Stage - DisplayObjectContainer, это ВСЯ видимая область флешки.
Если написать
Код AS3:
trace(stage.getChildAt(0));
после инициализации, выведет [object Main].
Сам класс Main добавляется в корень видимой области.
У каждого Sprite есть свой DisplayList.
В Main:
Код AS3:
trace(this.numChildren);//0;
trace(stage.numChildren);//1;
trace(stage.getChildAt(0));//[object Main]
 
this.addChild(new Sprite());
trace(this.numChildren); //1
trace(stage.numChildren); //1
trace(this.getChildAt(0)); //[object Sprite]
Как у любого DOC, у stage есть размеры
stage.width
stage.height

Но они показывают размеры самого контейнера, а не всей области.
Т.е. если за пределы флешки выходит какой-то объект, то размеры будут растянуты до него.

Ну и, чтобы получать только размеры флешки как окна, были введены
stage.stageWidth
stage.stageHeight

Ну и root вернёт вам главный класс(object Main). Но за весь опыт программирования я один раз пользовался этим свойством, когда писал в кадрах.
__________________
There is no thing in this world that is not simple.

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

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

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


 


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


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