Haxe简介&Haxe与ActionScript3.0区别

我们公司现在用的是as3转haxe然后最终转成C++的方案;

Flash没落:
自智能手机普及以来,Flash Player插件的浏览器支持一直在下降,随着HTML5 技术的出现,让网站可以在没有插件的情况下运行包括视频、小游戏在内的视觉元素。许多网站也纷纷转向 HTML 5。
1.
Haex:

              相比其他语言(Java的平台是 JVM,C#的平台是.Net,ActionScript的平台是Flash Player等等),Haxe才是真正的多平台语言。不管是开发原生iOS、Android应用,还是网页;不论是应用于服务器还是个人桌面,Haxe都 可以胜任。
              同时Haex程序可以编译成为.swf(flash)、js(javascript)、.php(PHP)、C++的code,NME库使用这个特性再IOS和Android上直接运行,同时也能生成对应的java.C# code。
             所以我们平台目前先把ActionScript3.0转换为Haex再装换为C++,从而完成对AS到C++的迁移。
  2.AS3.0 与HAEX:

AS3.0:
String
Number
int
Boolean
String
Object
void

HAXE用途Float和Int作为核心类型,这是类似Number与int在ActionScript。Haxe用于Dynamic描述通配符类型,类似于ActionScript *类型,并且接近ActionScript Object类型。
HAXE:
String
Float
Int
Bool
Dynamic
Void

3.AS与Haex命名空间不一样:;

* 

AS支持public、protected、private与自定义internal
*
Haex只支持public和private(private行为类似于AS的protection)
*
Haxe将这些控制简化为两级访问。public行为与ActionScript public访问级别private类似,其行为与Actionscript protected访问级别类似。
*
可以使用@:access,@:allow或@:privateAccess元数据HAXE访问或允许类之间的私人通道,支持其他使用情况。

4.常量:
常量是具有固定值的属性,并且永远不会更改。ActionScript 3.0 const在声明常量属性时定义关键字,而Haxe则使用inline关键字。

Haxe与ActionScript3.0区别
1、基本类型:
ActionScript3:
Boolean
int
Number
Object
void
Array
Vector.
HAXE:
Bool
Int
Float
Dynamic
Void
Array
Array

2、包声明:
AS3:
package com.example.myappliction{}
HAXE:
package com.example.myappliction;

3、类定义:
AS3:
public class MyClass{
public function MyClass(){
}
}
HAXE:
class MyClass{
public function new(){}
}
4、循环:
AS3.0:
for(var i :uint =0;i<100;i++){}
for each (var value:String in items){}
for (var propertyName:String in Object){}
HAXE:
for (i in 0…100){}
for (value in items){}
var fields = Reflect.fields(object);
for(properrtyName in fields){}

5、switch语句:
AS3.0:
switch(value){
case 1:
trace(“Equal to 1”);
break;
default:;
trace(“Not equal to 1”);
break;
}

HAXE:
switch(value):
case 1:
trace(“Equal to 1”);
default:
trace(“Not equal to 1”);
}
6.类型转换:
ActionScript3:
var car:Car = vehicle as Car;
var toString:String = string(10);
var toNumber :Number = Number(“10”);
var toInteger:int = int(10.1);

Haxe:
var car:Car = cast vehicle;

var car = cast(vehicle,Car);
var toString = Std.string(10);
var toNumber = Std.parseFloat(“10”);
var toInteger = Std.int(10.1);

7.反射:
AS3:
var foo object[“foo”];
bar.apply(this,[“hi”];
Haxe:
var foo = Reflect.field(object,“foo”);
Reflect.callMethod(this, bar, [“hi”]);

8.常量:
ActionScript3:
private const gravity:Number = 9.8;
Haxe:
private inline static var gravity =9.8;

你可能感兴趣的:(Cpp,脚本,TS&JS)