Apache flex 如何使用as3和鼠标创建精灵的上/下移动
我只需要在鼠标移动时垂直移动精灵。我如何用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
谢谢好的,拖动稍微复杂一点。您需要为拖动边界定义一个矩形。如果只想沿一个轴拖动,则使矩形的宽度为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>