BeInteractive!

どうやら、Abode Labs.の方で早くもActionScript4.1の仕様が公開されてるようなので、軽く読んでみました。具体的な変更点は以下のような感じ。

関数のオーバーロードのサポート

Javaなんかと同じように、関数のオーバーロードができるようになるとのこと。単純に、同名のメソッドを引数の型を変えて書けばOKです。

public function a(p:String):void
{
    // ...
}
public function a(p:XML):void
{
    // ...
}

互換性のために、デフォルト値の指定は残すそうです。

ジェネリックのサポート

JavaやC#では御馴染みのジェネリックがサポートされるそうです。AVMもジェネリックを解釈するので、配列の操作等が早くなるとのこと。

ジェネリックな配列の使用は次のような感じ。型指定が増えてますね。

var list:Array:String = new Array:String();
list.push("hoge");
list.push(new Fuga()); // Stringではないのでコンパイルエラー

宣言は次のような感じ。

// ジェネリックなクラス
public class Holder:T
{
    private var value:T;

    public function setValue(v:T):void
    {
        value = v;
    }

    public function getValue():T
    {
        return value;
    }
}
// ジェネリックなメソッド
public function hoge:T(param:T):T
{
    fuga(param);
    return param;
}
// ふたつ以上ジェネリック
public class Hoge:(T, U)
{
    // ...
}
// 特定のクラスから派生
public class Hoge:(* extends Error)
{
}

コレクションのサポート

ジェネリックのサポートにあわせて、配列の他にJavaのようなコレクションも多数追加されるようです。今の所以下のようなクラスが挙げられています。

  • Array:E
  • Dictionary:(K, V)
  • HashMap:(K, V)
  • HashSet:E
  • Hashtable:(K, V)
  • LinkedHashMap:(K, V)
  • LinkedHashSet:E
  • LinkedList:E
  • PrioprityQueue:E
  • Stack:E
  • TreeMap:(K, V)
  • TreeSet:E
  • Vector:E
  • WeakHashMap:(K, V)

Pragmaのサポート

ECMAScript4の仕様書にあったヤツですね。CとかC++では御馴染み。次のような感じで、コンパイラの動作を変えることが出来るようです。

public class Hoge
{
    strict {
        // ここはStrictモード
    }
    strict(false) {
        // ここはStrictじゃない
    }
    disable(3597) {
        // 変数重複警告を無視
    }
}

ユーザー独自のスイッチも可能みたいです。

public class Hoge
{
    debug {
        // debug用コード
    }
}

とやって、コンパイラオプションで

-compiler.pragma debug true

てな感じで指定。

Javaと同等のリフレクション機能のサポート

どうやらAbodeの中の人もAS3のリフレクション機能については反省してるようで、4.1からはJavaと同程度の機能を備えたリフレクションをサポートするとのこと。

クラスのnewもFunction.applyと同じように出来るようになるみたいです。

RealProxyのサポート

AS3では色々と制限が多くてあまり使い物にならなかったProxyですが、4.1では.NETのRealProxyのように透過的に扱えるようになるとのこと。また、Proxyクラスを継承しなくて良くなるそうです。

Socketのlistenのサポート

AS3では、Socketは接続するのみでしたが、待ちうけ(Socket#listen)が出来るようになるとのこと。これで、サーバーを介さずにFlashだけでチャットなどのP2Pアプリを作る事が可能に。

evalのサポート

遂に来ました。Flex SDKがフリーで公開されてる今、evalをサポートしない理由がありませんもんね。JavaScriptなどと同じようにevalできるようになるそうです。

ついでに、.NETやJavaSE6のように、コンパイラを直接扱うためのライブラリも追加されるとのこと。

いやいや、素晴らしいですね。ホントにこんなことがあったら素晴らしいですね。あるわけないですね。4月1日ですもんね。

ジェネリックの部分は、ちょっとECMAScriptっぽい文法にこだわってみました。他にも描画とサウンド周りのFlashPlayerAPIについても書こうと思ったりもしましたが、止まらなくなりそうなので止めました。

この記事へのトラックバック

荒巻オンライン3 新開発記録
開発記録 荒巻オンライン ver3.00β4  リリース! ギコぽいでver3.00β4のテストをしました。 ネットワーク周りのバグがまだ直っていなかったことが判明 スクリーンショット取り損ねた いつ...
buy levitra
Wie Ihren Artikel zu Digg inzuzufügen?

TrackBack URL:

http://www.be-interactive.org/trackback.php?id=212

この記事へのコメント

TheCoolMuseum wrote:
flash.threadパッケージとmx.utils.concurrentパッケージは今回見送られたんでしたっけ。
通りすがり wrote:
だまされた・・・_| ̄|○
yossy wrote:
>TheCoolMuseumさん
そうですね。5(AVM4)あたりでのサポートを予定しているそうです。

>通りすがりさん
ヽ(´ー`)ノ
SCRIPT_NAME wrote:
同じくやられました。adobe labいって検索しちまったじゃ~か。。。。。
ところで、yossyさんは埼玉のどの辺に住んでるの?
さいたま市だったら、お目にかかれるチャンスがあるかも
yossy wrote:
>SCRIPT_NAMEさん
エントリでは、Adobe LabsではなくAbode Labsです。
残念ながらさいたま市ではないですねー。

コメント書き込み:

カテゴリ

タグ

アーカイブ