Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 将actionscript 2脚本转换为actionscript 3_Actionscript 3_Flash_Actionscript_Scrollbar_Actionscript 2 - Fatal编程技术网

Actionscript 3 将actionscript 2脚本转换为actionscript 3

Actionscript 3 将actionscript 2脚本转换为actionscript 3,actionscript-3,flash,actionscript,scrollbar,actionscript-2,Actionscript 3,Flash,Actionscript,Scrollbar,Actionscript 2,我有一个ActionScript2.0脚本,但我希望它在ActionScript3.0中 我的剧本: var speed:Number = 15; avancar.onPress = function () { _root.onEnterFrame = function() { if(scroll_img._x > -262) { scroll_img._x -= speed; } } } avancar.onRelease = functio

我有一个ActionScript2.0脚本,但我希望它在ActionScript3.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;
}
var速度:数字=15;
avancar.onPress=函数(){
_root.onEnterFrame=函数(){
如果(滚动图像>至262){
滚动\u img.\u x-=速度;
}
}   
}   
avancar.onRelease=函数(){
删除_root.oneterframe;
}
voltar.onPress=函数(){
_root.onEnterFrame=函数(){
如果(滚动图像x<56){
滚动\u img.\u x+=速度;
}
}
}
voltar.onRelease=函数(){
删除_root.oneterframe;
}

我试了大约一个小时来找到ActionScript3.0,但是我找不到。如果有人能帮助我,我会非常高兴。

哇,即使在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);
avClicked=false;
vtClicked=false;//这些只是触发器
函数moveScrollImg(e:事件):void{
如果((滚动img.\u x>-262)和&avClicked)滚动img.x-=速度;
如果((滚动img.\u x<56)&&v单击)滚动img.x+=速度;
}
函数triggerFlag(e:MouseEvent):无效{
如果(如按钮向下){
如果(e.target==avancar)avClicked=true;
如果(e.target==voltar)vtClicked=true;
否则{
avc=false;
vtc=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\u UP,triggerFlag);
这应该会有所帮助。
别忘了,要使这段代码(或任何其他与EventDispatcher相关的类)正常工作,您必须为Sprite创建子类。

非常感谢。但我遇到了一个错误:未定义属性(avClicked/speed/vtClicked/avancar)在最顶端使用
var-avClicked:Boolean=false;var-vtClicked:Boolean=false;var-speed:Number=15;
。由于堆栈溢出不是代码转换服务,因此此问题似乎与主题无关。