Arrays 如何制作对象';什么键更具活力?
我有一个AssetManager单例,我正在使用它作为各种数据提供程序Arrays 如何制作对象';什么键更具活力?,arrays,actionscript-3,flash,Arrays,Actionscript 3,Flash,我有一个AssetManager单例,我正在使用它作为各种数据提供程序 publicstaticvar L1_1:Object={pic:'../Assets/images/test.jpg',答案:'someAnswer',池:'somePool'} 因此,我尝试在另一个类中使用它来获取图像类的路径,该类将字符串作为参数,如下所示: var-image:image=新映像(AssetManager.L1_1.pic,540540) 这很好,但是,我需要增加上面的第二个'1'使其动态,这样我可以
publicstaticvar L1_1:Object={pic:'../Assets/images/test.jpg',答案:'someAnswer',池:'somePool'}
因此,我尝试在另一个类中使用它来获取图像类的路径,该类将字符串作为参数,如下所示:
var-image:image=新映像(AssetManager.L1_1.pic,540540)代码>
这很好,但是,我需要增加上面的第二个'1'使其动态,这样我可以说,例如
var-image:image=新映像(AssetManager.L1_5.pic,540540)代码>
我尝试过这样的方法,传递imageNum属性,但无法对其进行排序
var-tempObj:Object=['AssetManager.L'+imageNum+'\'+imageNum+'.pic'];
跟踪(tempObj)
有没有更简单的方法?谢谢 我现在只需使用如下数组即可修复:
publicstaticvar L1_1:Array=newarray();
L1_1[0]=['../Assets/images/test.jpg',“apple”,“appletakeout”]代码>
并称之为:
image=新映像(AssetManager.L1_1[0][imageNum],540540)代码>
它能工作,只是感觉有点凌乱。如果有更有效的方法来做这件事,我很想听听。谢谢。可以使用括号语法访问AS3中的静态和公共属性
下面是一个例子:
public static var L1_1:Object = {pic:'../Assets/images/test.jpg', answer:'someAnswer', pool: 'somePool'};
var imageNum:int = 1;
var propertyName:String = "L1"+ "_" + imageNum.toString();
var tempObj:Object = AssetManager[propertyName];
var pathToPic:String = tempObj.pic;
trace(pathToPic);
上面的例子应该追溯到。/Assets/images/test.jpg
但是,请注意,括号语法比点语法慢,并且在编译时不会进行类型检查
我希望这会有所帮助。确实很有帮助。非常感谢!你知道我在下面使用的数组是否会比你提到的使用括号的数组慢吗?我猜数组会更快,尽管我还没有测试过这个。我想说的是,除非速度对你来说是个问题,否则你可能应该瞄准最容易阅读的东西,因为这将是未来最容易维护的东西。