0

我正在做一个AS3的小项目,我需要做一些界面按钮。起初我将它们作为单独的类,但后来意识到这可能有点矫枉过正,最重要的是,我想出了一种方法来简化事件调用,方法是制作按钮并将事件调度分配给它们的父级。

反正,

我尝试使用 SimpleButton 类重新制作它们,但我不知道如何为按钮提供任何类型的设计。网络上的每个教程都使用 SimpleButton 来制作最简单的 Actionscript 图形,方法是用代码实际绘制它们(为什么有人想要这样做超出了我的理解),以及我尝试将库项目分配给 upState:

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

不做任何事情。

Adobe 文档说各种状态采用 DisplayObjects,这意味着它们采用 Sprites 和 MovieClips,因此您应该能够做到这一点。有谁知道怎么做?

谢谢你

4

3 回答 3

3

+1 weltraumpirat 文档中的示例通过代码生成状态,但您可以将任何 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-16T10:14:55.870 回答
1

您必须从库中实例化一个项目才能将其与 ActionScript 一起使用。为此,请单击“Export for ActionScript”并在属性面板中为 mc_deleteButtonUp 分配一个类或基类。然后使用带有指定类的new运算符来实例化它。您可以使用Adob​​e 文档中的示例来启动按钮,然后进行更改以适合您自己的程序。

于 2011-02-16T05:58:09.877 回答
1

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

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

此外,您将需要使用新的运算符,因为 weltraumpirat 和 nicoptere 已经说过。

于 2011-02-16T22:21:10.817 回答