Actionscript 3 如何将事件分派到动作脚本3中的另一个类?
我搜索了一些文档,但找不到关于将事件分派到其他类的信息 我正试着这样做Actionscript 3 如何将事件分派到动作脚本3中的另一个类?,actionscript-3,actionscript,Actionscript 3,Actionscript,我搜索了一些文档,但找不到关于将事件分派到其他类的信息 我正试着这样做 “main”类有一个按钮 单击按钮时,“main”,“sub”类将跟踪“button is clicked” 我可以通过dispatch事件在“main”类中跟踪它 但“次级”班是个问题 我如何将这样的事件分派到“子”类中 主类 子类 您应该将var subClass:sub重新定位到main类定义的主要集合,在public static const BTN\u CLICKED:String=“BTN\u CLICKED”旁
您应该将
var subClass:sub
重新定位到main
类定义的主要集合,在public static const BTN\u CLICKED:String=“BTN\u CLICKED”旁边代码>。然后,您可以执行子类.dispatchEvent(…)
sub
和main
类的任何代码是否可能重复?两者都是需要的。这是同一个问题。
package com
{
import flash.events.*;
import flash.display.MovieClip;
import com.sub;
public class main extends MovieClip
{
public static const BTN_CLICKED:String = "btn_Clicked";
public function main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event = null):void
{
var flashVars:Object = {};
removeEventListener(Event.ADDED_TO_STAGE, init);
if(parent != null && parent.parent != null)
{
flashVars = parent. parent.loaderInfo.parameters;
}
else
{
flashVars = this.root.loaderInfo.parameters;
}
//entry point
var subClass:sub = new sub;
subClass.init();
btn.addEventListener(MouseEvent.CLICK, onClick);
addEventListener(BTN_CLICKED, onbtnClicked, false, 0, true);
}
public function onClick(e:MouseEvent)
{
dispatchEvent(new Event(BTN_CLICKED));
}
public function onbtnClicked(e:Event)
{
trace("clicked");
}
}
}
package com
{
import flash.events.*;
import flash.display.MovieClip;
import com.main;
public class sub extends MovieClip
{
public function sub():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//entry point
trace("sub class loaded");
}
}
}
public class main extends MovieClip {
private var subClass:sub;
public function main() {
...
subClass=new sub();
addChild(subClass); // not just "init()", it's wrong
...
}
public function onClick(e:MouseEvent)
{
dispatchEvent(new Event(BTN_CLICKED));
subClass.dispatchEvent(new Event(BTN_CLICKED));
}
}