如何在Flash CS3 用AS3写一个按钮的动作以控制其他元件?

新手一名,比如我想press按钮后,另外一个影片剪辑(pic)向左移动10,原本AS2按钮动作中onpressfunction中写:_root.pic._x=_root.... 新手一名,比如我想press按钮后,另外一个影片剪辑(pic)向左移动10,原本AS2按钮动作中onpress function中写: _root.pic._x=_root.pic._x-10;就可以了,那么AS3中如何写呢?谁能给出个例子. 展开
 我来答
传说中的家里蹲
2008-11-07
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
不好意思, 刚才没看清楚问题, 现在回答你

比如你的舞台上有一个按钮(btnTestButton)和一个影片剪辑(mcTestMC). 从你的说明来, 我的推测是你想: 当按下按钮的时候, 剪辑开始左平移, 松开按钮后剪辑停止. 那么就到时间轴上加入以下代码:

btnTestButton.addEventListener(MouseEvent.MOUSE_DOWN, MoveMC); //给这个按钮添加鼠标行为监听, 触发鼠标按下后执行MoveMC这个任务

btnTestButton.addEventListener(MouseEvent.MOUSE_UP, StopMC); //给这个按钮添加鼠标行为监听,触发鼠标松开后执行StopMC这个任务

function MoveMC(e:MouseEvent):void{ //当鼠标按下时
stage.addEventListener(Event.ENTER_FRAME, MoveMeThru);
//给舞台添加帧监听事件, 执行MoveMeThru任务
}

function StopMC(e:MouseEvent):void{ //当鼠标松开时
stage.removeEventListener(Event.ENTER_FRAME, MoveMeThru);
//将帧监听事件从舞台上注销
}

function MoveMeThru(e:Event):void{
mcTestMC.x -=10; //左平移剪辑
}

如果你嫌这个比较麻烦, 并且没达到你想要的效果, 那不知道你是不是在寻找以下这种效果

btnTestButton.addEventListener(MouseEvent.CLICK, MoveMC); //给鼠标添加监听事件:点击. 点击后高带皮触发任务: MoveMC
function MoveMC(e:MouseEvent):void{
mcTestMC.x -=10; //左平移剪辑
}

这个比上个简单得很. 但是行孙是由点击(鼠标按戚差下+松开)触发. 并且按一下, 移一次. 如果你只想移动一次, 那就加个boolean进去, 或者直接在移动后注销鼠标监听事件

方法1: 加boolean
var hasMoved:Boolean = false;
btnTestButton.addEventListener(MouseEvent.CLICK, MoveMC);
function MoveMC(e:MouseEvent):void{
if (!hasMoved){
mcTestMC.x -=10;
hasMoved=true;
}
}

方法2: 注销鼠标监听事件
btnTestButton.addEventListener(MouseEvent.CLICK, MoveMC);
function MoveMC(e:MouseEvent):void{

mcTestMC.x -=10;
btnTestButton.removeEventListener(MouseEvent.CLICK, MoveMC);

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式