Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как MovieClip обратиться к e.target? (http://www.flasher.ru/forum/showthread.php?t=144194)

Alex Burn 06.09.2010 01:43

Как MovieClip обратиться к e.target?
 
Есть проблема, мне нужно обратиться к элементу e.target из MovieClip
Код AS3:

var clip:MovieClip;
var clipObj:Object = new Object();
clipObj = e.target;
 
clip.filters=someFilter;

Мне нужно что то вроде
Код AS3:

var clip:MovieClip;
var clipObj:Object = new Object();
clipObj = e.target;
clip = clipObj;
 
clip.filters=someFilter;


alatar 06.09.2010 01:55

откуда вы его взяли? (e.target)

Добавлено через 8 минут
Итак, проводим сеанс телепатии.
1. Судя по-всему, вы пытаетесь добраться до объекта в слушателе. И скорее всего в слушателе события мыши.
2. Если слушатель повешен на DisplayObjectContainer (Sprite, MovieClip), то в свойстве target события будет объект который это событие вызвал (либо сам контейнер, либо один из его детей, по которому кликнули/навели/отвели, нужное подчеркнуть)

Отсюда следует, что в данном случае лучше использовать свойство currentTarget объекта Event (в данном случае MouseEvent)
Код AS3:

private function myListener(event:MouseEvent):void
{
    var clip:MovieClip = MovieClip(event.currentTarget);
    clip.filters = ... и так далее
{


Alex Burn 06.09.2010 02:11

Именно так ;).
Но проблема в том что выдает все равно ошибку на строке
Код AS3:

var clip:MovieClip = MovieClip(event.currentTarget);

Вот кусок кода который получился
Код AS3:

function MenuOver(e:MouseEvent):void {
        var clip:MovieClip = MovieClip(event.currentTarget);
        timer.addEventListener(TimerEvent.TIMER, glowIt);
        function glowIt(evt:TimerEvent):void {
                glow.blurX=getRandom(5);
                glow.blurY=getRandom(5);
                glow.alpha=Math.random()*5;
                clip.filters=startFilters;
}
                timer.start();
 
 
 
}

Ошибка с твоим исправлением
Код AS3:

1120: Access of undefined property event. var clip:MovieClip = MovieClip(event.currentTarget);


alatar 06.09.2010 02:13

Про телепатию была шутка. Поэтому уточните какая ошибка. Постарайтесь яснее излагать свои мысли. Постарайтесь впредь не использовать вложенные функции, ни к чему хорошему это не приведет.

Alex Burn 06.09.2010 02:20

Ок. Я опечатался. Все работает. А щас вопрос. Как теперь использовать переменную clip в другой функции?? например MouseOut

Код AS3:

private function MenuOver(event:MouseEvent):void {
        var clip:MovieClip = MovieClip(event.currentTarget);
        timer.addEventListener(TimerEvent.TIMER, glowIt);
        function glowIt(evt:TimerEvent):void {
                glow.blurX=getRandom(5);
                glow.blurY=getRandom(5);
                glow.alpha=Math.random()*5;
                clip.filters=startFilters;
}
                timer.start();
}
 
private function MenuOut(event:MouseEvent):void {
 
        timer.stop();
        clip.filters=[];
}


alatar 06.09.2010 02:22

Точно так же – создать.

Добавлено через 2 минуты
P.S. функцию glowIt, перепишите как функцию класса, в таком виде она у вас заново создается при каждом событии таймера.

Alex Burn 06.09.2010 02:30

Код AS3:

function MenuOut(event:MouseEvent):void {
        var clip:MovieClip=MovieClip(event.currentTarget);       
        timer.stop();
        clip.filters=[];
}

В таком виде у меня почему то предыдущая кнопка гаснет, но при наведении на третью загорается три, при наведении на четвертую загорается все четыре :(

С классами не очень дружу. Но щас пороюсь в документации, перепишу, спасибо

alatar 06.09.2010 03:02

Цитата:

В таком виде у меня почему то предыдущая кнопка гаснет, но при наведении на третью загорается три, при наведении на четвертую загорается все четыре
А куда вы слушателя вешаете? Button не является наследником MovieClip.

Alex Burn 06.09.2010 03:14

У меня не совсем кнопки. У меня иконки конвертированные в MovieClip. Я слушатель вешаю на иконку и при наведении на него у меня она загорается, а когда с нее уводишь мышку она погасает. Но при наведении на другую иконку (MovieClip) загорается та на которую я наводил прежде и та на которую навел только что. И так далее по цепочки

samana 06.09.2010 09:25

Вложений: 1
Мне кажется вы делаете ошибку, если это у вас есть класс Меню, в котором все кнопки, то нужно использовать не currentTarget, а target. А если это класс каждой кнопки, то зачем тогда вообще находить ссылку?

Если первый вариант, то посмотрите исходник.


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

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