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

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

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

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
С этим нет особых проблем. Можно.
Другое дело, что применять это можно в только в тех случаях, когда у тебя родитель и ребенок по сути одно целое и не могут существовать друг без друга. Ну или во всяком случае, когда ребенок без данного родителя не может существовать.
Вещание событий применяется для того, чтобы сделать объекты максимально независимыми, а проект более гибким.
__________________
http://realaxy.com

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Понятно, спасибо. Забыл ещё дополнить - если можно, то как?
Для простоты послал мувиклип на главную сцену, из конструктора что нибудь вроде
Код:
trace(_parent);
Выдает ошибку компиляции -
Цитата:
1120: Access of undefined property _parent.
Теоретически можно при создании самого обьекта передавать в конструктор ссылку на родителя, но это как то... не красиво, чтоли

Старый 15.04.2008, 15:39
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 33  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Хм, нашел - свойство parent. Странно оно работает...
Для примера - в фрейме код:
Код:
var colSelector:colorSelector=new colorSelector(this);
addChild(colSelector);
colSelector.init();
function setMyColor(n:Number){
		trace(n);
}
Код в colorSelector.as
Код:
package{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	
public class colorSelector extends Sprite{
	private var myParent;
	public function colorSelector(myVar):void{
		myParent=myVar; //ссылка на родителя
	}
	public function init():void{	     this.addEventListener(MouseEvent.MOUSE_DOWN,showMenu);
	}
	private function showMenu(ev:MouseEvent):void{
		myParent.setMyColor(9); //trace 9 - нормально
                      trace(parent===myParent); //true, ну так и должно быть
		parent.setMyColor(9); //ошибка компиляции - метод setMyColor не найден
	}

}
}
Единственное что лезет в голову - что один из них - непосредственно обьект, а другой - ссылка на него. (или как то так, в свое время на ас2 бился из за этого об стену). Но под === равенство выполняется, и оба они - ссылки! Что это? О_о

Старый 15.04.2008, 16:12
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 35  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
вы не можите работать напрямую с памтью плэйера, поэтому даже если Вы напишите var myvar = new Object(), myvar всё равно будет ссылкой.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Ммм, согласен. Все же, почему myParent работает правильно, а parent нет, если они идентичны?

Старый 15.04.2008, 16:35
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 37  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
они оба работаю правильно.
просто у компилятор не знает о том, что у вашего parent типа DisplayObjectContainer есть метода setMyColor.
а объект myParent не типизирован, что приводит к болие медленному доступу, за никогда не приводит к ошибкам компиляции.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Понятно, спасибо. Есть ли способы заставить компилятор увидеть этот метод через parent?

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

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
Если есть parent и есть метод, то компилятор его увидит без проблем.
Если всё-таки речь идет о том, чтобы его увидел редактор кода, то parent нужно кастить интерфейсом или классом.
__________________
http://realaxy.com

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
В том то и дело что не видит (пример выше)

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

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

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


 


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


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