Просмотр полной версии : выгрузить swf из него самого
Помогите закрыть рюкзак из потомка.
код родителя:
//Открываю рюкзак.
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();
}
Тут все работает. А вот сделав кнопку в самом рюкзаке, не могу его закрыть.
Код потомка:
btn_close.addEventListener(MouseEvent.CLICK, offRuk);
function offRuk(e:MouseEvent):void
{
parent.offRuk();
}
Что написать то в рюкзаке надо, чтобы функцию родителя вызвать?
Написано все верно, возможно parent - Не есть родитель, а какой то контейнер. Проверьте на соотвествеие через is
А как?)) Да он и компилироваться так не хочет.
возможно parent - Не есть родительНу Loader же. Откуда у него метод offRuk()?
Да он и компилироваться так не хочет.Потому что у класса DisplayObjectContainer тоже нет метода offRuk().
caseyryan
11.05.2013, 20:52
В классах надо такие вещи писать. Гораздо проще все будет.
если не смущает такой абсолютно мутный шаманский путь, то в рюкзаке надо написать
btn_close.addEventListener(MouseEvent.CLICK, offRuk);
function offRuk(e:MouseEvent):void
{
parent.parent["offRuk"](null);
}
В классах надо такие вещи писать. Гораздо проще все будет.
В классы я еще не вникал. Знаю что там у них есть приватные , публичные функции. Надо в ООП вникать...
если не смущает такой абсолютно мутный шаманский путь, то в рюкзаке надо написать
parent.parent["offRuk"](null);
Не знаю что за строчка... Но помогло,спасибо!
Тупо скопировать и радоваться мне не интересно.)) Если не затруднит обьясните, почему parent 2 раза? Почему offRuk в каких то скобках квадратных и кавычках и что за null в конце? Что все это значит?
Я новичек во flash и AS3. Второй не изучал.
1)parent 2 раза из за того, что загруженный мувик находится в лоадере, т.е. первый - это лоадер, а второй основной таймлайн
2)обращение к offRuk через строку в скобках (динамический доступ), чтоб компилятор не смущать, об этом уже сказали: у parent (DisplayObjectContainer) нет метода offRuk()
3)null в аргументах - потому, что function offRuk(e:Event) ждет один аргумент
Добавлено через 14 минут
такие вот "фокусы" это вообще-то пережитки самых ранних версии AS: весь код "на борту" мувиков, взаимодействие через parent - короче, жуть и шаманство.., что-то чуть посерьезнее баннера превращается в ацкую шараду
AS3 позволяет этот бред нормально структурировать, о чем комрады выше у же сказали
Мда с MoiveClip-ами все проше. Но не хочеться основную флешку напрягать. Лучше сделать все отдельно, или я зря так думаю?
1)parent 2 раза из за того, что загруженный мувик находится в лоадере, т.е. первый - это лоадер, а второй основной таймлайн
2)обращение к offRuk через строку в скобках (динамический доступ), чтоб компилятор не смущать, об этом уже сказали: у parent (DisplayObjectContainer) нет метода offRuk()
3)null в аргументах - потому, что function offRuk(e:Event) ждет один аргумент
Добавлено через 14 минут
такие вот "фокусы" это вообще-то пережитки самых ранних версии AS: весь код "на борту" мувиков, взаимодействие через parent - короче, жуть и шаманство.., что-то чуть посерьезнее баннера превращается в ацкую шараду
AS3 позволяет этот бред нормально структурировать, о чем комрады выше у же сказали
С первым пунктом мне все понятно, остальное тма тьмущая. Ладно будем разбираться. Дойдет.. если не сразу то со временем. Всем спасибо кто помог. и ответил.
>> Но не хочеться основную флешку напрягать. Лучше сделать все отдельно, или я зря так думаю?
тут такое дело: даже если в этом случае что-то проще сделать 'прямо по месту' что-ли, то это все равно не будет твоим стилем программирования, думаю
поэтому выбор такой: сделать абы работало или разобраться с основами и делать так, чтобы компилятор был уверен, что это будет работать, ведь ругается он не из вредности, а из-за того что написано неправильно/неоднозначно/криво
можно и обмануть его типа parent["offRuk"], но когда при каких-то внешних изменениях это перестанет работать, то искать из-за чего оно придется вслепую и долго, все это в той же мере относится и коду в кадрах
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.