Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Работа с Movieclip (http://www.flasher.ru/forum/showthread.php?t=130617)

Ilut 30.09.2009 08:11

Работа с Movieclip
 
Доброе время суток.
1. Я подгружаю swf и помещаю их в movieclip и все получившиеся movieclip'ы кладу в массив.
Код AS3:

var mc:MovieClip=MovieClip(e.target.content);
tcas_mc_arr.push(mc);

Где e.target.content это Loader. Все мувики я отображаю в "главном" кадре. Если же я пытаюсь поместить какой-то из мувиков в другом месте, то он пропадает в "главном" кадре.
Код AS3:

var tmp_tcas:MovieClip=tcas_arr[tmp_val];                                
show_tcas.addChild(tmp_tcas);

Подскажите пожалуйста как этого можно избежать!

2. Создаются MovieClip'ы и им присваивается событие и имя:
Код AS3:

var btn:play_bc=new play_bc();
btn.name="some_name";
 
btn.addEventListener(MouseEvent.MOUSE_DOWN, btn_down);
main_w.addChild(btn);       
 
function btn_down(e:MouseEvent)
{
        trace(e.target.name );               
}

Но по нажатию мне выводится instance672. Подскажите пожалуйста как в этой ситуации можно получить именно то имя, что я задавал?
Заранее благодарю за помощь!

silin 30.09.2009 10:31

1.
естественно, что ты не можешь положить один объект в два разных места, для этого нужна копия этого объекта
создать ее можно, зная класс этого объекта через new
узнать/получить класс подгруженного мувика (для этого он должен иметь свой документ класс) можно с помощью getDefinition в applicationDomain загруженного мувика
Код AS3:

var mc:MovieClip = MovieClip(e.target.content);
var className:String = getQualifiedClassName(mc);
var mcClass:Class = Class(e.target.applicationDomain.getDefinition(className));
addChild(mc);//мувик, который загрузился
var mc2:MovieClip = new mcClass();//новый, такой же
mc2.x = 100;
addChild(mc2);

2.
instance672 это скорее всего имя кого-то из детей btn, на которого пришелся клик
попробуй посмотреть e.currentTarget.name

Ilut 30.09.2009 22:08

Большое спасибо, очень помогло!


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

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