【发布时间】:2014-11-21 22:37:08
【问题描述】:
我已将movieClip 加载到舞台上,并在该movieClip 上执行一些事件。影片剪辑有自己的公共函数和变量,它们不能通过事件中的 currentTarget 对象访问。
这是示例类:
package {
import flash.display.MovieClip;
import flash.display.Shape;
public class SampleClass extends MovieClip {
var str:String;
public function SampleClass() {
str="Some string";
/* draw just a sample rectangle to click on it */
var rectangle:Shape=new Shape ;
rectangle.graphics.beginFill(0x000000);
rectangle.graphics.drawRect(0,0,100,100);
rectangle.graphics.endFill();
}
public function getStr():String {
return str;
}
}
}
这里正在加载舞台并创建事件:
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class MainClass extends MovieClip {
var a:SampleClass;
public function MainClass() {
a=new SampleClass();
addChild(a);
a.addEventListener(MouseEvent.CLICK,clickEvent);
}
function clickEvent(evt:MouseEvent):void {
var Obj=evt.currentTarget;
trace (Obj.getStr());
}
}
}
跟踪将返回null 而不是string 值,因为currentTarget 是Object,而不是Class(movieClip)。知道如何解决这个问题吗?
【问题讨论】:
-
看来你需要先投:
var Obj=SampleClass(evt.currentTarget);
标签: actionscript-3 flash event-handling