Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему не могу обратиться к элементу через e.target (http://www.flasher.ru/forum/showthread.php?t=204157)

grafillo! 21.10.2013 18:33

Почему не могу обратиться к элементу через e.target
 
Почему не могу обратиться к элементу через e.target
Код AS3:

import flash.display.MovieClip;
 
 
var mc:MovieClip = new MovieClip;
mc.mouseChildren=false;
var krug:s = new s;
var kvadr:k = new k;
krug.y = 100;
krug.x = 100;
mc.addChild(krug);
mc.addChild(kvadr);
addChild(mc);
mc.addEventListener(MouseEvent.CLICK,cli);
function cli (e:MouseEvent){
        e.target.krug.x=300;
 
        }


in4core 21.10.2013 18:58

(e.currentTarget as MovieClip).krug.x = 300

udaaff 21.10.2013 20:12

Потому что у mc нету свойства krug.

grafillo! 21.10.2013 21:03

(e.currentTarget as MovieClip).krug.x = 300 - не работает
как надо написать?

Добавлено через 46 секунд
Код AS3:

function cli (e:MouseEvent){
        (e.currentTarget as MovieClip).krug.x=300;
 
        }


udaaff 21.10.2013 21:10

getChildAt(), getChildByName().

in4core 21.10.2013 21:19

e.currentTarget.krug.x = 300 100% должно работать. С приведением к мувиклипу это я погорячился , да.

udaaff 21.10.2013 21:20

Оно не должно работать.

grafillo! 21.10.2013 21:27

всмысле не должно?
это чтоли невозможно реализовать?

Akopalipsis 21.10.2013 21:41

Вам нужно первым делом задать имя кругу.
Код AS3:

circle.name = 'circle';

Потом в обработчике событий -
Код AS3:

mc.getChildByName('circle').x = 300;

Добавлено через 1 минуту
А так получается, что Вы кликнули по квадрату, в обработчике событий под event.target вылазиет квадрат, у которого нет свойства круг.
Или сделайте обьявите mc на уровне класса и в обработчике уже через него
Код AS3:

_mc.circle += 50;


in4core 21.10.2013 21:47

Цитата:

Оно не должно работать.
Вообще то это скомпилится. e.currentTarget есть Object , соотсвесвенно динамический тип, значит у него есть...
ах понял наконец то... тут же разговор идет не про библиотечный клип... В котором вложены мувики с именами krug. Затупил действительно. Тогда только как советают выше. Вообще локальные переменные зло, сделали бы полями класса и все ок было бы обращались бы напрямую.

grafillo! 21.10.2013 21:51

эммм а как сделать полями класса?

in4core 21.10.2013 22:50

Не писать в кадрах :)


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

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