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

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

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от undefined Посмотреть сообщение
хотя tabEnabled - родное свойство DisplayObjectContainer'а.
Код AS3:
trace(root.getChildAt(0));
аналогично ошибка компиляции
Ммм... А чего вы, собственно, ожидали?
Цитата:
rootisplayObject [только для чтения]
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 31.05.2016, 14:27
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 32  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
ObOs, если ты прочтешь внимательнее,то увидишь такие слова:
Цитата:
ошибка компиляции
Цитата:
compile time error(Error: Access of possibly undefined property tabEnabled through a reference with static type flash.displayisplayObject.)
Это значит, что ошибка выскакивает на этапе компиляции.

Добавлено через 2 минуты
Цитата:
Ммм... А чего вы, собственно, ожидали?
Так какого типа рут то?

Старый 31.05.2016, 14:30
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 33  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
DisplayObject
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 31.05.2016, 14:33
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 34  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
как можно DisplayObject привести к DisplayObjectContainer?

Старый 31.05.2016, 14:38
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 35  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Что вы имеете ввиду?
Код AS3:
var container:DisplayObjectContainer =root as DisplayObjectContainer;
if (container)
{
 //enjoy
}
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 31.05.2016, 14:42
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 36  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
т.е. фактически рут - это DOC,просто внутри приложения его зачем-то приводят к DO?Странная логика.


Последний раз редактировалось undefined; 31.05.2016 в 14:55.
Старый 31.05.2016, 15:43
ObOs вне форума Посмотреть профиль Отправить личное сообщение для ObOs Найти все сообщения от ObOs
  № 37  
Ответить с цитированием
ObOs
 
Аватар для ObOs

Регистрация: Jul 2009
Сообщений: 149
Цитата:
Сообщение от undefined Посмотреть сообщение
ObOs, если ты прочтешь внимательнее,то увидишь такие слова:
Да, что ошибка на этапе компиляции я упустил. Думал что у тебя root - null в это время.

Тогда мне тоже не понятно почему

Код AS3:
trace(root is DisplayObjectContainer);//true
а

Код AS3:
trace(root.getChildAt(0));//ошибка

Старый 31.05.2016, 15:56
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 38  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
это приведение вверх по иерархии.Сам рут - DisplayObjectContainer,но ссылка на него описана как var rootisplayObject.Поэтому сам он DO, но допускает приведение к DOC.Зачем так сделано - загадка.

Добавлено через 2 минуты
ПС:Кто в курсе как эти смайлы отключить?

Старый 31.05.2016, 16:04
ObOs вне форума Посмотреть профиль Отправить личное сообщение для ObOs Найти все сообщения от ObOs
  № 39  
Ответить с цитированием
ObOs
 
Аватар для ObOs

Регистрация: Jul 2009
Сообщений: 149
Цитата:
Сообщение от undefined Посмотреть сообщение
это приведение вверх по иерархии.Сам рут - DisplayObjectContainer,но ссылка на него описана как var rootisplayObject.Поэтому сам он DO, но допускает приведение к DOC.Зачем так сделано - загадка.
А, кажется догоняю. Что-то типа:
Код AS3:
	public class SomeSprite extends Sprite
	{
 
		public function SomeSprite() 
		{
 
		}
	}
	var sprite:DisplayObject = new SomeSprite();
	trace(sprite.tabEnabled);//Ошибка
	trace((sprite as DisplayObjectContainer).tabEnabled);//Все ОК
Тогда действительно не понятно почему его не сделать типом DOC

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
ПС:Кто в курсе как эти смайлы отключить?
Ставить пробел между двоеточием и D
Геттер .root возвращает (имеет) тип DisplayObject. Поэтому компилятор не даст вам вызвать у свойства .root методы и свойства ДОК. Но, вроде, все знают, что рут это экземпляр Документ-класса, а им может быть только наследник DisplayObjectContainer.
Зачем такая фишка с .root, я тоже не знаю. С этими ДО и ДОК итак много всякого неочевидного. Взять тот же ТекстФилд, который явно ДОК, ибо в него можно загружать картинки и тп, но он никогда не сознается. И даже простенький Shape внутри содержит слои, что легко заметить, нарисовав несколько завершенных фигур с заливкой друг над другом, и поменяв затем альфу всему шейпу — каждый слой станет полупрозрачным "самостоятельно", то есть под верхней фигурой будет просвечивать нижняя.
Зато Stage гордо именует себя контейнером, хотя не поддерживает половину его свойств.
__________________
Reality.getBounds(this);

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

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

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


 


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


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