apache-flex - 如何获取变量的类型?并实例化它?

标签 apache-flex air

我正在尝试创建一个打开窗口但确保同一窗口尚未打开的函数。我希望能够向它传递一个非实例化的 var 或一个实例化的 var,并且它可以以任何方式工作。如果窗口已经打开,它将关闭它然后重新打开它。

所以我需要一种方法来传递 Window 类型的变量或子类(如果是),并实例化正确的子类。

我正在寻找这样的东西:

public function openWindowOnce(window:Window):void
{
    if(isOpen(window))
    {
        closeIfOpen(window);
    }
    window = new Window(); /**<-- THIS LINE window can also be a sublcass of window, 
                             *    I want to instatiate the correct sublass,
                             *    I also want to make sure that it is a Window or a
                             *    Sublcass of window before I instatiate it.
                             */ 
    window.open();
}

谢谢!

最佳答案

您可以尝试使用flash.utils.getDefinitionByName()flash.utils.getQualifiedClassName()ClassFactory的组合来实现结果。

var className:string = getQualifiedClassName(object); //returns the class name    
var classObj:Class = getDefinitionByName(className) as Class; //get a Class object
var factory:IFactory = new ClassFactory(classObj);// get a Class factory    
var newObj:Object = factory.newInstance();

关于apache-flex - 如何获取变量的类型?并实例化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137730/

相关文章:

javascript - JSON stringify 在从 Dreamweaver 预览时有效,但在创建应用程序时不能从 .AIR 文件预览

actionscript-3 - Adobe Air - 更新不兼容错误

android - 移动设备上的 StageVideo

css - Apache Flex 4.14.1 BorderContainer Radius 仅适用于 Debugger

javascript - 使用 Adob​​e AIR 进行 Shoutcast 流缓冲而不使用 Flash/Flex 播放器?

c++ - 有什么方法可以比套接字更快地将数据从 C++ 传输到 Flex/Air?

java - 在 Android 启动时启动 Flex 移动应用程序

apache-flex - 在 FlexBuilder 3 中组织 FlexUnit 4 测试的最佳方式是什么?

apache-flex - '错误#2006 : Supplied index out of bounds' when invoking RPC service

php - 使用 Flex 移动设备登录系统