通过在AS3字符串访问属性

我有一个引擎我创建了一个前阵子的对象加载到基于XML数据的容器。 该XML的一个非常简单的例子是这样的:

<level> <object cname="enemies.Robot"> <pos x="200" y="400" layer="mobiles" /> </object> <object cname="Player"> <pos x="12" y="89" layer="mobiles" /> </object> </level>

我有了一种方法loadLevel(数据:XML)一类环境 这是我通过解析XML,那么功能通过XML运行查找所有对象节点,并使用getDefinitionByName,以确定哪个对象我想根据对象来创建@ CNAME

从这里,我有一个基于像这样的XML手动定义每个属性;

obj.x = xml.pos.@x; obj.y = xml.pos.@y;

等等

我在想,如果有设置基于字符串的属性一个内置的方法。 我的意思是,像这样的东西:

var mc:MovieClip = new MovieClip(); mc.someInbuiltFunctionThatSetsAProperty("alpha", 0.5);

这样我可以改变我的XML更加像这样:

<object cname="Player"> <props> <x>200</x> <y>221</y> <alpha>7834</alpha> <health>Something</health> <power>3</power> </props> </object>

并通过道具来设置所有的属性对飞的所有子迭代。

我知道如果我创建一个对象,并在设置属性如下所示:

var obj:Object = { var1: "hello", var2: "there", name: "marty" };

您可以通过名称/值使用迭代,然后for(String in Object)循环是这样的:

var i:String; for(i in obj) { trace(i + ": " + obj[i]); } /** * Output: * var1: hello * var2: there * name: marty */

是否有甚至类似的东西吗?

当然有办法,因为这里是一个使用字符串标识属性的示例:

var ar:Array = [new MovieClip(), new MovieClip()]; ar.sortOn("alpha", Array.ASCENDING);

所以,只是为了让我的问题更多了点:我希望能够得到,而且我可以识别使用字符串设置属性。

--------------解决方案-------------

为什么不使用["string property"]符号:

var mc:MovieClip=new MovieClip()
mc["alpha"] = 0.5 // setter
var alpha:Number=mc["alpha"] // getter

我不是它是什么你要找的正是很清楚,但我有你在说什么的一般意义,并有几个建议供您参考。 首先,看看在AS3语言参考Object类的文档。 在具体看propertyIsEnumerable()setPropertyIsEnumerable()方法。 我认为这就是你问什么。

如果没有,你可能要考虑动态类,它让你添加变量动态对象的行为。

分类:动作3 时间:2012-01-01 人气:0
本文关键词: 性能,ActionScript 3的
分享到:

