FL • 拖移效果 (AS2)
步驟如下:
1. 新建一個flash文檔,400x300像素,背景色為黑色(#000000);
2. 用橢圓工具在場景上畫一個30x30像素的正圓,邊框線無,填充色為放射狀。
(可以按 你自己喜歡的顏色)
3. 點擊橢圓,按F8把橢圓轉換為影片剪輯,取名為ball
(要不要命名都可以,因為是寫在此影片片段裡的語法)
4. 選中場景上的ball元件,按F9打開動作面板,寫入以下語法:
on(press){
this.startDrag(); //鼠標點擊開始拖動;
}
on(release){
this.stopDrag(); //鼠標左鍵鬆開停止拖動;
}
最後按Ctrl+Enter測試
其實startDrag還可以設定一些值
startDrag(target,[lock ,left , top , right, bottom])
其中參數:
startDrag是開始拖動的意思
target 是指拖動的影片剪輯的目標路徑。
lock 是一個邏輯值,指定可拖動影片剪輯是鎖定到鼠標位置中央 (true),還是鎖定到用戶首次單擊該影片剪輯的位置上 (false)。此參數是可選的。
left、top、right、bottom 相對於影片剪輯父級坐標的值,這些值指定該影片剪輯的約束矩形。這些參數也是可選的。
好!明白了命令格式以後我們繼續。
就是把代碼改變一下就行了!如下:
on (press) {
this.startDrag(100,300,300,100); //鼠標點擊開始拖動;在這裡我只指定它拖動的範圍
}
http://www.swfcabin.com/open/1292481444
http://u.115.com/file/f09b4caa5e
on (release) {
this.stopDrag(); //鼠標左鍵鬆開停止拖動;
}
當然也可以不寫入影片片段裡,直接寫入影格
不過這時就必需設定影片片段的"實體名稱"
此我設定名稱為"mc"語法如下:
mc.onPress = function() {
startDrag("_root.mc", false, 95, 100, 285, 209);//鼠標點擊開始拖動;在這裡我只指定它拖動的範圍
};
this.mc.onPress = function(){//當鼠標按下的時候執行
startDrag(this, false);//鼠標可以拖動地圖
}
this.mc.onRelease = function(){//當鼠標彈起(不按時)
stopDrag();//停止拖動
}
onMouseDown和onPress的差異
為了要做出比Button物件更複雜的互動,我們通常會改用MovieClip來製作按鈕。
如此一來,就需要處理event handler。與滑鼠有關的MovieClip event handler
包括onMouseDown、onMouseUp、onPress、onRelease、
onReleaseOutSide、onRollOver、onRollOut、onDragOver、
onDragOut、onMouseMove。
感覺上onMouseDown和onPress很像,按下左鍵都可以觸發這兩個事件。
這兩個event handler的差異在於,要觸發onPress事件,
游標的位置必須在MovieClip上,而onMouseDown不需要。
所以說,任何一個MovieClip的onMouseDown事件,
只要在畫面上任何地方按下左鍵都會被觸發。
與游標位置無關的有onMouseDown、onMouseUp、onMouseMove,
只要MovieClip存在於畫面上,就可以觸發。
值得注意的兩點:
1. 如果有兩個重疊的MovieClip,在上面按左鍵的話,只有在上層的MovieClip的
onPress會被觸發,下方的不會。而兩個MovieClip的onMouseDown則是都會被觸發。
2. 如果有兩個MovieClip-mcA和mcB,mcB包含mcA,兩個MovieClip都有
onPress事件的話,mcA的onPress是完全無法被觸發的。
結論:
1. onMouseDown能不用就不用,避免造成不必要的混亂。
2. mc.onPress = function ()就能讓movieClip擁有Button的Behavior。
onPress、onRollover、onRollout、onRelease都可以這樣使用。
以上onMouseDown和onPress的差異引用於「阿修的部落格」
|
0 意見
純粹分享麥子購買產品!
文筆絕對不好,請噴子勿噴