我是AS3的新手,虽然我很长时间都在寻找解决问题的方法,但我没有成功。我有一个动画演示文稿,我只想通过箭头导航。一切都在主时间轴上。在第一帧中我制作了这段代码
var zpet: Number;
if (currentFrame == 1) {
zpet = 1;
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, posun);
function posun(event: KeyboardEvent): void {
if (event.keyCode == 37) {
addEventListener(Event.ENTER_FRAME, playReverse);
function playReverse(event: Event): void {
if (currentFrame == zpet) {
stopPlayReverse();
} else {
prevFrame();
}
}
function stopPlayReverse(): void {
if (hasEventListener(Event.ENTER_FRAME)) {
removeEventListener(Event.ENTER_FRAME, playReverse);
}
}
} else if (event.keyCode == 39) {
if (currentFrame < totalFrames - 1) {
play();
} else {
stop();
}
}
}
stop();
当我将stop();
放在演示文稿的每个关键帧中时,前进工作非常完美。问题是如何回到前一个关键帧(我还想回到反向播放)。我认为如果我创建一个变量(称为“zpet”)并将其设置为每个关键帧中返回的特定帧数,这将非常容易。但它不起作用,它一直回到第1帧。例如,我在框架26中放置了代码zpet = 13;
,当从框架26回放时应该说停在第13帧。任何想法怎么解决这个?我真的很感激......
答案 0 :(得分:0)
您可以直接从时间轴标记动画的每个关键帧,然后是这样的:
function playReverse(event: Event): void
{
prevFrame();// You can also use gotoAndStop(currentFrame - 1)
if(currentFrameLabel != null)
stopPlayReverse();
}
看起来更干净,你可以在以后制作场景选择菜单时使用标签值。