【问题标题】:How can I add a button to the stage in flex using only as3?如何仅使用 as3 将按钮添加到 flex 中的舞台?
【发布时间】:2010-12-26 13:50:42
【问题描述】:

我在 Visual Studio 中使用 Flex SDK 并尝试向舞台动态添加按钮。这是我正在做的一个简单示例。

public class Test extends Sprite
{                       
    public function Test()
    {
        init();                 
    }                                                               

    private function init():void
    {

        var btnBrowse:Button = new Button();                                        
        btnBrowse.label = "Browse";
        btnBrowse.x = 0;
        btnBrowse.y = 0;
        btnBrowse.width=100;
        btnBrowse.height=100;           
        addChild(btnBrowse);
    }
}

似乎什么都没有显示,屏幕仍然是空的。我正在为按钮导入 mx.controls.*。由于我不只使用 as3 的 mxml,这会产生问题吗?

【问题讨论】:

  • 我假设您也在以某种方式创建 Test 实例并将其添加到显示列表中? mxml 与 as3 不应该成为问题 - 作为编译过程的一部分,所有 mxml 都会在后台转换为 actionscript,因此您在 mxml 中可以做的任何事情都不能在 actionscript 中做。

标签: visual-studio apache-flex actionscript-3


【解决方案1】:

您不能在仅限 AS3 的项目中使用 Flex 框架控件。如果您想避免使用 MXML,那么只需创建一个新的 Flex 项目,其根标签如下:

<FooApplication xmlns="*"/>

并创建一个新的 AS3 类,如:

package {

import mx.core.Application;

public class FooApplication extends Application {

// now override something like createChildren to add a button.

}
}

【讨论】:

  • 如果我理解正确,那么我对 as3 的选择是我必须创建一个 sprite 并绘制我自己的按钮,或者在 flash 中创建控件并导出一个 .swc。
  • 有很多方法可以只用 AS3 创建按钮。但大多数都是痛苦的——这就是大多数人只使用 Flex 的原因。有一些仅适用于 AS3 的轻量级框架,您也可以研究一下,例如 Reflex。
【解决方案2】:

尝试将基类从 Sprite 更改为 Canvas。

【讨论】:

    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 2014-10-25
    • 2012-02-23
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 2013-03-21
    • 2011-01-07
    相关资源
    最近更新 更多