【问题标题】:Actionscript - Dynamically assigning imported objectsActionscript - 动态分配导入的对象
【发布时间】:2015-08-01 21:29:58
【问题描述】:

采用这个简化的代码

import assets.panels.About1;
import assets.panels.About2;
import assets.panels.About3;

private var _panel:*;

_panel = new About1();

可以将About1 定义为变量,所以我可以设置类似

var aboutPanel = 'About3';

所以执行的代码是

_panel = new About3();

【问题讨论】:

  • 你能解释一下你的问题吗?
  • 我有大量面板,根据用户选择我需要打开正确的面板。目前我对每个条件都有一个巨大的 if 语句,我将所需的面板分配给面板对象。如果不是这个,我可以说 _panel = new MYPANELVARIABLE();这会用更少的代码更整洁。
  • 我放弃了“fash.utils.getDefinitionByName”解决方案,因为您必须启动每次导入以阻止编译器删除它们,因此在我的场景中,此解决方案实际上将一个代码块交换为另一个。

标签: object actionscript assign


【解决方案1】:

为此,您可以像这样使用flash.utils.getDefinitionByName

var class_name:String = 'MyClass';

var my_class:Class = flash.utils.getDefinitionByName(class_name) as Class;

trace(my_class);    // gives : [class MyClass]  

var obj = new my_class();
addChild(obj);  

trace(obj);         // gives : [object MyClass]

希望能有所帮助。

【讨论】:

  • 谢谢,这看起来像解决方案。
猜你喜欢
  • 1970-01-01
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-18
  • 2010-09-20
相关资源
最近更新 更多