注意,这必须在ActionScript 2中完成,因为我的观众播放器仅限于flash播放器8。
我正试图构建一个简单的类来扩展Movieclip基类。
然后,我使用财产面板将该类应用于库中的一个电影剪辑,并在其中为其指定类名。这一切都很好,在我使用attachMovie将movieclip附加到舞台后,我可以在该对象上使用我的类和方法等。我似乎无法开始工作的是我在电影院里的按钮。起初,我在库movieclip中设置了一个按钮,但我似乎无法在类中实现这一目标。我想做的只是在按钮中设置一个简单的getURL类型的东西,但它似乎不起作用。
我试着在类中分配onMouseDown处理程序,而不是一个按钮,这确实奏效了,但无论我在舞台上点击什么地方,而不仅仅是在图形区域上。这会触发我在舞台上的类的任何其他实例上的所有其他处理程序,所以它们都会同时启动。然而,使用onRollOver和onRollOut确实如我所期望的那样工作。
我还尝试在库中设置另一个按钮,并将this.attachMovie与我的类一起使用来附加它,但我似乎仍然无法获得它的句柄。
我创建了一个非常简单的测试脚本,试图说明我要做的事情:-
class Test extends MovieClip {
public function Test() {
// constructor code
this.attachMovie("theButton" , "myButton" , _root.getNextHighestDepth() )
this.myButton.onMouseDown = clickMe;
this._x = Math.random() * 800;
this._y = Math.random() * 400;
}
public function clickMe() {
trace("I have been clicked"+this._name);
}
}
所以,问题是,我如何附加(或在movieclip中显示)一个按钮,以便为该按钮提供onMouseDown或onMouseUp类型的处理程序,该处理程序只有在我单击实际按钮时才能工作?我在这里做错了什么。。。我尝试了很多不同的想法,但似乎都无效。记住这是AS2而不是AS3。谢谢