【问题标题】:Adobe Flash Pro CS6 movie looping after adding code to actionpanel将代码添加到操作面板后,Adobe Flash Pro CS6 电影循环播放
【发布时间】:2014-01-17 23:26:43
【问题描述】:

我有一个问题,无法弄清楚。当我测试场景时一切都很好,我添加了 stop();到我的电影剪辑时间线,一切都很好,直到没有代码添加到主舞台。一旦我开始向舞台添加代码,它就会开始循环?因此,我遇到了一个问题,甚至无法进一步开发,因为即使是鼠标单击事件也不会对该循环起作用...我要添加的代码只是单击播放按钮后一个简单的移动层离开舞台:

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;





introScreen.play_btn.addEventListener(MouseEvent.CLICK, clickAway);
    function clickAway(event:MouseEvent):void
    {
        moveScreenOff(introScreen);
    }

    function moveScreenOff(screen:MovieClip):void
    {
        //Move the screen off...
        var introTween = new Tween(screen,"x",Strong.easeInOut,screen.x,(screen.width)*-1,1,true);
        //When the motion has finished...
        introTween.addEventListener(TweenEvent.MOTION_FINISH, tweenFinish);
        function tweenFinish(e:TweenEvent):void
        {
            trace("tweenFinish");
            //Establish the game state...
            gameState = STATE_INIT_GAME;
            trace(gameState);
            //Fire off the gameLoop function at the frame rate of the movie...
            addEventListener(Event.ENTER_FRAME, gameLoop);
        }
    }

【问题讨论】:

  • 这个职位是实习生,他们给了我一个任务来为安卓创建一个基本的 Flash 应用程序。你是什​​么意思问题没有信息?没有代码,因为我在开始编写它之前就想出了这个问题,所以......有闪存的链接,如果有人可以看看并尝试添加任何代码,我将非常感激,我正在添加鼠标单击事件以从介绍屏幕反弹,它不起作用,而是使电影循环。 filedropper.com/veinsv2
  • As soon as i start adding code to the stage, it starts looping? -> 请显示您尝试自己添加的代码。否则,这个问题很快就会结束,因为到目前为止它还没有表现出太多自己的努力,不幸的是。
  • 请将其编辑到问题中。使用{} 代码按钮缩进它。
  • 我已将代码添加到主题中。

标签: actionscript-3 flash adobe


【解决方案1】:

您的动画连续循环的原因是您的代码中有错误。

Access of undefined property gameState.
Access of undefined property STATE_INIT_GAME.
Access of undefined property gameState.
Access of undefined property gameLoop.

您正在尝试引用尚未创建或不存在的成员。您的主时间线从第 1 帧开始,您引用的代码尝试访问这些变量和 gameLoop 方法。您需要在第一帧中设置变量以允许引用它们。即在您的导入语句下:

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var gameState:String;
const STATE_INIT_GAME:String = "GAME_INIT";

那么你需要添加gameLoop函数:

function gameLoop(e:Event):void {
    trace('game loop running');
}

如果您不想在那里设置这些变量和函数,那么您需要使用gotoAndStop 或gotoAndPlay 进入框架,在那里可以声明和/或初始化这些函数和变量,并将其存储到内存中。然后它们就可以访问了。

【讨论】:

  • 这是有道理的,变量尚未创建,但我没有意识到它使电影循环。但是,无论鼠标单击正在调用一个补间函数以缓解舞台上的 In Out,但按钮不会对单击做出反应,导入语句是否应该正常工作
  • 您似乎对 import 语句的工作方式有些困惑。它们只允许您访问和使用导入的类,它不能解决您当前的任何错误。目前,您的导入只允许您使用Tween、TweenEvent 常量和缓动常量,仅此而已。至于您的点击侦听器不起作用(这是一个单独的问题),那是由于您在 introScreen 显示对象中的实例命名问题。您在关键帧 9、10 和 24 的 introScreen 时间轴中没有实例名称 play_btn。
  • 是的,我有点困惑,因为我从来没有任何编程经验。但我现在开始收拾东西了。现在一切都在运行,介绍开始,结束游戏跟踪调用结束屏幕等。现在我将深入研究如何编写实际游戏引擎的教程。谢谢先生。 p1on,你帮我走出了死胡同,现在导航更容易了
猜你喜欢
  • 2013-08-26
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
相关资源
最近更新 更多