守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 2988|回复: 0
打印 上一主题 下一主题

[技术资料] haxe-openfl基础篇,从as3 到haxe语法转变

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    52693
    钢镚
    1422

    开源英雄守望者

    跳转到指定楼层
    楼主
    发表于 2015-1-6 15:55:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    基础类型AS3
    AS3
    Boolean
    int
    Number
    Object
    void
    Array
    Vector.<String>
    Haxe
    Bool
    Int
    Float
    Dynamic
    Void
    Array<Dynamic>
    Array<String>



    包的写法
    AS3
    1. package com.example.myapplication {

    2. }
    复制代码
    Haxe
    1. package com.example.myapplication;
    复制代码



    定义类


    AS3
    1. public class MyClass {

    2.    public function MyClass () {


    3.    }

    4. }
    复制代码
    Haxe
    1. class MyClass {

    2.    public function new () {


    3.    }

    4. }
    复制代码



    for 循环


    AS3
    1. for (var i:uint = 0; i < 100; i++) {

    2. }

    3. for each (var value:String in items) {

    4. }

    5. for (var propertyName:String in object) {

    6. }
    复制代码
    Haxe
    1. for (i in 0...100) {

    2. }

    3. for (value in items) {

    4. }

    5. var fields = Reflect.fields (object);
    6. for (propertyName in fields) {

    7. }
    复制代码



    Switch 循环


    AS3
    1. switch (value) {

    2.    case 1:
    3.       trace ("Equal to 1");
    4.       break;

    5.    default:
    6.       trace ("Not equal to 1");
    7.       break;

    8. }
    复制代码
    Haxe
    1. switch (value) {

    2.    case 1:
    3.       trace ("Equal to 1");

    4.    default:
    5.       trace ("Not equal to 1");

    6. }
    复制代码



    类型推理


    AS3
    1. var hi = "Hello World";

    2. // type is Object
    3. // fails to compile in strict mode
    复制代码
    Haxe
    1. var hi = "Hello World";

    2. // type is String
    3. // even works for code completion
    复制代码



    类型转换


    AS3
    1. var car:Car = vehicle as Car;

    2. var toString:String = String (10);
    3. var toNumber:Number = Number ("10");
    4. var toInteger:int = int (10.1);
    复制代码
    Haxe
    1. var car:Car = cast vehicle;

    2. // or for a safe cast:

    3. var car = cast (vehicle, Car);

    4. var toString = Std.string (10);
    5. var toNumber = Std.parseFloat ("10");
    6. var toInteger = Std.int (10.1);
    复制代码



    类型描述


    AS3
    1. if (vehicle is Car) {

    2. }

    3. import flash.utils.getDefinitionByName;
    4. import flash.utils.getQualifiedClassName;

    5. name = getQualifiedClassName (vehicle);
    6. type = Class (getDefinitionByName (name);
    复制代码
    Haxe
    1. if (Std.is (vehicle, Car)) {

    2. }

    3. type = Type.getClass (vehicle);
    4. name = Type.getClassName (type);
    复制代码



    判定null


    AS3
    1. if (object == null) {

    2. }

    3. if (!object) {

    4. }
    复制代码
    Haxe
    1. if (object == null) {

    2. }
    复制代码



    Hash Tables


    AS3
    1. var table:Object = new Object ();
    2. table["key"] = 100;

    3. trace (table.hasOwnProperty ("key"));

    4. for (var key:Object in table) {

    5.    trace (key + " = " + table[key]);

    6. }

    7. delete table["key"];
    复制代码
    Haxe
    1. var table = new Map<String, Int> ();
    2. table.set ("key", 100);

    3. trace (table.exists ("key"));

    4. for (key in table.keys ()) {

    5. trace (key + " = " + table.get (key));

    6. }

    7. table.remove ("key");
    复制代码



    Rest Parameters


    AS3
    1. function test (...params):void {

    2. }

    3. test (1, 2, 3);
    复制代码
    Haxe
    1. function test (params:Array<Dynamic>) {

    2. }

    3. Reflect.makeVarArgs (test) (1, 2, 3);
    复制代码



    Reflection


    AS3
    1. var foo = object["foo"];

    2. bar.apply (this, [ "hi" ]);
    复制代码
    Haxe
    1. var foo = Reflect.field (object, "foo");

    2. Reflect.callMethod (this, bar, [ "hi" ]);
    复制代码



    Function Types


    AS3
    1. function hello (msg:String):void {

    2. }

    3. var type:Function = hello;
    复制代码
    Haxe
    1. function hello (msg:String):Void {

    2. }

    3. var type:String->Void = hello;

    4. // can also use Dynamic
    复制代码



    Getters and Setters


    AS3
    1. function get x ():Number {

    2.    return _x;

    3. }

    4. function set x (value:Number):void {

    5.    _x = value;

    6. }
    复制代码
    Haxe
    1. public var x (get, set):Float;

    2. function get_x():Float {

    3.    return _x;

    4. }

    5. function set_x(value:Float):Float {

    6.    return _x = value;

    7. }
    复制代码



    Read-Only Properties


    AS3
    1. function get x ():Float {

    2.    return _x;

    3. }
    复制代码
    Haxe
    1. public var x (default, null):Float;

    2. // null allows private access
    3. // never would restrict all access
    复制代码


    本文来自:http://www.badyoo.com/378.html




    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
    收藏收藏 分享分享 支持支持 反对反对 微信
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2024-4-19 19:12 , Processed in 0.045428 second(s), 32 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表