天天看點

flash as3滑鼠左右拖動元件

   剛剛寫了個元件左右拖動demo,記錄一下,以便後續檢視。是通過startDrag()這個方法來進行元件拖動的。

   通常預設直接使用mc.startDrag()方法來進行拖動。

以下為adobe官方的api:

<a href="http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html#startDrag()" target="_blank">()</a>

方法

<code></code>

語言版本:

ActionScript 3.0

運作時版本:

Flash Player 9, AIR 1.0, Flash Lite 4

允許使用者拖動指定的 Sprite。Sprite 将一直保持可拖動,直到通過調用 <code>Sprite.stopDrag()</code> 方法來明确停止,或直到将另一個 Sprite 變為可拖動為止。在同一時間隻有一個 Sprite 是可拖動的。

三維顯示對象跟随指針,<code>Sprite.startDrag()</code> 将在由顯示對象定義的三維平面中移動對象。或者,如果顯示對象為二維對象和三維對象的子對象,則二維對象将在由三維父對象定義的三維平面中移動。

參數

<a href="http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html#startDrag()"></a>

具體步驟:

1、通常flash cs5建立一個fla

2、建立元件,取名為RectMc,添加一個1100*400的矩形。

<a target="_blank" href="http://blog.51cto.com/attachment/201306/111814467.jpg"></a>

3、回到場景,将剛剛建立的元件拖動到場景中,執行個體名為“mc”

<a target="_blank" href="http://blog.51cto.com/attachment/201306/112103975.jpg"></a>

4、在第一幀右擊添加動作,或按“F9”進入as3代碼編寫。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<code>import</code> <code>flash.events.MouseEvent;</code>

<code>import</code> <code>flash.geom.Rectangle;</code>

<code>//注冊滑鼠按下事件</code>

<code>mc.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);</code>

<code>//注冊滑鼠松開事件</code>

<code>mc.addEventListener(MouseEvent.MOUSE_UP,mouseUp);</code>

<code>//建立矩形,參數:1,2表示x,y軸坐标,3,4表示寬度,和高度。</code>

<code>var</code> <code>rect:Rectangle = </code><code>new</code> <code>Rectangle(-</code><code>550</code><code>,mc.y,</code><code>550</code><code>,</code><code>0</code><code>);</code>

<code>function</code> <code>mouseDown(e:MouseEvent):</code><code>void</code>

<code>{</code>

<code>    </code><code>//添加拖動,</code>

<code>    </code><code>//false表示跟随滑鼠移動,rect表示可以移動的範圍,即x軸方向移動</code>

<code>    </code><code>mc.startDrag(</code><code>false</code><code>,rect);</code>

<code>                                      </code> 

<code>}</code>

<code>function</code> <code>mouseUp(e:MouseEvent):</code><code>void</code>

<code>    </code><code>mc.stopDrag();</code>

以上就完成了元件左右拖動。

本文轉自xuzw13 51CTO部落格,原文連結:http://blog.51cto.com/xuzhiwei/1219497,如需轉載請自行聯系原作者

繼續閱讀