![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
Flash AS3.0新手 求高手帮忙写一段代码 怎样通过鼠标的滑动控制影片剪辑左右滑动 类似现在的触屏手机。
主界面是300×500px影片剪辑900×500px分为三个主界面怎样通过鼠标的左右滑动来控制3个页面的出现补充的是影片剪辑里会有按钮,求高人指导,不胜感激,...
主界面是300×500px 影片剪辑 900×500px 分为三个主界面 怎样通过鼠标的左右滑动来控制3个页面的出现 补充的是 影片剪辑里会有按钮,求高人指导,不胜感激,
展开
2个回答
展开全部
//将下面的代码 复制到第一帧。发布按住鼠标滑动测试看看,相信剩下的部分你能搞定了!
import flash.events.Event;
var oldX:Number;
var precision:int = 50;//响应精度 只有鼠标按下并滑动大于50像素才响应事件
stage.addEventListener(Event.ENTER_FRAME,runF);
stage.addEventListener(MouseEvent.MOUSE_DOWN,downF);
stage.addEventListener(MouseEvent.MOUSE_UP,upF);
function runF(e:Event)
{
}
function downF(e:Event)
{
oldX = stage.mouseX;
}
function upF(e:Event)
{
var endX = stage.mouseX;
if (oldX - endX > precision)
{
trace("鼠标向左滑了");
//这里增加你控制MC移动代码
}
else if (oldX - endX < -precision)
{
trace("鼠标向右滑了");
//这里增加你控制MC移动代码
}
}
import flash.events.Event;
var oldX:Number;
var precision:int = 50;//响应精度 只有鼠标按下并滑动大于50像素才响应事件
stage.addEventListener(Event.ENTER_FRAME,runF);
stage.addEventListener(MouseEvent.MOUSE_DOWN,downF);
stage.addEventListener(MouseEvent.MOUSE_UP,upF);
function runF(e:Event)
{
}
function downF(e:Event)
{
oldX = stage.mouseX;
}
function upF(e:Event)
{
var endX = stage.mouseX;
if (oldX - endX > precision)
{
trace("鼠标向左滑了");
//这里增加你控制MC移动代码
}
else if (oldX - endX < -precision)
{
trace("鼠标向右滑了");
//这里增加你控制MC移动代码
}
}
更多追问追答
追问
额 先谢谢了 可以用 但是响应太快了 如何缓冲啊 另外 p.x +=300 是不是只能用一次 我向左划滑了一次之后 再向左 MC用完了 就“白屏”了 这个要怎么解决呢
追答
//以下代码需要你将舞台上的 元件 分别命名为 m1 m2 m3
//关于边界问题。希望你能自己探索下,
//提个2个思路 1记录往某边滑了多少次 2比较前后元件的位置
import flash.events.Event;
var oldX:Number;
var precision:int = 50;//响应精度 只有鼠标按下并滑动大于50像素才响应事件
var perDisL:int = 300;//每划一次移动多少距离
var speed:int = 7;//缓动系数
var arr=new Array()
arr=[m1.x,m2.x,m3.x]//记录每个MC的初始位置
stage.addEventListener(Event.ENTER_FRAME,runF);
stage.addEventListener(MouseEvent.MOUSE_DOWN,downF);
stage.addEventListener(MouseEvent.MOUSE_UP,upF);
function runF(e:Event)
{
for (var i:int=1; i precision)
{
trace("鼠标向左滑了");
//这里增加你控制MC移动代码
leftMove();
}
else if (oldX - endX < -precision)
{
trace("鼠标向右滑了");
//这里增加你控制MC移动代码
rightMove();
}
}
function leftMove()
{
for(var i:int=0;i<3;i++)
{
arr[i]=arr[i]+300
}
}
function rightMove()
{
for(var i:int=0;i<3;i++)
{
arr[i]=arr[i]-300
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询