AS3:将变量转换为动态类型

2024-04-12

是否可以动态地将变量转换为类型,其中类型将是类型的变量Class?

考虑以下因素(无效):

var myClass:Class = MyClass;
var myInstance:myClass = new myClass();

对于上下文:我正在 Flex (4) 中创建一个模态管理器,它将控制创建模态的各个方面(通过PopUpManager)并且我想尽可能减少它。组件将通过相同的函数传递,而不是允许转换任何类型的变量,例如:

var myInstance:* = new myClass();

我宁愿让它尽可能明确。当然,这样做并没有真正的优势,因为需要进行检查以确保参数的类型Class在分配之前——它更像是一个 POC。

欢迎任何想法。

编辑:我想我可以执行以下操作:

var myClass:Class = MyClass;
var myInstance:* = new myClass() as myClass;

但我不确定这是否是最好的方法。


我不知道这是否与您遇到的问题相同。我需要一个类,该类有一个实现接口的子类。实现类可以是任何类型,但我需要保存和加载它的所有信息。

假设我有以下内容:

public interface WindowChild {...}

and

public class Window {
    public var child:WindowChild;
}

当需要保存窗口时,我将所有内容保存在 XML blob 中。我发现Flash播放器中有一个功能:
flash.utils.getQualifiedClassName(value:*):String
文档说:“返回对象的完全限定类名。”这意味着String它返回会是这样的your.packages::ClassName。当。。。的时候Window班级打电话getQualifiedClassName(child)它得到类似的东西my.packages.structure::MyImplementation.
请注意,这不是接口的路径WindowChild而是我创建的实现该接口的类。

当需要再次加载所有这些信息时,我使用了另一个 Flash 函数getQualifiedClassName(child)。该函数“返回对名称参数指定的类的类对象的引用”。我认为这只是一种奇特的说法,它返回一个Object但它会是类型Class.

那时我需要做的就是:

var childClass:Class = getDefinitionByName(childClassName) as Class; //Child class name is what was returned from getQualifiedClassName(child)
child = new childClass(); // This creates a new Object of what ever type childClass is

这种方法会将类型检查留给运行时,但您始终可以添加另一个中间步骤以确保从new childClass()就是你想要的。

希望这有用。

