as3 - 从 Assets 类中获取库符号
Posted
技术标签:
【中文标题】as3 - 从 Assets 类中获取库符号【英文标题】:as3 - getting library symbols from an Assets class 【发布时间】:2010-11-30 21:21:56 【问题描述】:我创建了一个 assets.swf,我想在其中保留我的所有符号。然后,我创建了一个进行嵌入的 Assets 类。它看起来像这样:
public class Assets extends MovieClip
[Embed(source="assets.swf", symbol="MyBox")]
public static var MyBox:Class;
public function Assets()
现在,在其他类中,我想创建一个新框:
import com.company.Assets;
...
public function Game()
var myBox:MovieClip = new Assets.MyBox();
addChild(myBox);
我知道这不正确,我得到“TypeError:错误 #1007:在非构造函数上尝试实例化。”如何访问 Assets 类中的资产?
【问题讨论】:
您确定 symbol="MyBox" 是正确的符号名称吗?因为您似乎按照bit-101.com/blog/?p=853 所做的正确 我也有同样的问题。 您使用的是 Flash 还是 FlashDeveloper?我开始怀疑这是 FlashDeveloper 功能(不是 AS3 功能) 【参考方案1】:编辑:我想你会找到答案here。
以下内容适用于使用加载有 Loader
类的 SWF 中的类。
private function onLoad(e:Event):void
var domain:ApplicationDomain = LoaderInfo(e.target).applicationDomain;
var Type:Class = domain.getDefinition("pack.MyComponent") as Class;
var myBox:MovieClip = new Type();
addChild(myBox);
【讨论】:
【参考方案2】:实现它的另一个好方法是简单地编译 SWC 并像另一个类一样导入它。
在您的 SWC 中为 AS 导出的每个符号都将在同一范围内可供您使用。
这样可以节省大量代码编写,并将资源直接嵌入到 SWF 中,避免使用多个加载器。
【讨论】:
【参考方案3】:如果您仍然想要 .swf 路由,您可以:
public class Assets extends MovieClip
[Embed(source="assets.swf", symbol="MyBox")]
private static var _MyBox:Class;
public static function get NewBox():MovieClip
return new _MyBox();
...
import com.company.Assets;
...
public function Game()
var myBox:MovieClip = Assets.NewBox;
addChild(myBox);
另一种方法是导出您希望动作脚本使用的符号并改用 .swc。您可以在 flash 文件中设置具有完整命名空间的类,因此对于 MyBox,您可以将其设为 com.company.Assets.MyBox,其用法与您的预期相似:
import com.company.Assets.*;
...
public function Game()
var myBox:MovieClip = new MyBox();
addChild(myBox);
【讨论】:
【参考方案4】:您可以在 Asset 类中创建新对象..(这也使您可以创建可重用资产池)
类似:
public class Assets extends MovieClip
[Embed(source="assets.swf", symbol="MyBox")]
private static var MyBox:Class;
public static function getNewBox():DisplayObject
return new MyBox();
public function Assets()
【讨论】:
以上是关于as3 - 从 Assets 类中获取库符号的主要内容,如果未能解决你的问题,请参考以下文章
如何从 automake/libtool 库中获取符号列表?
ActionScript 3 AS3 RegExp:验证出生日期(英/美符号)
当 iOS 应用程序链接到静态库时,如何获取丢弃的符号列表?