单击一个按钮怎么做两个或更多功能?

时间:2016-11-07 05:20:07

标签: actionscript-3 animation

这是我第一次来这里,我已经阅读了发布指南。如果我犯了任何错误,请原谅我。

这是我第一次做AS3和Animate CC。我决定做一个项目 - 你点击盔甲,盔甲出现在头像上。与“装扮”游戏大相径庭,但我根本不想拖延。基本上,我希望人们点击一个盔甲图像,然后让它出现在佩戴它的头像上。然而,有多种护甲选项,如衬衫1,衬衫2,皮肤1,皮肤2等。我现在的主要问题是,一旦另一个项目被点击,我无法弄清楚让物品消失的方法,特别是在同一类别,如皮肤。 我已经用Google搜索了两天了,现在还没有解决方案。我找到了一些代码,例如重置,偏移图像以及其他我甚至无法记住的内容。

我非常确定我做错了。这是第4帧的代码,主要问题是。请记住,我在第4帧的主代码的不同部分使用了不同的代码,现在代码完全搞砸了。

编辑:根据要求更新了编码。

    import flash.events.MouseEvent;

    stop();

function addItem(item:MovieClip,xPos:Number,yPos:Number){
    trace(item);
    trace(avatar_mc);
    avatar_mc.addChild(item);
    item.x = xPos;
    item.y = yPos;
}

basic_skin_1_button.addEventListener(MouseEvent.CLICK, itemSelect1);

function itemSelect1(e:MouseEvent):void {
    addItem(basicskin1_mc,25,40); {
    }
}

basic_skin_2_button.addEventListener(MouseEvent.CLICK, itemSelect2);

function itemSelect2(e:MouseEvent):void {
    addItem(basicskin2_mc,25,40)
}

1 个答案:

答案 0 :(得分:1)

这不是一个完整的答案,但您应该先了解并更新您的代码,然后再继续。

我在这里解决的是如何使一个功能适用于多个场景或输入。这实际上是使用自定义函数的主要目的之一,它将使解决您手头的问题变得更加简单。

function addItem(item:MovieClip,xPos:Number,yPos:Number){
    characterImage.addChild(item);
    item.x = xPos;
    item.y = yPos;
}

然后你可以像这样调用这个函数

addItem(basicskin3_mc,0,0);

然后使用相同的函数添加不同的皮肤:

addItem(basicskin2_mc,0,0);

但我只是传递了一个不同的参数(basicskin2_mc)。

但是当我添加一个新皮肤时,我明白了让旧皮肤被移除。那么现在我只需改变一个功能,而不是尝试更新每种皮肤类型和每种装甲类型等的所有功能。