Actionscript 2からActionscript 3へのコードの翻訳

私は友人から得たこの小さなコードを持っていますが、それをAS3.0に変換することはできません。私は何が変わっても、コンパイルエラーを受け取り続けます。 これはコードの元の部分です。本当にありがとうと思います。

laser_nodes = 2;
for (var x=1; x<=laser_nodes; x++) {
    node = _root.attachMovie("laser", "laser_"+x, x, {_x:Math.random()*460+20, _y:Math.random()*310+20});
    node.onPress = function() {
        startDrag(this);
    };
    node.onRelease = function() {
        stopDrag();
    };
}

_root.createEmptyMovieClip("ray", _root.getNextHighestDepth());

ray.onEnterFrame = function() {
    this.clear();
    this.lineStyle(3, 0xff0000);
    this.moveTo(_root.laser_1._x, _root.laser_1._y);
    for (x=2; x<=laser_nodes; x++) {
        this.lineTo(_root["laser_"+x]._x, _root["laser_"+x]._y);
    }
    this.lineTo(_root.laser_1._x, _root.laser_1._y);
};
0
これまで作成したActionscript 3コードを投稿すると助けになります。
追加された 著者 jedd.ahyoung,
それはあなたが得ている特定のコンパイラエラーを投稿すると役に立ちます。
追加された 著者 sean,

1 答え

ここには多くの問題があります。構文上のものもあれば、新しい方法が必要なものもあります。

例えば:

  • _root はAS3には存在しません。 AS3では次のようになります。 MovieClip(root)

  • attachMovie はAS3では使用できませんので、 var node = new laser();のようなコンストラクタ呼び出しで置き換える必要があります。 ...
  • onPress および onRelease コールバックはAS3ではサポートされていません。 MouseEvent クラスを使用して addEventListener を使用する必要があります。 onEnterFrameEvent.ENTER_FRAME )と同じです。

  • AS3のグラフィック描画コマンドがスプライトの graphics オブジェクトにネストされるようになりました。

AS3を少し掘り下げる必要があるようです。これは変換するコードの単純なビットではありません。

2
追加された