用 Flash Action script 3.0 做走出房间游戏, 多个按钮共享同一个功能,如何实现?请给我代码,分可以加
如题,我设计了一个以环保为主题的逃出房间小游戏,18个小时之后要交作业,场景基本上是完成了,但是代码还是有几个问题……请高手帮忙解决,不胜感激!问题一:最大的问题,我的F...
如题,我设计了一个以环保为主题的逃出房间小游戏,18个小时之后要交作业,场景基本上是完成了,但是代码还是有几个问题……请高手帮忙解决,不胜感激!
问题一:最大的问题,我的Frame 2 (第二帧) 是主场景,分别有三个箭头指向 Frame 3,4,5; Frame 3,4,5 也分别有一个箭头指向 Frame 2, 还有,标题画面的 “play” 按钮 也是指向Frame 2 的。相当于总共四个按钮,全部要执行相同的功能: goandstop (2) 但事实是只有play 按钮的命令有用,其他的都没有,说找不到对象。 在网上中英文都搜了,说是要写什么 if 指令,还有 parent 和 children 的。我刚学as 3.0 不是很久,还不太懂这么复杂的东西,麻烦哪位高手指点一下……
下面是我目前的代码,我只贴了相关的部分,请告诉我我该加点什么:
play_btn.addEventListener(MouseEvent.MOUSE_DOWN, buttonclicked);
function buttonclicked(event:MouseEvent):void {
gotoAndStop(2);
}
arrow1_btn.addEventListener(MouseEvent.MOUSE_DOWN,btnfun3);
function btnfun3 (e:MouseEvent)
{
gotoAndStop(3);
}
arrow2_btn.addEventListener(MouseEvent.MOUSE_DOWN,btnfun4);
function btnfun4 (e:MouseEvent)
{
gotoAndStop(4);
}
arrow3_btn.addEventListener(MouseEvent.MOUSE_DOWN,btnfun5);
function btnfun5 (e:MouseEvent)
{
gotoAndStop(5);
}
arrow4_btn.addEventListener(MouseEvent.MOUSE_DOWN,buttonclicked);
arrow5_btn.addEventListener(MouseEvent.MOUSE_DOWN,buttonclicked);
arrow6_btn.addEventListener(MouseEvent.MOUSE_DOWN,buttonclicked);
以上的按钮中, arrow4,5,6都不管用。我改过和前面一样的格式,换过不同的functions name, 都没用,所以我知道肯定是缺少代码,麻烦把代码贴给我……
问题二:我的逃离房间小游戏,需要把四个房间里的8样电器电源关掉,地上的垃圾捡干净,分别回收到三个垃圾桶里,然后就能逃离房间了。捡垃圾的代码我已经编好了,但是不知道回收到三个桶里的代码如何编,(垃圾扔进桶里消失)麻烦大家帮帮忙!捡垃圾出门的代码如下,为了测效果先设定为三个垃圾,但可能会被我加到10个。对了,桶的代码分别是 bin1_mc; bin2_mc; bin3_mc. 告诉我怎么加进去好么?
(字数限制,代码先粘贴一半,另一半在补充问题里)
inventorywaste1_mc.alpha = 0;
inventorywaste2_mc.alpha = 0;
inventorywaste3_mc.alpha = 0;
function pickupObject(event:MouseEvent):void {
event.target.startDrag(true);
}
function dropObject(event:MouseEvent):void {
event.target.stopDrag();
}
inventorywaste1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
inventorywaste1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
inventorywaste1_mc.buttonMode = true;
inventorywaste2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
inventorywaste2_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
inventorywaste2_mc.buttonMode = true;
inventorywaste3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
inventorywaste3_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
inventorywaste3_mc.buttonMode = true;
waste1_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
waste2_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
waste3_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
var founditems:Number = 0;
function objectFound(event:MouseEvent):void {
var inventoryName:String = "inventory" + event.target.name;
var inventoryItem:DisplayObject = getChildByName(inventoryName);
event.target.alpha = inventoryItem.alpha = 100;
founditems ++;
event.target.alpha = 0;
if(founditems == 3){
door_btn.addEventListener(MouseEvent.MOUSE_DOWN, escapeRoom);
}
}
function escapeRoom(event:MouseEvent):void {
gotoAndStop(6);
}
最后一个小问题,就是,如何把一个button和一个movie clip 联系起来,点了按钮,movieclip变色,或者是alpha变成0?举个例子给我就好,谢谢!
记住是AS3.0 噢,我们是不允许用2.0 的……小女子先谢大家了!如果字数限制,可以发邮件到我邮箱apple_nicole@163.com,不胜感激!能解决问题的朋友一定给高分!
Flex 怎么 展开
问题一:最大的问题,我的Frame 2 (第二帧) 是主场景,分别有三个箭头指向 Frame 3,4,5; Frame 3,4,5 也分别有一个箭头指向 Frame 2, 还有,标题画面的 “play” 按钮 也是指向Frame 2 的。相当于总共四个按钮,全部要执行相同的功能: goandstop (2) 但事实是只有play 按钮的命令有用,其他的都没有,说找不到对象。 在网上中英文都搜了,说是要写什么 if 指令,还有 parent 和 children 的。我刚学as 3.0 不是很久,还不太懂这么复杂的东西,麻烦哪位高手指点一下……
下面是我目前的代码,我只贴了相关的部分,请告诉我我该加点什么:
play_btn.addEventListener(MouseEvent.MOUSE_DOWN, buttonclicked);
function buttonclicked(event:MouseEvent):void {
gotoAndStop(2);
}
arrow1_btn.addEventListener(MouseEvent.MOUSE_DOWN,btnfun3);
function btnfun3 (e:MouseEvent)
{
gotoAndStop(3);
}
arrow2_btn.addEventListener(MouseEvent.MOUSE_DOWN,btnfun4);
function btnfun4 (e:MouseEvent)
{
gotoAndStop(4);
}
arrow3_btn.addEventListener(MouseEvent.MOUSE_DOWN,btnfun5);
function btnfun5 (e:MouseEvent)
{
gotoAndStop(5);
}
arrow4_btn.addEventListener(MouseEvent.MOUSE_DOWN,buttonclicked);
arrow5_btn.addEventListener(MouseEvent.MOUSE_DOWN,buttonclicked);
arrow6_btn.addEventListener(MouseEvent.MOUSE_DOWN,buttonclicked);
以上的按钮中, arrow4,5,6都不管用。我改过和前面一样的格式,换过不同的functions name, 都没用,所以我知道肯定是缺少代码,麻烦把代码贴给我……
问题二:我的逃离房间小游戏,需要把四个房间里的8样电器电源关掉,地上的垃圾捡干净,分别回收到三个垃圾桶里,然后就能逃离房间了。捡垃圾的代码我已经编好了,但是不知道回收到三个桶里的代码如何编,(垃圾扔进桶里消失)麻烦大家帮帮忙!捡垃圾出门的代码如下,为了测效果先设定为三个垃圾,但可能会被我加到10个。对了,桶的代码分别是 bin1_mc; bin2_mc; bin3_mc. 告诉我怎么加进去好么?
(字数限制,代码先粘贴一半,另一半在补充问题里)
inventorywaste1_mc.alpha = 0;
inventorywaste2_mc.alpha = 0;
inventorywaste3_mc.alpha = 0;
function pickupObject(event:MouseEvent):void {
event.target.startDrag(true);
}
function dropObject(event:MouseEvent):void {
event.target.stopDrag();
}
inventorywaste1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
inventorywaste1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
inventorywaste1_mc.buttonMode = true;
inventorywaste2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
inventorywaste2_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
inventorywaste2_mc.buttonMode = true;
inventorywaste3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
inventorywaste3_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
inventorywaste3_mc.buttonMode = true;
waste1_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
waste2_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
waste3_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
var founditems:Number = 0;
function objectFound(event:MouseEvent):void {
var inventoryName:String = "inventory" + event.target.name;
var inventoryItem:DisplayObject = getChildByName(inventoryName);
event.target.alpha = inventoryItem.alpha = 100;
founditems ++;
event.target.alpha = 0;
if(founditems == 3){
door_btn.addEventListener(MouseEvent.MOUSE_DOWN, escapeRoom);
}
}
function escapeRoom(event:MouseEvent):void {
gotoAndStop(6);
}
最后一个小问题,就是,如何把一个button和一个movie clip 联系起来,点了按钮,movieclip变色,或者是alpha变成0?举个例子给我就好,谢谢!
记住是AS3.0 噢,我们是不允许用2.0 的……小女子先谢大家了!如果字数限制,可以发邮件到我邮箱apple_nicole@163.com,不胜感激!能解决问题的朋友一定给高分!
Flex 怎么 展开
3个回答
展开全部
最后一问的答案如下(前面好长。。。还没看)
给movieclip定个实例名称,假如命名为mc1,按钮事件中加入mc1.alpha=0
关于多个相似按钮事件函数合并:
function goto(n:int):Function{
var foo:Function=function(e:MouseEvent):void{
gotoAndStop(n);
}
return foo;
}
play_btn.addEventListener(MouseEvent.MOUSE_DOWN, goto(2));
这样来用
给movieclip定个实例名称,假如命名为mc1,按钮事件中加入mc1.alpha=0
关于多个相似按钮事件函数合并:
function goto(n:int):Function{
var foo:Function=function(e:MouseEvent):void{
gotoAndStop(n);
}
return foo;
}
play_btn.addEventListener(MouseEvent.MOUSE_DOWN, goto(2));
这样来用
展开全部
waste1_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
waste2_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
waste3_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
var founditems:Number = 0;
function objectFound(event:MouseEvent):void {
var inventoryName:String = "inventory" + event.target.name;
var inventoryItem:DisplayObject = getChildByName(inventoryName);
event.target.alpha = inventoryItem.alpha = 100;
founditems ++;
event.target.alpha = 0;
if(founditems == 3){
door_btn.addEventListener(MouseEvent.MOUSE_DOWN, escapeRoom);
}
}
function escapeRoom(event:MouseEvent):void {
gotoAndStop(6);
}
waste2_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
waste3_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
var founditems:Number = 0;
function objectFound(event:MouseEvent):void {
var inventoryName:String = "inventory" + event.target.name;
var inventoryItem:DisplayObject = getChildByName(inventoryName);
event.target.alpha = inventoryItem.alpha = 100;
founditems ++;
event.target.alpha = 0;
if(founditems == 3){
door_btn.addEventListener(MouseEvent.MOUSE_DOWN, escapeRoom);
}
}
function escapeRoom(event:MouseEvent):void {
gotoAndStop(6);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最后一个小问题,就是,如何把一个button和一个movie clip 联系起来,点了按钮,movieclip变色,或者是alpha变成0?
这个问题通过Flex的换肤 可以很简单的实现。
至于牵连个问题我没有时间细看,所以也不好能你回答了!
这个问题通过Flex的换肤 可以很简单的实现。
至于牵连个问题我没有时间细看,所以也不好能你回答了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询