首先,我是n00b在AS3,所以我很抱歉,如果这是一个糟糕的问题。我找过这个问题的直接参考/解决办法。
我的问题:我正在尝试将所有相关的图形嵌入到一个类(“Assets.as”)中,这个类将有一个静态方法来按名称检索这些嵌入的图形。
我尝试过的:
Assets.as
package
{
[...imports...]
public class Assets
{
[Embed(source="assets/images/l_peak.png")]
public static const l_peak:Class;
public static function getByName(pName:String):Bitmap
{
var retClass:Class = flash.utils.getDefinitionByName(pName) as Class;
return new Bitmap(new retClass());
}
}
}但是,这将返回一个空对象。无论我如何处理,getDefinitionByName()要么返回null,要么说没有一个名为该对象的对象(即"l_peak")。
我知道您可以使用加载程序()对图形进行动态处理,但我希望嵌入这些图形,只需动态使用它们的名称即可。
任何帮助都将不胜感激!
发布于 2012-03-06 22:27:25
你为什么不试试:
return Assets[pName];发布于 2012-03-06 21:55:38
我认为财产必须是公共财产,而不是康斯特,但我可能错了。作为一个测试,尝试只使用公共变量。
[Embed(source="assets/images/l_peak.png")]
public var l_peak:Class;另外,本文可能会帮助您:http://www.bit-101.com/blog/?p=853
如果你仍然有一个问题,这可能是一个问题的途径,你的资产。来自活文档
指定要嵌入的资产的名称和路径;绝对路径或相对于包含嵌入语句的文件的路径。嵌入的资产必须是本地存储的资产。因此,您不能为要嵌入的资产指定URL。有关设置路径的详细信息,请参阅有关设置嵌入资产的路径。
https://stackoverflow.com/questions/9592477
复制相似问题