我正在用AS3做一个小项目,我需要做一些界面按钮。一开始我把它们作为单独的类,但后来意识到这可能有点过头了,最重要的是,我想出了一种方法来简化事件调用,使它们成为按钮并将事件分派分配给它们的父级。
不管怎样,
我尝试使用SimpleButton类重新创建它们,但是我不知道如何给这些按钮以任何形式的设计。web上的每个教程都使用SimpleButton通过实际绘制代码来创建最基本的Actionscript图形(我无法理解为什么有人想要这样做),以及我为upState分配一个库项目的尝试:
_deletebutton = new SimpleButton();
_deletebutton.upState = mc_deleteButtonUp; <--- exists in my library什么也做不了。
Adobe文档中说各个州都接受DisplayObjects,这意味着他们接受Sprite和MovieClips,所以你应该能够做到这一点。有人知道是怎么回事吗?
谢谢
发布于 2011-02-16 18:14:56
+1很好,文档中的示例通过代码生成状态,但您可以为按钮的不同状态分配任何displayObject。
var btn:SimpleButton = new SimpleButton();
btn.downState = new clipFromLibDown();
btn.overState = new clipFromLibOver();
btn.upState = new clipFromLibUp();
btn.hitTestState = new clipFromLibHit();
btn.useHandCursor = true;
addChild( btn );假设你有4个状态: clipFromLibDown,clipFromLibOver ...在你的库中,这是可行的
发布于 2011-02-16 13:58:10
为了在ActionScript中使用它,你必须使用instantiate an item from your library。为此,单击"Export for ActionScript“并在属性面板中为mc_deleteButtonUp分配一个类或基类。然后使用具有指定类的new operator来实例化它。您可以使用example from Adobe's documentation启动按钮,然后更改内容以适合您自己的程序。
发布于 2011-02-17 06:21:11
您可能没有设置SimpleButton实例的hitTestState属性。此属性是一个DisplayObject,它定义用户必须将鼠标移动到何处才能在SimpleButton上获取鼠标事件。您将永远看不到您设置的DisplayObject。我建议只使用一个你已经在另一个状态使用的DisplayObjects。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/SimpleButton.html#hitTestState
此外,您将需要使用新的运算符,如will和nicoptere已经说过的那样。
https://stackoverflow.com/questions/5012735
复制相似问题