Fluid idea for Life

随笔,杂记

AS3 资源散记

第一条:AS3 程序优化文档:来自joe的http://je2050.de/files/misc/as3opt.pdf

这份文档中提到的部分知识点在其它地方也有提及,我作了简单的翻译,如下:

1、 在循环语句中,使用int 比Number要好。比如: for (var i:Number = 0;i<100;i++){ // } 优化为: for (var i:int = 0;i<100;i++){ // }

2、 复杂对象要抽象为数据类型,尽量避免使用Object动态数据类型。

这个要慢: for (;i<n;i++) { var v: Object = new Object; v.x = 1; v.y = 2; v.z = 3; } 优化后的代码: class Vector3D { public var x: Number; public var y: Number; public var z: Number; } for (;i<n;i++) { var v: Vector3D = new Vector3D; v.x = 1; v.y = 2; v.z = 3; }

3、 数组中含有复杂数据时,访问前先申明元素的类型,可以省去播放器检测元素数据类型的步骤。 这个要慢: for (;i<n;i++) array[i].x = 2; 优化后的代码: for (;i<n;i++) Vector3D(array[i]).x = 2;

4、 继续第一条 通过数据下标访问数组元素时,确保索引是int类型。向表达式 i*2 将被当作Number类型,最好先转化为int类型。

5、 能够使用 null 的地方,不要使用 try..catch

6、 在构造函数中的代码是不会被JIT编译器优化的。为了避免这一点,我们可以把代码放在构造函数之外的函数中,然后去调用,这些函数都将被优化。

JIT(Just - in - time)即时编译器,是AS3的特性之一。字节码在运行时被转换为机器码,提高运行速度。

 

第二条: Thibault Imber花费一年多时间写的AS3书问世,并免费提供电子版下载。可以是法文版的,不过看看代码还是很有用的。

目录:http://pratiqueactionscript3.bytearray.org/?page_id=4

下载:http://pratiqueactionscript3.bytearray.org/wp-content/ouvrage/Pratique%20d'ActionScript%203%20-%20version%200.1.zip

Tags: as3

上一篇: 北京行记
下一篇: Flex第一步技术论坛暂时无法访问

访客评论

  1. #1 Y.Boy 2008-05-07, 8:08 AM
    不是AS代码的问题了, amfphp里有一个browser的, 用来测试php.  获得的数据都会在 "RecordSet view" 这里用DataGrid显示出来的. 在这里也会出现我所说的错误情况.

    测试了多次, 证明我写的代码没问题的. 可能是别的原因.
    先谢谢walkTree了, 此问题先搁置 :lol:

    (此问题先保留在: http://blog.5d.cn/user39/riahome/200804/479890.html)
  2. #2 walktree 2008-05-06, 8:52 AM
    最好还是贴出代码吧,光看图片我想不出问题的所在来。
  3. #3 Y.Boy 2008-05-02, 4:06 AM
    我是用amfphp获得数据的.
    amfphp里有一个browser, 使用这个browser来测试自己写的php, 同样会出现那种情况.
    如图那里:
    http://bbs.blueidea.com/attachment.php?aid=86739&amp;noupdate=yes
  4. #4 Y.Boy 2008-05-01, 6:20 AM
    具体情况请看:

    http://blog.5d.cn/user39/riahome/200804/479890.html

    先感谢Walktree:)
  5. #5 walktree 2008-05-01, 12:19 AM
    一时还没弄明白,Y.Boy不妨贴出部分代码来看看。
  6. #6 Y.Boy 2008-04-30, 7:44 AM
    初步知道, 以上问题是因为:

    得到数据后, 都把每一条记录转为一个ValueObject对象, 然后加到ArrayCollection里. 那些ValueObject对象名称都是相同的, 所以导致DataGrid里不能选择某些项.

    继续找解决方法...  :)
  7. #7 Y.Boy 2008-04-30, 4:59 AM
    今天发现了一个问题, 没解决, 提出来望大家能帮忙一下:
    从AMFPHP获得数据, 提供给DataGrid, 但如果存在两条记录的数据是相同的, 那么在选择这两条记录时, 只能选择其一, 不能分别选择.

    假如以下是一个DataGrid, 有两行. 字段ID的值不同, name字段的值相同. 无论我怎样单击或双击, 都选不中第一行, 只能选中第二行.  如果去掉name字段, 因为ID字段的值不同, 所以我能分别单击选择那两行.


    +--------+----------+
    +   ID    +  name +
    +--------+----------+
    +    1    +      a     +
    +    2    +      a     +
    +--------+----------+



    如何解决此问题呢?
    感激万分!
  8. #8 Y.Boy 2008-04-29, 11:04 AM
    英文的那本仔细读还是可以理解, 法文的就.... :roll:

发表评论

评论内容:

点击获得Trackback地址