Flash游戏学习笔记:鼠标拖动
2008-11-28 21:16
459 查看
package
{
public class MouseGame extends Sprite
{
private var _sprite:Sprite;
private var posion:Point;
public function MouseGame()
{
_sprite=new Sprite();
addChild(_sprite);
var _shape:Shape=new Shape();
addChild(_shape);
_shape.graphics.beginFill(0x000000,1);
_shape.graphics.lineStyle(1,0,1);
_shape.graphics.drawCircle(250,250,50);
_shape.graphics.endFill();
_sprite.addChild(_shape);
_sprite.addEventListener(MouseEvent.MOUSE_DOWN,startMascotDrag);
stage.addEventListener(MouseEvent.MOUSE_UP, stopMascotDrag);
_sprite.addEventListener(Event.ENTER_FRAME, dragMascot);
}
private function startMascotDrag(e:MouseEvent):void
{
posion=new Point(e.localX,e.localY);//将一个点保存在这个对象中
}
private function stopMascotDrag(e:MouseEvent):void
{
posion=null;
}
private function dragMascot(e:Event):void
{
if (posion!=null)
{
_sprite.x = mouseX - posion.x;
_sprite.y = mouseY - posion.y;
}
}
}
}
代码解析:
首先我们创建一个继续sprite的类,在构造函数里面,画出一个圆,这个圆我们可以通过监听鼠标,进行拖动。
这里我们主要使用到的是
import flash.display.Sprite;
import flash.events.*;
import flash.geom.Point;
import flash.display.Shape;
四个包,有没有注意到 import flash.geom.Point; 这个可以记录点的包呢?
其实细心发现这个是很有用处。他的作用保存一个点的坐标
如何创建一个圆:
var _shape:Shape=new Shape();
addChild(_shape);
_shape.graphics.beginFill(0x000000,1);//填充黑色颜色,透明度为1
_shape.graphics.lineStyle(1,0,1);//设置线的厚度 颜色和透明度
_shape.graphics.drawCircle(250,250,50); //画圆
_shape.graphics.endFill();//结束填充
二.如果让圆可以进行拖动?
首先我们进行一些监听
_sprite.addEventListener(MouseEvent.MOUSE_DOWN,startMascotDrag);
stage.addEventListener(MouseEvent.MOUSE_UP, stopMascotDrag);
_sprite.addEventListener(Event.ENTER_FRAME, dragMascot);
两个鼠标事件,一个是按下,一个没有按,然后是一个进行拖动的函数。
三.计算位置
通过减法
新的坐标=当前鼠标值-原始的坐标
这样就可以完成了一个简单的鼠标拖动
四.扩展
尝试一下做一些与鼠标交互的游戏吧
好写到这里,累死了
{
public class MouseGame extends Sprite
{
private var _sprite:Sprite;
private var posion:Point;
public function MouseGame()
{
_sprite=new Sprite();
addChild(_sprite);
var _shape:Shape=new Shape();
addChild(_shape);
_shape.graphics.beginFill(0x000000,1);
_shape.graphics.lineStyle(1,0,1);
_shape.graphics.drawCircle(250,250,50);
_shape.graphics.endFill();
_sprite.addChild(_shape);
_sprite.addEventListener(MouseEvent.MOUSE_DOWN,startMascotDrag);
stage.addEventListener(MouseEvent.MOUSE_UP, stopMascotDrag);
_sprite.addEventListener(Event.ENTER_FRAME, dragMascot);
}
private function startMascotDrag(e:MouseEvent):void
{
posion=new Point(e.localX,e.localY);//将一个点保存在这个对象中
}
private function stopMascotDrag(e:MouseEvent):void
{
posion=null;
}
private function dragMascot(e:Event):void
{
if (posion!=null)
{
_sprite.x = mouseX - posion.x;
_sprite.y = mouseY - posion.y;
}
}
}
}
代码解析:
首先我们创建一个继续sprite的类,在构造函数里面,画出一个圆,这个圆我们可以通过监听鼠标,进行拖动。
这里我们主要使用到的是
import flash.display.Sprite;
import flash.events.*;
import flash.geom.Point;
import flash.display.Shape;
四个包,有没有注意到 import flash.geom.Point; 这个可以记录点的包呢?
其实细心发现这个是很有用处。他的作用保存一个点的坐标
如何创建一个圆:
var _shape:Shape=new Shape();
addChild(_shape);
_shape.graphics.beginFill(0x000000,1);//填充黑色颜色,透明度为1
_shape.graphics.lineStyle(1,0,1);//设置线的厚度 颜色和透明度
_shape.graphics.drawCircle(250,250,50); //画圆
_shape.graphics.endFill();//结束填充
二.如果让圆可以进行拖动?
首先我们进行一些监听
_sprite.addEventListener(MouseEvent.MOUSE_DOWN,startMascotDrag);
stage.addEventListener(MouseEvent.MOUSE_UP, stopMascotDrag);
_sprite.addEventListener(Event.ENTER_FRAME, dragMascot);
两个鼠标事件,一个是按下,一个没有按,然后是一个进行拖动的函数。
三.计算位置
通过减法
新的坐标=当前鼠标值-原始的坐标
这样就可以完成了一个简单的鼠标拖动
四.扩展
尝试一下做一些与鼠标交互的游戏吧
好写到这里,累死了
相关文章推荐
- Flash游戏学习笔记:鼠标拖动
- Flash游戏学习笔记:鼠标拖动
- Flash 游戏设计笔记:鼠标类游戏(4)
- Flash 游戏设计笔记:鼠标类游戏(3)
- Flash 游戏设计笔记:鼠标类游戏(2)
- Flash游戏学习笔记:矩形检测碰撞
- WPF-学习笔记 按下鼠标拖动窗口
- 每天学习多一点flash(36) as2.0 游戏设计笔记
- 每天学习多一点flash(36) as2.0 游戏设计笔记
- Flash 游戏设计笔记:鼠标类游戏(3)
- Flash 游戏设计笔记:鼠标类游戏(2)
- Flash游戏学习笔记:矩形检测碰撞
- 每天学习多一点flash(36) as2.0 游戏设计笔记
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- Flash游戏学习笔记:矩形检测碰撞
- Flash 游戏设计笔记:鼠标类游戏(2)
- pyqt5学习笔记——鼠标拖动代码
- flash学习笔记:网页游戏老板键的设置。
- Flash 游戏设计笔记:鼠标类游戏(4)
- Flash 游戏设计笔记:鼠标类游戏(1)