Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Apache flex 如何使用as3和鼠标创建精灵的上/下移动_Apache Flex_Actionscript 3_Mouseevent_Movieclip - Fatal编程技术网

Apache flex 如何使用as3和鼠标创建精灵的上/下移动

Apache flex 如何使用as3和鼠标创建精灵的上/下移动,apache-flex,actionscript-3,mouseevent,movieclip,Apache Flex,Actionscript 3,Mouseevent,Movieclip,我只需要在鼠标移动时垂直移动精灵。我如何用as3实现它 谢谢好的,拖动稍微复杂一点。您需要为拖动边界定义一个矩形。如果只想沿一个轴拖动,则使矩形的宽度为0。在本例中,我将滚动和向下滚动的次数限制为您可以在下面更改的不同数字 import flash.events.MouseEvent; import flash.geom.Rectangle; mySprite.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); functio

我只需要在鼠标移动时垂直移动精灵。我如何用as3实现它


谢谢

好的,拖动稍微复杂一点。您需要为拖动边界定义一个矩形。如果只想沿一个轴拖动,则使矩形的宽度为0。在本例中,我将滚动和向下滚动的次数限制为您可以在下面更改的不同数字

import flash.events.MouseEvent;
import flash.geom.Rectangle;

mySprite.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);

function mouseDownHandler(event:MouseEvent):void{
    stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    var scrollUpAmount:int = 10;
    var scrollDownAmount:int = 200;
    var boundsRect:Rectangle = new Rectangle(mySprite.x,mySprite.y-scrollUpAmount,0,mySprite.y+scrollDownAmount);
    mySprite.startDrag(false, boundsRect);
}

function mouseUpHandler(event:MouseEvent):void{
    stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    mySprite.stopDrag();
}
闪存版本 弹性版本


每一个你都可以粘贴进去,并按照你说的做。它将创建一个20x20红色框,垂直方向与鼠标相同,但水平方向固定。flex版本您的鼠标必须位于包含的画布内。

对不起,我询问了鼠标单击的问题,而实际上我需要移动鼠标。单击不跟踪鼠标移动。此示例仅限于垂直拖动,如上所述。如果只想沿一个轴拖动(例如垂直),则使边界矩形的宽度为0。
import flash.events.MouseEvent;
import flash.geom.Rectangle;

mySprite.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);

function mouseDownHandler(event:MouseEvent):void{
    stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    var scrollUpAmount:int = 10;
    var scrollDownAmount:int = 200;
    var boundsRect:Rectangle = new Rectangle(mySprite.x,mySprite.y-scrollUpAmount,0,mySprite.y+scrollDownAmount);
    mySprite.startDrag(false, boundsRect);
}

function mouseUpHandler(event:MouseEvent):void{
    stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    mySprite.stopDrag();
}
var s:Sprite = new Sprite();
s.x = 20;
s.graphics.beginFill(0xFF0000);
s.graphics.drawRect(0,0,20,20);
addChild(s);

stage.addEventListener(MouseEvent.MOUSE_MOVE,moveSprite);

function moveSprite(e:MouseEvent):void
{
    s.y = e.localY;
}
<mx:Canvas width="100" height="100">
            <mx:mouseMove>
                    <![CDATA[
                        s.y = event.localY;
                    ]]>
                </mx:mouseMove>
            <mx:Canvas id="s" backgroundColor="#ff0000" width="20" height="20"/>
        </mx:Canvas>