2012-01-21 123 views
0

我想trace启动该eventListener按钮的名称得到e.target.name。而是我不断收到的如何从一个影片剪辑

instance11反而应该是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][email protected]; 

     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); 

} 

回答

1

尝试设置:

thumb_loader.mouseChildren = false; 

然后跟踪:

trace(e.target.name); 
+0

我做了这个改变,我仍然在追踪instance11。 – Denoteone

+0

你在哪里设定名称?我没有看到你在上面的代码中这样做。 –

+0

thumb_loader.name = i; – Denoteone

0

尽量只使用e.currentTarget.name

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

孩子,你实际上点击上是e.target,这就是为什么禁用儿童鼠标事件的原因。这个事件并没有冒充任何父亲,因此e.targete.currentTarget相同。