マウスでAS3でのスプライトの動きをアップ/ダウンを作成する方法
-
19-09-2019 - |
質問
私は、マウスの動きに垂直にのみスプライトを移動する必要があります。どのように私はAS3でそれを実装するのですか?
おかげ
解決
Flashバージョン
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;
}
Flexのバージョン
<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>
これらの各あなたが貼り付けることができて、あなたが言ったことを行います。それは縦にマウスと同じですが水平に固定されている20×20赤いボックスを作成します。フレックスバージョンは、あなたのマウスを含むキャンバス内であることがあります。
他のヒント
addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(e:MouseEvent):void{
mySprite.y += amount;
}
[OK]を、ドラッグはもう少し複雑です。あなたはドラッグの境界のための矩形を定義する必要があります。あなただけの1つの軸に沿ってドラッグしたいなら、あなたは長方形を作り、私は、スクロールの量を制限して、あなたが以下に変更することができます異なる番号まできました。この例では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();
}
所属していません StackOverflow