问题一:当鼠标按下的时候,让一个物体进行拖动。
步骤:使用上一节的文件,这次要修改的是鼠标一个事件MouseEvent.MOUSE_DOWN。监听的对象是一mc(MovieClip类型)
- package
- {
- import flash.display.MovieClip;
- import flash.events.*;
- import flash.display.SimpleButton;
- public class Example extends MovieClip
- {
- public function Example()
- {
- Btn.addEventListener(MouseEvent.CLICK,onClick);
- mc.addEventListener(MouseEvent.MOUSE_DOWN,onKeyDown2);
- }
- private function onClick(e:MouseEvent):void
- {
- mc.scaleX=0.5;
- mc.scaleY=0.5;
- }
- private function onKeyDown2(e:MouseEvent):void
- {
- var obj:MovieClip=e.target as MovieClip;
- obj.startDrag();
- }
- }
- }
可以发现,这里改动很少,只是改动了 增加
mc.addEventListener(MouseEvent.MOUSE_DOWN,onKeyDown2);
-
private function onKeyDown2(e:MouseEvent):void
- {
- var obj:MovieClip=e.target as MovieClip;
- obj.startDrag();
- }
我们调用了一个拖动的函数。 obj.startDrag();
这个函数是当我们按下鼠标的时候,物体被我们拖动了
说明一下,mc这个对象是在文档里面属性定义的。
问题二:当鼠标松开的时候,让一个物体停止拖动。
步骤:
继续上面的文件,我们继续添加一个监听事件,这次添加的松开鼠标的状态
stage.addEventListener(MouseEvent.MOUSE_UP,onKeyup);
增加这个后,当鼠标松开的时候,物体就会停止拖动了。
- package
- {
- import flash.display.MovieClip;
- import flash.events.*;
- import flash.display.SimpleButton;
- public class Example extends MovieClip
- {
- public function Example()
- {
- Btn.addEventListener(MouseEvent.CLICK,onClick);
- mc.addEventListener(MouseEvent.MOUSE_DOWN,onKeyDown2);
- stage.addEventListener(MouseEvent.MOUSE_UP,onKeyup);
- }
- private function onClick(e:MouseEvent):void
- {
- mc.scaleX=0.5;
- mc.scaleY=0.5;
- }
- private function onKeyDown2(e:MouseEvent):void
- {
- var obj:MovieClip=e.target as MovieClip;
- obj.startDrag(true);
- }
- private function onKeyup(e:MouseEvent):void
- {
- mc.stopDrag();
- }
- }
- }
停止拖动的函数是stopDrag();
以上两个是一个很常用的技巧,拖动和停止拖动,可以制作一些图片拖动的效果。希望对你有所帮助