Форум 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=156187)

sweet_fighter 17.05.2011 23:46

Доступ к дочернему MovieClip'у посредством e.target
 
Никак не могу разобраться. К вечеру совсем одичал... Помогите пжлста.
Пример

Код AS3:

var icon:Bitmap = new Bitmap();
var addText:AddText = new AddText();
var iconHolder:MovieClip = new MovieClip();
 
addChild(iconHolder);
iconHolder.addChild(icon); //просто картинка
iconHolder.addChild(addText); //мувик с двумя динамическими текстовыми полями, txt и date.
 
iconHolder.addEventListener(MouseEvent.ROLL_OVER, atata);
 
function atata(e:MouseEvent):void{
//вот тут некий e.target должен достучатся до addText.txt, и втоптать его альфу в 0
//что то типа
//e.currentTarget.addText.txt.alpha = 0;
//e.currentTarget.icon.alpha = .5;
//но так имеем ерор =((
}

спасибо за совет =)

Bgg 17.05.2011 23:51

Код AS3:

function atata(e:MouseEvent):void{
  e.currentTarget// — это ваш iconHolder
}

И не пишите в кадрах.

sweet_fighter 17.05.2011 23:53

ну так понятно что там iconHolder мой))
а к его внутреним мувикам как достучатся?)

Bgg 17.05.2011 23:56

Код AS3:

function atata(e:MouseEvent):void{
  (e.currentTarget as MovieClip).icon.alpha = .5;
  //или
  (e.currentTarget["icon"] as DisplayObject).alpha = .5;
  //или
  e.currentTarget["icon"]["alpha"] = .5;
}


dimarik 18.05.2011 00:08

Цитата:

Сообщение от sweet_fighter (Сообщение 996822)
Код AS3:

//вот тут некий e.target должен достучатся до addText.txt, и втоптать его альфу в 0
//что то типа
//e.currentTarget.addText.txt.alpha = 0;
//e.currentTarget.icon.alpha = .5;
//но так имеем ерор =((

спасибо за совет =)

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

sweet_fighter 18.05.2011 00:12

Цитата:

Сообщение от dimarik (Сообщение 996828)
Вы должны отдавать себе отчет, что все дети куста списка отображения, у которых есть возможность реагировать на события мыши с радостью разошлют это событие по горизонтали (по непосредственно подписанным) и по вертикали (всплытие события). Вы подписываете на мышиное событие корень куста, подумайте, как будете собирать урожай.

removeEventListener мне в помощь.. =)


Bgg, спасибо большое. Ваши способы натолкнули меня на

Код AS3:

        addText.name = "name";
                        iconBitmapHolder.name = "name2";
...
...
        e.currentTarget.getChildByName("name").alpha = 0;
        e.currentTarget.getChildByName("name2").alpha = .5;

Теперь все работает =)

Bgg 18.05.2011 00:13

Я честно не хотел вас на "это" наталкивать.

Nemez 18.05.2011 15:15

Приятно в таких случаях написать
Код AS3:

function atata(e:MouseEvent):void{
  trace ("e.target " + e.target);
}

и поводить мышкой по экрану.


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

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