AS3:从库sprite中创建一个SimpleButton:可能吗?

时间:2011-02-16 05:14:20

标签: actionscript-3 sprite simplebutton

我正在研究AS3中的一个小项目,我需要制作一些界面按钮。我一开始就将它们作为单独的类,但后来意识到它可能是过度的,并且最重要的是,通过制作按钮并将事件调度分配给其父级来找出简化事件调用的方法。

反正

我尝试使用SimpleButton类重新制作它们,但我无法弄清楚如何给按钮任何类型的设计。 Web上的每个教程都使用SimpleButton通过实际用代码绘制它们来制作最简单的ActionScript图形(为什么有人想要做到这一点超出我),以及我尝试将一个库项目分配给upState: / p>

_deletebutton = new SimpleButton();
_deletebutton.upState = mc_deleteButtonUp; <--- exists in my library

什么都不做。

Adob​​e文档说各种状态采用DisplayObjects,这意味着它们采用Sprite和MovieClip,所以你应该能够做到这一点。有谁知道怎么做?

谢谢你

3 个答案:

答案 0 :(得分:3)

+1 weltraumpirat doc中的示例按代码生成状态,但您可以将任何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 ...,这可以正常工作

答案 1 :(得分:1)

您必须instantiate an item from your library才能将其与ActionScript一起使用。为此,请单击“为ActionScript导出”,并在属性面板中为mc_deleteButtonUp指定一个类或基类。然后使用带有指定类的new operator来实例化它。您可以使用example from Adobe's documentation启动按钮,然后更改内容以适合您自己的程序。

答案 2 :(得分:1)

您可能没有设置SimpleButton实例的hitTestState属性。此属性是一个DisplayObject,用于定义用户在SimpleButton上移动鼠标以获取鼠标事件的位置。您永远不会看到您将其设置为的DisplayObject。我建议你只使用一个已经用于另一个状态的DisplayObject。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/SimpleButton.html#hitTestState

此外,您需要使用新的运营商作为weltraumpi和nicoptere已经说过。