相关文章

  • 使用类的静态函数实例化VS等级之间巨大的性能差异? 2013-03-06

    我想知道如果任何人有经验,如果在性能ActionScript 3中保持一类,只有公共静态功能,并利用这些功能往往有很大的区别(在30fps的帧的事件),并在旋转类成"正常"的类的我代替使一个实例,而不是通过实例调用的功能. 希望我在这里解释自己还算好了... ... 干杯 --------------解决方案------------- 根据超级AS3优化器杰克逊邓斯坦是有显著差异,具有静态方法比非静态方法慢约3至4倍. 静态还是非静态 为什么静态缓慢

  • 有多容易学习的Flex或ActionScript,哪一个更好? 2013-11-08

    我拼命地一直在努力使iOS和Android,但Objective-C和Java移动应用程序的方式对我来说很难学习. 我做的做在Visual Basic.NET中为Windows应用程序,但现在与Adobe Flash Builder的4.5的版本我很想再次让iOS应用. 我想知道的是哪一个更容易学习的Flex或ActionScript和哪里是最好的地方开始. 我有Flash Builder的4.5,但所有这些项目的选项并不多有意义的时刻. 因此,要总结这一切 : 的Flex或ActionScri

  • 什么是ActionScript 3中使用代理服务器的性能开销? 2012-01-30

    有没有人创造了业绩报告,强调在ActionScript 3扩展Proxy类的开销? --------------解决方案------------- 我做了一些谷歌搜索,并没有发现多少. 我会认为,因为它们是动态对象,你下去,整个编译器不能优化,因为它不能保证交易的任何类型的表现会不会很大. 杰克逊邓斯坦回答代表我早在九月这个问题; 信贷应该去他的! http://jacksondunstan.com/articles/1392

  • 性能是Flash / ActionScript 3的运营商? 2012-02-27

    任何人都有的是运营商的表现任何物品/测试? 我找不到任何谷歌,它只是吃我的"是"关键字作为太小. 我打算在邮件系统中广泛使用的就是运营商为我的元器件等性能需求是坚实的. 它会救我不必拿出IDS和id的查找每一个消息,如果我可以做的方案: function onMessage(message : Message, type : Class) : void { switch(type) { case MessageOne: // whatever break; case MessageTw

  • 在鼠标移动性能的ActionScript 3重绘线 2012-04-15

    我刷新我的AS3的基本知识. 现在我玩创建与鼠标的距离指定尺寸影片剪辑. 这是我的全码: http://pastebin.com/4jpqFn7N package { import flash.display.MovieClip; import flash.display.Shape; import flash.display.Graphics; import flash.events.MouseEvent; import wck.World; public class Game extends

  • ActionScript 2的VS ActionScript 3的性能 2012-06-08

    的整数,数组,函数,类等, 性能在这2种语言(编译器)的任何基准测试吗? 比较也将是有益的. --------------解决方案------------- 由于AS3运行在不同的虚拟机(AVM2)比AS2(AVM)也已显著的性能改进与引进AS3的. 一般情况下,由AVM2执行的操作码将会运行约10倍比老AVM类似的操作码的运行速度更快. 当然,这并不意味着一切都在AS3是比AS2快10倍的倍. 随着引进AS3的所有的显示的功能,或所有典型的闪存API的,还没有在速度仅逻辑和代码执行处理的运算部

  • 在Actionscript中更新XMP性能 2014-04-09

    我想从下面的示例更新XMP属性. <premierePrivateProjectMetaData:Column.Intrinsic.Name> AdiniFerihaKoydum.mp4 </ premierePriv ateProjectMetaData:Column.Intrinsic.Name> <premierePrivateProjectMetaData:Column.PropertyText.Label> BE.Prefs.LabelColors.1 <

  • ActionScript 3的优化 - 大型#“对象第改进性能 2014-07-02

    我发民某些库类植绒/转向行为的大量对象(2000+). 我发现,在<500的情况下,性能是合理的. 随着数量的增加,帧率停滞不前. 我见过与图书馆如燧石或Box2D的带颗粒/对象的荒谬#的表现可圈可点,所以应该可以优化/重构我的代码是一个好一点. 我知道基本的优化,如位操作和循环优化. 有没有我应该考虑更多的基本方法? 例如,目前每个实例是一个基于矢量的影片剪辑. 会和工作的BitmapData更有效率? --------------解决方案------------- 忘了载体. 他们缓存作为B

  • 其中(下面两个)的ActionScript编程的方法更好/ preferrable /性能更好 2014-11-26

    下面我有一段代码,在我的ActionScript文件(在一个函数中定义) var cmbSyncItems:Object = new Object(); cmbSyncItems = {tooltip:xmlContent.messages.cmbsync[0].tooltip, option1label:xmlContent.messages.cmbsync[0].option1[0].label, option1data:xmlContent.messages.cmbsync[0].opti

  • 闪光的ActionScript 3的能力欠缺在ActionScript 2 2012-01-10

    自从推出的Adobe的ActionScript 3的Flash Player 9,我们很多人却迟迟没有切换. 总之,我想知道是什么AS3作为一个框架可以做的,这是根本不可能或AS2显著困难. 我说的不是现成的组件,而内置类如Web远程通信,二进制数据处理,XML处理等等. --------------解决方案------------- 嗯,其实,AS3是一种语言,而不是一个框架...... Flash Player的API有框架,比如特质......不过没关系,我们不要争论的术语......有啥

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.527 (s). 10 q(s)