Flex SDK 4.5增强补丁,让as3也支持inline函数,变态级提速!

终于完成了Flex SDK 4.5增强补丁,下面具体的介绍:

要求:
用户已经下载Flex SDK 4.5

文件列表:
asc.jar                        需要替换在flex_sdk/lib目录下的同名文件

Memory.swc               包含flash.Memory类和顶级方法flash.SetDomainMemory()

Base64MD5Test.rar    包含使用新功能特色的两个FlashDevelop演示项目,如下:
                                 1)为as3corelib包中的MD5类,进行优化并使用补丁的新功能,结果和原版进行对比,可以看出执行速度有10倍内的提升。
                                  2)为从网上下载的Base64类,进行优化并使用补丁的新功能,结果和原版进行对比,可以看出执行速度有10倍以上的提升。

功能特色:
1、双引号内的支持多行字符串,例如:

var a:String="aa
bb
cc
";



2、双引号内的字符串,支持 $变量名 转义为对应的变量值。例如:

showAlertMessage("使用改进的MD5,用时:$(st-startTime)毫秒,hash:$hash");

 

3、增加内联函数,内联函数使用要求:
1)不能迭代调用内联函数。例如:

private function aaa():void {
   bbb();
  }
  private inline function bbb():void {
   ccc();
  }
  private inline function ccc():void {
   bbb();
  }


  
2)不能在条件语句内使用,因为内联函数已不是一个普通函数。例如:

 

if(myinlinefun())
  {
  ...
  }
  while(myinlinefun())
  {
  ...
  }
  for(;myinlinefun();)
  {
  ...
  }
  a>b?myinlinefun():null;


  
3)不能作参数传递,因为内联函数已不是一个普通函数。例如:

stage.addEventListener("click",myinlinefun);


4)内联函数暂时只能是本类使用

4、添加和删除事件监听很方便,只需要+-即可,例如:

this:::"click"+=clickHandler
this:::"click"-=clickHandler


5、添加flash.Memory类,高速读写单字节、整型、浮点型数据
需要导入as3类包Memory.swc到项目中
使用Memory类之前请先调用SetDomainMemory(bytes:ByteArray)方法,参数bytes的长度必须大于等于1024
注意 部分方法参数的顺序与haxe的Memory相反。

package flash
{
/**
  * 
  * flash.Memory
  * 高速读写单字节、整型、浮点型数据
* ...
* @author  Directed by kiwiw3
*/
public class Memory
{
  
  public static function getByte (position:int) : int;
  
  public static function getDouble (position:int) : Number;
  
  public static function getI32 (position:int) : int;
  
  public static function getFloat (position:int) : Number;
  
  public static function getUI16 (position:int) : int;
  
  public static function setByte (val:int, position:int) : void;
  
  public static function setDouble (val:Number, position:int) : void;
  
  public static function setI16 (val:int, position:int) : void;
  
  public static function setI32 (val:int, position:int) : void;
  
  public static function setFloat (val:Number, position:int) : void;
  
  public static function signExtend1 (val:int) : int;
  
  public static function signExtend16 (val:int) : int;
  
  public static function signExtend8 (val:int) : int;
  
}

}

可以新浪爱问下载

Flex SDK 4.5增强补丁.rar

你可能感兴趣的:(Flex,Flash,sdk,as3,inline)