Cheers

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AS3:将变量转换为动态类型 的相关文章

  • Flex/Actionscript:动态访问静态变量

    假设我有一个 Foo 类 public class Foo public static var bar String test 如何在运行时使用字符串 Foo 或 和 Foo 的实例和字符串 bar 引用 bar I e var x Obj
  • 如何在 Flex 中使用两个表达式(case)编写内联条件语句?

    我如何用两个表达式 case 在Flex中编写内联条件语句 like text expression expression2 true false Flex编译器只检查第一个表达式并代表给出结果 但我想检查语句并显示结果 如果不满足任何条件
  • 将 Flash (AS3) 数据保存为 XML

    我在互联网上 包括 Stack Overflow 花了好几个小时 试图找到一个可靠的 可行的示例 将 Flash 中的信息保存到 XML 文件中 我想获取两种不同类型对象的位置并将每个对象的列表导出到 XML 我们将调用这些对象ball a
  • 在不使用服务器套接字的情况下侦听 AS3 (AIR) 客户端中的传入连接

    我设法创建一个 C 服务器 使用它向 AS3 AIR 客户端发送文件sockets 在 AS3 方面我使用的是flash net Socket库通过以下方式接收数据TCP 它是这样工作的 gt 我打开我的服务器 它侦听客户端 另外我可以创建
  • 计算数组中出现的次数

    我想计算 ActionScript 3 0 中数组中出现的次数 说我有 var item Array apples oranges grapes oranges apples grapes 如何让它显示匹配字符串的数量 例如 结果 苹果 2
  • Actionscript 3 的面向方面编程库/框架?

    我正在寻找 Actionscript 3 的全功能 AOP 库 到目前为止我注意到以下项目 但它们似乎都有问题 http farmcode org page Sodality aspx http farmcode org page Soda
  • URLLoader 数据到 BitmapData

    我正在尝试加载 SWF 文件旁边的图像文件 像这样的东西 var loader URLLoader new URLLoader loader dataFormat URLLoaderDataFormat BINARY loader addE
  • AS3 for ios:如何序列化数组然后保存它

    我有一个多维数组 我想序列化它 然后使用共享对象保存它 我尝试了很多事情 但每次都会出现问题 JSON 不能有类型 ByteArray 结果不是 String 那么 SharedObject 不想保存它 共享对象可能不是解决方案的一部分 所
  • Flex:获取自己的 SWF 文件名?

    有没有办法以编程方式确定我的类正在运行的 swf 文件名 Thanks Stage http livedocs adobe com flex 3 langref flash display Stage html has a 加载器信息 ht
  • 在 Flex 中将字符串模式解析为日期

    flex 中是否有某种方法可以解析迄今为止的字符串 我希望它支持类似于 dateformatter 的自定义格式 使用 dateformatter 类 我们可以解析 formatString property 指定的各种字符串格式的日期对象
  • 在 AS3 中快速设置关键帧上的实例名称

    现在在 Flash CS3 及更高版本 使用 Actionscript 3 中 如果您在图层中的多个关键帧中使用相同的实例 并且您决定稍后分配或更改实例名称 则必须转到每个关键帧并设置实例名称 这是一个很大的麻烦 有没有更快或更好的方法来做
  • 在 Flash AS3 中捕获未处理的 IOErrorEvent

    错误 2044 未处理的 IOErrorEvent text 错误 2036 从不加载 完全的 这就是我每次尝试使用加载器加载不存在的图像时看到的情况 我正在获取 URL 列表 但无法验证它们是否指向任何有用的内容 每当遇到 404 时 它
  • 定义 fl.controls: 找不到标签

    我正在使用 ActionScript 3 在 FlashDevelop 中进行开发 当我尝试执行以下操作时出现以下错误import fl controls Label Definition fl controls Label could n
  • 如何在Android Air应用程序中通过as3打开Instagram页面?

    我想通过单击应用程序中的按钮来打开 Instagram 页面 例如 Instagram 应用程序中的 instagram mypage 代码是什么 mybuttun addEventListener MouseEvent CLICK ope
  • 调用控制器 Post 方法时遇到问题

    这是我的方法 AcceptVerbs HttpVerbs Post public void SaveImage FormCollection formValues byte contents Convert FromBase64String
  • 在 Mac OS X (Mavericks) 上的 Adob​​e AIR 中的两台显示器上显示两个全屏窗口

    我使用的是 Mac OS X Mavericks 使用 Adob e AIR 我想在两个显示器 内置笔记本电脑视网膜显示器和外部 HDMI 显示器 上分别显示单独的全屏窗口 我可以在主显示器上获得全屏窗口 在辅助显示器上获得几乎全屏的窗口
  • 用圆形减去(遮盖掉?)路径

    我正在使用 Spark Path 在 Flex 中绘制一条路径 我想从这条路径中减去一个圆形 如下图所示 道路又黑又宽 有任何想法吗 我尝试使用 Shape 对象创建蒙版 但无法完全创建其中有圆孔的蒙版 找到了 不涉及口罩 我拿了Path并
  • 将应用程序状态保存在磁盘或其他位置,以便用户稍后访问它

    In 弹性构建器 4 5我正在做一个像这样的项目cacoo http www cacoo com 我想保存diagrams display object ui components text 在将应用程序关闭到应用程序之后我无法访问的某个地
  • 求反射角的弧度

    我正在编写一个简单的 Flash 游戏 只是为了学习 Flash 并提高我的数学能力 但我对弧度感到非常困惑 因为这对我来说是新的 到目前为止 我所做的是使用鼠标 单击并释放 使用弧度向该方向射出一个球 现在我想要发生的是 当球撞到墙壁时
  • Flex 字典字面量

    在 Flex 中工作 我需要用相当复杂的结构填充字典 基于本文档页面 http livedocs adobe com flex 3 html help html content 10 Lists of data 4 html我尝试通过以下语

随机推荐