Rob*_*cks 5 flash assets embedding actionscript-3
在AS3中,您可以将图形嵌入到Class变量中:
[Embed(source="MenuAssets.swf", symbol="topSquare")]
public var TopMenuItem:Class;
Run Code Online (Sandbox Code Playgroud)
我在这个网站项目中有数百个资产,所以我想将资产嵌入数组中以便快速访问.
我可以这样做吗?它没有编译所以我想知道它是否可能.
public var MenuAssets:Array = [
[Embed(source="MenuAssets.swf", symbol="topSquare")],
[Embed(source="MenuAssets.swf", symbol="botSquare")],
[Embed(source="MenuAssets.swf", symbol="leftSquare")],
[Embed(source="MenuAssets.swf", symbol="rightSquare")],
]
Run Code Online (Sandbox Code Playgroud)
我怕你不能.你能做的是以下几点:
public class Assets {
[Embed(source="MenuAssets.swf", symbol="topSquare")]
public static const TOP_SQUARE:Class;
//... more assets ...
public static function getAssets():Array {
var ret:Array = [];
for each (var s:String in describeType(Assets).constant.@name) ret.push(Assets[s]);
return ret;
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以将资产嵌入到单个 FLA 中。在 FLA 的库中,为每个类指定一个类名称,例如“graphics.menu.RightSquare”,然后将其导出为 SWC。配置 Flash Builder 项目以将 SWC 作为外部库加载。然后你可以做类似的事情:
import graphics.menu.*;
new RightSquare();
Run Code Online (Sandbox Code Playgroud)