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

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

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

Регистрация: Feb 2014
Сообщений: 25
По умолчанию Обращение к доч.элементу родителя с другого доч.эл.

На сцену добавлено два мувиклипа "hero" и "coin"
На одном ресурсе нашел вот такой код-реакция на столкновение этих объектов, написанный внутри "coin" на AS2

Код AS1/AS2:
this.onEnterFrame = function()
   {
      if (_root.hero.hitTest(this))
        {
          this.unloadMovie();
        }
  };
Решил переписать его по аналогии для AS3:

Код AS3:
this.addEventListener(Event.ENTER_FRAME, coinDetect);
function coinDetect(e:Event):void
{
	if (root.hero.hitTestObject(this))
	{
		root.removeChild(this);
	}
}
Как правильно обращаться к сестринским\братским элементам изнутри самого себя ? По трассировке понял что проблема в root, с parent тоже самое. trace(root.hero) выдает ошибку

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Как правильно обращаться к сестринским\братским элементам изнутри самого себя ?
Правильно — никак. Программирование это команды. Рядовые в окопе не командуют друг другом. Командует командир.
__________________
Reality.getBounds(this);

Старый 09.03.2014, 17:50
Wizlight вне форума Посмотреть профиль Отправить личное сообщение для Wizlight Найти все сообщения от Wizlight
  № 3  
Ответить с цитированием
Wizlight

Регистрация: Feb 2014
Сообщений: 25
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Правильно — никак. Программирование это команды. Рядовые в окопе не командуют друг другом. Командует командир.
Это как я понимаю основа ООП, которого в AS2 было мало, и поэтому там так можно было?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Всё же есть существенная разница между "можно" и "правильно".
"Можно" и сейчас, механизм то тот же самый — передача ссылки.
"Правильно" было и в AS2 не рассыпать логику программы по временным одноразовым клипикам. ООП это не язык, а принципы дизайна системы.
У Вас есть класс "мира", в котором создаются и монетки и герой. Он создает эти объекты и он "знает" для чего и что с ними делать. Это просто логично, это не зависит от языка. Монетки ничего не знают о герое. У них нет мозгов, только молекулы металла и примеси. Класс монетки не должен ничего знать и о мире, в который насыпали монеток — тогда эти монетки, этот Класс, можно использовать повторно в других проектах с другим миром и другим героем. Сейчас Вы в классе монетки требуете, чтобы в классе по ссылке root непременно присутствовало свойство hero. То есть у Вас в дизайне каждый мелкий классик диктует свои требования к основному классу приложения. Это недопустимо "неправильно".
__________________
Reality.getBounds(this);

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

Регистрация: Feb 2014
Сообщений: 25
понятно, но все же, как устроить эту ссылку? хоть это и не правильно...но возможно

Старый 10.03.2014, 02:38
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 6  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Покажи что за ошибка

Старый 10.03.2014, 02:53
Wizlight вне форума Посмотреть профиль Отправить личное сообщение для Wizlight Найти все сообщения от Wizlight
  № 7  
Ответить с цитированием
Wizlight

Регистрация: Feb 2014
Сообщений: 25
Символ "coin", слой "@", кадр 1, строка 4 1119: Обращение возможного неопределенного свойства hero через ссылку со статическим типом flash.displayisplayObject .

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

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

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


 


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


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