请注意,这必须在 ActionScript 2 中完成,因为我的观众播放器仅限于 Flash 播放器 8。
我正在尝试构建一个简单的类来扩展基本的 Movieclip 类。然后,我使用属性面板将此类应用到库中的影片剪辑,并在其中为其指定类名。这一切都很好,在我使用 attachMovie 将影片剪辑附加到舞台后,我可以在该对象上使用我的类和方法等。我似乎无法开始工作的是我在影片剪辑中的按钮。最初我在库影片剪辑中设置了一个按钮,但是我似乎无法在我的班级中定位它。我想做的只是在按钮中设置一个简单的 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);
}
}
所以,问题是,我如何附加(或存在于影片剪辑中)一个按钮,我可以为该按钮提供一个 onMouseDown 或 onMouseUp 类型的处理程序,只有当我点击实际按钮时才有效?我在这里做错了什么......我尝试了很多不同的想法,但似乎没有任何效果。请记住,它是 AS2 而不是 AS3。谢谢。