0

私は flash.i の初心者です。以下の actionscript コードを actionscript 3.0 コードに変更する必要があります。私は現在ドラッグアンドドロップに取り組んでいます。ドラッグ中にムービークリップを複製したいので、インターネットでコードを見つけましたが、actionscript 2.0なので、as3に変換してください。ボックスは、ムービークリップのインスタンス名です。コード ブロックは次のとおりです。

var num:Number = 0

box.onPress = function(){

    num++


    duplicateMovieClip(box ,"box"+num, _root.getNextHighestDepth())

    _root["box"+num].startDrag();

}

box.onReleaseOutside = function(){

    trace(_root["box"+num])

    stopDrag();

}
4

2 に答える 2

1

別の .as ファイルを使用したくない場合は、次の手順に従います。

1-AS linkageボックスmovieClipに割り当てます(ライブラリパネル内):

ここに画像の説明を入力

2- タイムラインでフレーム 1 を選択し、次のコードを [アクション] パネルに貼り付けます。

var boxes:Array=[];
//var box:Box=new Box();
//addChild(box);
box.addEventListener(MouseEvent.MOUSE_DOWN,generateBox);
function generateBox(e:MouseEvent):void{
    var newBox:Box=new Box();
    newBox.x = e.target.x;
    newBox.y = e.target.y;
    newBox.startDrag();
    newBox.addEventListener(MouseEvent.MOUSE_UP,stopD);
    newBox.addEventListener(MouseEvent.MOUSE_DOWN,startD);
    boxes.push(newBox);
    addChild(newBox);
}
function startD(e:MouseEvent):void{
    e.target.startDrag();
}
function stopD(e:MouseEvent):void{
    e.target.stopDrag();
}
于 2013-09-03T14:11:52.390 に答える
1

残念ながら、AS3 には複製の MovieClip アナログがないため、ボックスの movieClip テンプレートのクラスを作成する必要があります。それが BoxTemplate と呼ばれるとしましょう。(ライブラリオブジェクトのクラスを作成する方法をグーグルで検索できます)。この名前のクラスを追加し、このコードを追加します (コンストラクターでのイベント サブスクリプションとプライベート イベント リスナー)。次のようなものが得られます。

package
{
    public class BoxTemplate
    {
        public function BoxTemplate()
        {
            addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
        }
    }

    private function onMouseUp(e:MouseEvent):void 
    {
        stopDrag();
    }
}

このシンボルの現在のインスタンスをステージに残します。これはフレーム内のコードです:

import flash.event.MouseEvent

box.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent):void
{
    var newBox:BoxTemplate = new BoxTemplate();
    newBox.x = e.target.x;
    newBox.y = e.target.y;
    addChild(newBox);
    newBox.startDrag();
}

ボックスを無限に複製できます。もちろん、それらすべてを配列に追加して参照を保持することもできます。

于 2013-09-02T11:35:54.607 に答える