Actionscript 3 如何使用一次按入动作脚本3播放完整动画

Actionscript 3 如何使用一次按入动作脚本3播放完整动画,actionscript-3,flash,Actionscript 3,Flash,首先,很抱歉问这样一个愚蠢的问题。我是as3的新手。我正在做一个英雄般的动作,带着钥匙。我有3个动画。1待机模式2向前走,3向后走。到目前为止效果不错,但我在跳跃时遇到了问题。玩家必须按住键才能跳跃。我不想让运动员拿着钥匙进行跳跃。走路可以,但其他动作不行 所以我想用一个按键来播放完整的动画,老实说,我不知道我必须使用哪个功能,或者怎么做 这是我的密码 import flash.display.Stage; import flash.events.KeyboardEvent; import fl

首先,很抱歉问这样一个愚蠢的问题。我是as3的新手。我正在做一个英雄般的动作,带着钥匙。我有3个动画。1待机模式2向前走,3向后走。到目前为止效果不错,但我在跳跃时遇到了问题。玩家必须按住键才能跳跃。我不想让运动员拿着钥匙进行跳跃。走路可以,但其他动作不行

所以我想用一个按键来播放完整的动画,老实说,我不知道我必须使用哪个功能,或者怎么做

这是我的密码

import flash.display.Stage;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.events.Event;



kim.gotoAndStop("kim Stand");

var dPressed:Boolean = false;
var aPressed:Boolean = false;
var wPressed:Boolean = false;

stage.addEventListener(KeyboardEvent.KEY_DOWN , keyDownHandaler);
stage.addEventListener(KeyboardEvent.KEY_UP , KeyUpHandaler);
stage.addEventListener(Event.ENTER_FRAME , gameLoop);


function keyDownHandaler(Devent:KeyboardEvent):void

{
    if (Devent.keyCode == Keyboard.D)
        {
            dPressed = true;
        }
    else if (Devent.keyCode == Keyboard.A)
        {
            aPressed = true;
        }
    else if (Devent.keyCode == Keyboard.W)
        {
            wPressed = true;
        }
}


function KeyUpHandaler (Uevent:KeyboardEvent):void 

{
if (Uevent.keyCode == Keyboard.D)
    {
        dPressed = false;
        kim.gotoAndStop("kim Stand");
    }
else if(Uevent.keyCode == Keyboard.A)
    {
        aPressed = false;
        kim.gotoAndStop("kim Stand");
    }
else if(Uevent.keyCode == Keyboard.W)
    {
        wPressed = false;
        kim.gotoAndStop("kim Stand");
    }


}

function gameLoop (Gevent:Event):void

{

if (dPressed)
    {
        kim.x += 5;
        kim.gotoAndStop("kim Move Right");
    }
else if(aPressed)
    {
        kim.x -= 5;
        kim.gotoAndStop("kim Move Left");
    }
else if(wPressed)
    {
        kim.gotoAndStop("kim Jump");
    }

}

因此,假设您在关键帧5和10之间的kim MovieClip中的帧标签“kim Jump”处有一个完整的动画,您可以执行以下操作

// this will check if the jumping animation is already playing if the user press and holds the jump key and disable steerings
var jumping:Boolean;

function gameLoop (Gevent:Event):void
{

if (dPressed)
{
    kim.x += 5;

    if(!jumping)
        kim.gotoAndStop("kim Move Right");
}
else if(aPressed)
{
    kim.x -= 5;

    if(!jumping)
        kim.gotoAndStop("kim Move Left");
}
else if(wPressed)
{
    if(!jumping)
        kim.gotoAndPlay("kim Jump");

    jumping = true;
}

}
在跳跃动画的最后一帧,你需要

_parent.jumping = false;
gotoAndStop("Your label for no animation");

谢谢你的回答,但我在as3中是全新的,我仍然不知道很多函数,家长就是其中之一。所以它有一个错误,比如说访问未定义的属性\u parent。找不到任何解决方案此代码应位于跳跃动画最后一帧的kim MovieClip中。这是一部电影,对吧?然后应该有一个_parent属性,它是对父movieclip的引用