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

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

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
По умолчанию Обращение parent

Давно не писал на as3, и тут пытаюсь вызвать родителя но получаю нуль. В отце код
Код AS3:
for(var q = 0; q < 4; q++) {
var chipb:Chip = new Chip(owner, q);
addChild(chipb);
};
в дитёныше(Chip):
Код AS3:
trace(this.parent);    //null
Почему нуль, понять не могу.

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

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
Код AS3:
addEventListener(Event.ADDED_TO_STAGE, function():void{trace(parent)})

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
да там классы почти пустые ещё, не должно из-за этого

Добавлено через 2 минуты
беру своя слова обратно ))) TERRORist, спасибо

Добавлено через 1 час 47 минут
А ещё вопросик: методы родителей нельзя вызывать как
Код AS3:
parent.myFunc();
эт нормально? или я чего напортачил?
P.S. всё позабывал к чертям... пишу просто на других языках сейчас и очень быстро всё забывается.

Добавлено через 1 час 54 минуты
если передавать ссылку this через конструктор детёныша, то всё работает, но это вроде как не хорошо.... как говорят гуру

Старый 19.12.2009, 18:30
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 4  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Код AS3:
parent.myFunc();
Наверняка вы пытаетесь такое проделать внутри конструктора ребёнка. В таком случае это работать не будет, потому что ребенок сначала создаётся (parent == null), а потом помещается на сцену (addChild).

Обращаться напрямую к родителю плохо, потому что ваш код тут же теряет универсальность. Т.е. если нормально написанный мувик можно засунуть куда угодно и он везде будет работать как надо, или хотя бы не вызовет никаких ошибок, то при таком вот обращении, если мувик засунуть в родителя, у которого нет myFunc, случится ошибка.

Как лучше делать? Слать наверх события. Если родитель знает, что внутри него живёт, он подпишется на нужное событие, поймает его и сделает всё что надо. Если не знает - просто ничего не произойдет.
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
неа, это вызывается после события ADDED_TO_STAGE когда родитель уже определён.
На счёт универсальности кода я сейчас не особо заморачиваюсь, т.к. это пишется раз и до конца, и апгрейдится уже не будет и я чётко уверен что других родителей у этого класса не будет.

Старый 20.12.2009, 20:22
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
А ещё вопросик: методы родителей нельзя вызывать как
Родитель имеет тип DisplayObjectContainer, у которого нету метода myFunc()
Перекастуйте в нужный класс, после чего вызывайте.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от willis83 Посмотреть сообщение
А ещё вопросик: методы родителей нельзя вызывать как
Код AS3:
parent.myFunc();
эт нормально? или я чего напортачил?
Это просто фантастика! Представь, что есть дитё рожденное вне брака. Ну нашелся у него parent. И вот это дитё спрашивает своего парента: parent.giveMeMoney(1Billion в десятидоллоровых купюрах). И парент немного опухает. Почему вне брака? Потому что такое дите обычно мало знает о родителе, с которым живет обычное дитё. Это для полноты ощущения.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 21.12.2009 в 02:40.
Старый 21.12.2009, 12:14
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 8  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
Код AS3:
ParentClass(parent).myFunc()

Старый 21.12.2009, 12:29
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 9  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
так писать нельзя...для этого есть события...но и курить столько же, сколько курит dimarik тоже не стоит
__________________
Flash Developer
Папа TDP4 Team Battle

Старый 21.12.2009, 18:21
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Хехе. Я к тому, что спиногрыз не должен знать чем занимается папашка и какие у него есть методы.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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