如何从movieclip获取e.target.name

时间:2012-01-21 18:25:13

标签: flash actionscript-3 addeventlistener

我正在尝试trace启动eventListener的按钮的名称。但相反,我一直在

instance11而不是movieClip的名称,该名称应该是0-5之间的数字

下面的

是我的动作的一部分。

 import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var columns:Number = 3;
var my_x:Number;
var my_y:Number;
var my_thumb_width:Number = 310;
var my_thumb_height:Number = 440;
var my_groups:XMLList;
var my_total:Number;
var x_counter:Number = 0;
var y_counter:Number = 0;
var title_message:String = "xxxxxx";


var container_mc:MovieClip;

var my_tweens:Array = [];
var container_mc_tween:Tween;
var full_tween:Tween;


var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load (new URLRequest("config/menu.xml"));
myXMLLoader.addEventListener (Event.COMPLETE, processXML);

function processXML (e:Event):void {
    var myXML:XML = new XML(e.target.data);
    my_groups = myXML.group;
    my_total = my_groups.length();
    createContainer();
    callThumbs();
}


function createContainer():void {

    container_mc = new MovieClip();
    container_mc.x = 425;
    container_mc.y = 125;
    addChild(container_mc);
    container_mc.addEventListener(MouseEvent.CLICK, callSub);
    container_mc.buttonMode = true;



}

function callThumbs():void {

    for (var i:Number = 0; i < my_total; i++) {

        var thumb_url = my_groups[i].@thumb;

        var thumb_loader = new Loader();
        thumb_loader.load(new URLRequest(thumb_url));
        thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);

        thumb_loader.name = "thumb_" +i;
        trace(thumb_loader.name);

        thumb_loader.x = (my_thumb_width+10)*x_counter;
        thumb_loader.y = (my_thumb_height+10)*y_counter;



        if (x_counter+1 < columns) {
            x_counter++;
        } else {
            x_counter = 0;
            y_counter++;
        }

    }


}

function thumbLoaded(e:Event):void {
    var my_thumb:Loader = Loader(e.target.loader);
    container_mc.addChild(my_thumb);
    my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,1,0.5, true);
    my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}

function callSub(e:MouseEvent):void {
    trace("IN CALL SUB");
    trace(e.currentTarget.name);

}

2 个答案:

答案 0 :(得分:1)

尝试设置:

thumb_loader.mouseChildren = false;

然后追踪:

trace(e.target.name);

答案 1 :(得分:0)

尝试使用e.currentTarget.name

事件对象跟踪捕获/冒泡堆栈中的两个目标。 e.target始终是引发事件的EventDispatcher,而e.currentTarget是当前处理事件的EventDispatcher。

您实际点击 on 的孩子是e.target,这就是禁用儿童鼠标事件的原因。该事件并未冒泡任何父亲,因此e.targete.currentTarget相同。