好的,我已经为爱丽丝梦游仙境的场景制作了一些剧本,因为她正在吃蛋糕和饮用药水变得越来越小。我已经能够链接两个按钮,这样当点击eat_me时,她会变小,当点击drink_me时,她会变得更大。
我想要实现的是为Alice提供一个像2这样的数字,当你点击eat_me时,它会下降1,当你点击drink_me时,它会上升1.然后我希望AS3识别Alice何时为0然后移动到下一帧。我有一些代码,但不太确定我是否接近。
var alice_size:Number = 2;
drink_me.addEventListener(MouseEvent.MOUSE_DOWN, resizeAlice);
function resizeAlice(event:MouseEvent):void {
sitting_alice.width = sitting_alice.width * 2;
sitting_alice.height = sitting_alice.height * 2;
{if (drink_me.hitTestObject(sitting_alice))
alice_size = alice_size +1;}
}
eat_me.addEventListener(MouseEvent.MOUSE_UP, resizeAlice2);
function resizeAlice2(event:MouseEvent):void {
sitting_alice.width = sitting_alice.width / 2;
sitting_alice.height = sitting_alice.height / 2;
{if (eat_me.hitTestObject(sitting_alice))
alice_size = alice_size -1;}
}
if (alice_size == 0){
gotoAndStop (405)
}
答案 0 :(得分:0)
移动alice_size
的声明,使其成为当前类的成员。我建议对resizeAlice()
和resizeAlice2()
执行相同的操作,但您不必为它们执行此操作。此外,drink_me
和eat_me
正在侦听不同类型的事件;让他们聆听MouseEvent.MOUSE_UP
或MouseEvent.CLICK
。我不确定为什么hitTestObject()
被使用,但原因可能在于你拥有的其他代码。
答案 1 :(得分:0)
你所拥有的非常接近。
我的代码版本:
var alice_size:Number = 2;
drink_me.addEventListener(MouseEvent.MOUSE_CLICK, growAlice);
function growAlice(event:MouseEvent):void {
sitting_alice.width *= 2;
sitting_alice.height *= 2;
if (drink_me.hitTestObject(sitting_alice)) {
alice_size = alice_size +1;
}
}
eat_me.addEventListener(MouseEvent.MOUSE_CLICK, shrinkAlice);
function shrinkAlice(event:MouseEvent):void {
sitting_alice.width *= 0.5;
sitting_alice.height *= 0.5;
if (eat_me.hitTestObject(sitting_alice)){
alice_size = alice_size -1;
}
}
if (alice_size <= 0){
gotoAndStop (405);
}