为啥此代码在 ActionScript 面板中有效,而在 ActionScript 文件中无效?我该如何解决这个问题?

Posted

技术标签:

【中文标题】为啥此代码在 ActionScript 面板中有效,而在 ActionScript 文件中无效?我该如何解决这个问题?【英文标题】:Why does this code work in the ActionScript Panel and not in the ActionScript file? How can I solve this?为什么此代码在 ActionScript 面板中有效,而在 ActionScript 文件中无效?我该如何解决这个问题? 【发布时间】:2013-11-29 09:54:36 【问题描述】:

目标是让背景不断循环(横向滚动类型的游戏)。我在网上找到了一些代码,它可以在 Flash 的“操作”面板中运行,但是有人告诉我,我的“操作”面板中不能有任何内容,并且我的所有代码都必须在 ActionScript 文件 (.as) 中。有没有办法在 actionscript 文件中而不是在操作窗口中执行此代码?如何? - 非常感谢,我真的很感激!

//The speed of the scroll movement.
var scrollSpeed:uint = 2;

//This adds two instances of the movie clip onto the stage.
var s1:ScrollBg = new ScrollBg();
var s2:ScrollBg = new ScrollBg();
addChild(s1); 
addChild(s2);

//This positions the second movieclip next to the first one.
s1.x = 0;
s2.x = s1.width;

//Adds an event listener to the stage.
stage.addEventListener(Event.ENTER_FRAME, moveScroll); 

//This function moves both the images to left. If the first and second 
//images goes pass the left stage boundary then it gets moved to 
//the other side of the stage. 
function moveScroll(e:Event):void
s1.x -= scrollSpeed;  
s2.x -= scrollSpeed;  

if(s1.x < -s1.width)
s1.x = s1.width;
else if(s2.x < -s2.width)
s2.x = s2.width;


【问题讨论】:

【参考方案1】:
package 
  import flash.display.MovieClip;
  import flash.events.Event;

  public class Main extends MovieClip

    //The speed of the scroll movement.
    var scrollSpeed:uint = 2;

    //This adds two instances of the movie clip onto the stage.
    var s1:ScrollBg = new ScrollBg();
    var s2:ScrollBg = new ScrollBg();
    addChild(s1); 
    addChild(s2);

    //This positions the second movieclip next to the first one.
    s1.x = 0;
    s2.x = s1.width;

    //Adds an event listener to the stage.
    stage.addEventListener(Event.ENTER_FRAME, moveScroll); 

    //This function moves both the images to left. If the first and second 
    //images goes pass the left stage boundary then it gets moved to 
    //the other side of the stage. 
    function moveScroll(e:Event):void
      s1.x -= scrollSpeed;  
      s2.x -= scrollSpeed;  

      if(s1.x < -s1.width)
        s1.x = s1.width;
      else if(s2.x < -s2.width)
        s2.x = s2.width;
      
    
  

更改您所拥有的内容并将其作为 .as 文件保存到您的主 .fla 所在的同一文件夹中。

编辑 另外,请确保在您的主 .fla 文件中将主类设置为 Main.as,如果您不知道它在哪里,那么只需查找它。

【讨论】:

以上是关于为啥此代码在 ActionScript 面板中有效,而在 ActionScript 文件中无效?我该如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章

为啥此 python 代码在 pyspark 中有效,但在 spark-submit 中无效?

使用 mxml 脚本代码连接 ActionScript 类(Socket)

SMTP - SSL 证书问题 - C# - 为啥此代码有效?

为啥此计时器中的 alpha 在此 Java Swing 面板中绘制在其自身之上?

为啥此查询字符串在 Access 中有效,但在 C# 中无效?

为啥此代码有效(具有无效非模板函数的 C++ 模板类)? [复制]