-1

私は actionscript 2.0 スクリプトを持っていますが、それを actionscript 3.0 に入れたいと思っています。

私のスクリプト:

var speed:Number = 15;
avancar.onPress = function () {
_root.onEnterFrame = function() {
    if(scroll_img._x > -262) {
        scroll_img._x -= speed;
    }
}   
}   

avancar.onRelease = function() {
delete_root.onEnterFrame;
}

voltar.onPress = function () {
_root.onEnterFrame = function() {
    if(scroll_img._x < 56) {
        scroll_img._x += speed;
    }
}
}
voltar.onRelease = function() {
delete_root.onEnterFrame;
}

actionscript 3.0 を見つけるために約 1 時間試しましたが、見つかりませんでした。誰かが私を助けてくれたら本当に嬉しいです。

4

1 に答える 1

1

うわー、このコードはAS2でも醜いようです

最初に、次のようにインライン関数を削除しましょう。

    avClicked = false;
    vtClicked = false; // these are just triggers

    function moveScrollImg(e:Event):void {
        if ((scroll_img._x > -262) && avClicked) scroll_img.x -= speed;
        if ((scroll_img._x < 56) && vtClicked) scroll_img.x += speed;
    }

    function triggerFlag(e:MouseEvent):void {
        if (e.buttonDown) {
            if (e.target == avancar) avClicked = true;
            if (e.target == voltar) vtClicked = true;
        else {
            avClicked = false;
            vtClicked = false;
        }
    }

    this.addEventListener(Event.ENTER_FRAME, moveScrollImg);
    avancar.addEventListener(MouseEvent.MOUSE_DOWN, triggerFlag);
    voltar.addEventListener(MouseEvent.MOUSE_DOWN, triggerFlag);
    avancar.addEventListener(MouseEvent.MOUSE_UP, triggerFlag);
    voltar.addEventListener(MouseEvent.MOUSE_UP, triggerFlag);

これは役立つはずです。このコードを機能させるには、Sprite (または EventDispatcher に関連するその他のクラス) をサブクラス化する必要があることを忘れないでください。

于 2013-10-03T20:52:21.900 に答える