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

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

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

Регистрация: May 2013
Сообщений: 6
По умолчанию выгрузить swf из него самого

Помогите закрыть рюкзак из потомка.

код родителя:
Код AS3:
//Открываю рюкзак.
btnRukOn.addEventListener(MouseEvent.CLICK,onRuk);
 
var rukUrl:URLRequest = new URLRequest("rukzak.swf");
var rukLoad:Loader = new Loader();
 
function onRuk(e:MouseEvent):void
{
	rukLoad.load(rukUrl);
	addChild(rukLoad);
}
 
// Закрываю рюкзак.
btnRukOff.addEventListener(MouseEvent.CLICK, offRuk);
 
function offRuk(e:Event):void
{
	rukLoad.unload();
}
Тут все работает. А вот сделав кнопку в самом рюкзаке, не могу его закрыть.
Код потомка:
Код AS3:
btn_close.addEventListener(MouseEvent.CLICK, offRuk);
 
function offRuk(e:MouseEvent):void
{
	parent.offRuk();
}
Что написать то в рюкзаке надо, чтобы функцию родителя вызвать?

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Написано все верно, возможно parent - Не есть родитель, а какой то контейнер. Проверьте на соотвествеие через is
__________________
Марк Tween

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

Регистрация: May 2013
Сообщений: 6
А как?)) Да он и компилироваться так не хочет.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
возможно parent - Не есть родитель
Ну Loader же. Откуда у него метод offRuk()?
Цитата:
Да он и компилироваться так не хочет.
Потому что у класса DisplayObjectContainer тоже нет метода offRuk().
__________________
Reality.getBounds(this);

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
В классах надо такие вещи писать. Гораздо проще все будет.

Старый 11.05.2013, 21:50
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
если не смущает такой абсолютно мутный шаманский путь, то в рюкзаке надо написать
Код AS3:
btn_close.addEventListener(MouseEvent.CLICK, offRuk);
function offRuk(e:MouseEvent):void
{
	parent.parent["offRuk"](null);
}

Старый 11.05.2013, 22:44
Denis37 вне форума Посмотреть профиль Отправить личное сообщение для Denis37 Найти все сообщения от Denis37
  № 7  
Ответить с цитированием
Denis37

Регистрация: May 2013
Сообщений: 6
Цитата:
Сообщение от caseyryan Посмотреть сообщение
В классах надо такие вещи писать. Гораздо проще все будет.
В классы я еще не вникал. Знаю что там у них есть приватные , публичные функции. Надо в ООП вникать...

Цитата:
Сообщение от silin Посмотреть сообщение
если не смущает такой абсолютно мутный шаманский путь, то в рюкзаке надо написать
Код AS3:
parent.parent["offRuk"](null);
Не знаю что за строчка... Но помогло,спасибо!
Тупо скопировать и радоваться мне не интересно.)) Если не затруднит обьясните, почему parent 2 раза? Почему offRuk в каких то скобках квадратных и кавычках и что за null в конце? Что все это значит?
Я новичек во flash и AS3. Второй не изучал.

Старый 11.05.2013, 23:18
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
1)parent 2 раза из за того, что загруженный мувик находится в лоадере, т.е. первый - это лоадер, а второй основной таймлайн
2)обращение к offRuk через строку в скобках (динамический доступ), чтоб компилятор не смущать, об этом уже сказали: у parent (DisplayObjectContainer) нет метода offRuk()
3)null в аргументах - потому, что function offRuk(e:Event) ждет один аргумент

Добавлено через 14 минут
такие вот "фокусы" это вообще-то пережитки самых ранних версии AS: весь код "на борту" мувиков, взаимодействие через parent - короче, жуть и шаманство.., что-то чуть посерьезнее баннера превращается в ацкую шараду

AS3 позволяет этот бред нормально структурировать, о чем комрады выше у же сказали

Старый 11.05.2013, 23:45
Denis37 вне форума Посмотреть профиль Отправить личное сообщение для Denis37 Найти все сообщения от Denis37
  № 9  
Ответить с цитированием
Denis37

Регистрация: May 2013
Сообщений: 6
Мда с MoiveClip-ами все проше. Но не хочеться основную флешку напрягать. Лучше сделать все отдельно, или я зря так думаю?

Цитата:
Сообщение от silin Посмотреть сообщение
1)parent 2 раза из за того, что загруженный мувик находится в лоадере, т.е. первый - это лоадер, а второй основной таймлайн
2)обращение к offRuk через строку в скобках (динамический доступ), чтоб компилятор не смущать, об этом уже сказали: у parent (DisplayObjectContainer) нет метода offRuk()
3)null в аргументах - потому, что function offRuk(e:Event) ждет один аргумент

Добавлено через 14 минут
такие вот "фокусы" это вообще-то пережитки самых ранних версии AS: весь код "на борту" мувиков, взаимодействие через parent - короче, жуть и шаманство.., что-то чуть посерьезнее баннера превращается в ацкую шараду

AS3 позволяет этот бред нормально структурировать, о чем комрады выше у же сказали
С первым пунктом мне все понятно, остальное тма тьмущая. Ладно будем разбираться. Дойдет.. если не сразу то со временем. Всем спасибо кто помог. и ответил.

Старый 12.05.2013, 00:09
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>> Но не хочеться основную флешку напрягать. Лучше сделать все отдельно, или я зря так думаю?
тут такое дело: даже если в этом случае что-то проще сделать 'прямо по месту' что-ли, то это все равно не будет твоим стилем программирования, думаю
поэтому выбор такой: сделать абы работало или разобраться с основами и делать так, чтобы компилятор был уверен, что это будет работать, ведь ругается он не из вредности, а из-за того что написано неправильно/неоднозначно/криво
можно и обмануть его типа parent["offRuk"], но когда при каких-то внешних изменениях это перестанет работать, то искать из-за чего оно придется вслепую и долго, все это в той же мере относится и коду в кадрах

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

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

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


 


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


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