Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Дубликат без слушателей (http://www.flasher.ru/forum/showthread.php?t=192836)

GoodWin74 20.01.2013 00:20

Дубликат без слушателей
 
Делаю дубликат Loadera таким методом:
Код AS3:

function onLoaded(e:Event){
addChild(spTelo); //spTelo:Loader
spTelo.x=275;
spTelo.y=274;
MovieClip(spTelo.content).gotoAndStop(1);
var c:Class = Object(spTelo.content).constructor;
var copy:MovieClip = new c ();
addChild (copy);
copy.x = copy.y = 100;
copy.gotoAndStop (2);
copy.addEventListener(MouseEvent.CLICK,function(){
MovieClip(spTelo.content).gotoAndStop(2);
})
}

С виду вроде все работоспособно, но когда вешаешь на копии слушатели, то они игнорируются, как будто их и не вешали. Подскажите, пожалуйста, в чем причина?:confused:

alatar 20.01.2013 04:20

Loader у вас как был один, так один и остался. Вы создали еще один экземпляр класса из загруженной swf. На какие события вы подписывались?

Wolsh 20.01.2013 12:35

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

GoodWin74 20.01.2013 12:50

alatar, а как тогда сделать, что бы и события были у копии, подскажите, пожалуйста, если не сложно :)


Wolsh, Ну я думаю понятно, что я пишу addEventListener, на объект copy. Так что скрывать особо и нечего :)

alatar 20.01.2013 12:59

Они и так у нее есть. Зависит от того какие события вы хотите получить.

GoodWin74, вы решили устроить викторину "отгадай проблему"? Больше конкретики в вопросах. Вы утверждаете, что у вас не получается подписаться на некие события и при этом упорно скрываете что это за события.

GoodWin74 20.01.2013 13:03

Вложений: 1
Извиняюсь, тогда.
Код AS3:

copy.addEventListener(MouseEvent.CLICK,function(){
MovieClip(spTelo.content).gotoAndStop(2);
})

прикрепляю так же проект

caseyryan 20.01.2013 13:38

Цитата:

а как тогда сделать, что бы и события были у копии, подскажите, пожалуйста, если не сложно
Должно быть имелось в виду, чтобы и слушатели событий были добавлены к копии?
Их прийдется добавлять к ней самостоятельно.

GoodWin74 20.01.2013 13:57

Ну я уже понял, что как то добавить нужно, но не могу найти как :) Буду признателен и благодарен за небольшой пример :)

alatar 20.01.2013 14:13

Что-то в загружаемой флешке блокирует мышиные события.
Код AS3:

private function onLoaded(e:Event):void{
        addChild(spTelo);
        spTelo.x=150;
        spTelo.y=150;
        MovieClip(spTelo.contentLoaderInfo.content).gotoAndStop(1);
        var c1:Class = MovieClip(spTelo.content).constructor;
        var copyTelo:MovieClip = new c1();
 
        var container:Sprite = new Sprite();
        container.addChild(copyTelo);
        addChild(container);
        container.x=110;
        container.y=50;
        copyTelo.width=50;
        copyTelo.height=59.7;
        copyTelo.gotoAndStop(2);
        copyTelo.mouseChildren = false;
        container.addEventListener(MouseEvent.CLICK,copy_clickHandler);
}
 
private function copy_clickHandler(event:MouseEvent):void
{
        MovieClip(spTelo.content).gotoAndStop(2);
        trace("click");
}


GoodWin74 20.01.2013 14:40

alatar, Спасибо большое! :)

И все таки хотелось бы понять, есть ли методы, что бы добавить слушатели непосредственно к самой копии. Потому что с виду вроде не что не блокирует мышиные события именно копии, больше похоже что класс остался без слушателей и их нужно как то добавить :)


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

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