我是AS3的新手,仍然试着绕过它。 我正在尝试编写一个非常简单的平台游戏。目前,我试图通过移动背后的背景让玩家看起来感动。所以,我已经制作了一个单独的.as文件来包含使背景移动的简单逻辑。它的标题是BG.as并且我之前能够导入一个具有该确切名称的文件而没有任何问题,但现在它对我来说是一种气质。我已经进入我的AS3 Pref's flash并设置了根文件夹的文件路径,包含根文件夹的文件夹,甚至包含文件本身的文件夹。 .as文件和.fla文件都在同一个文件夹中,但我仍然收到错误5001,声明BG的名称不反映该位置的文件。我已经尝试将文件路径写为包的名称,依此类推。如果有人知道这个问题可能是什么,我将不胜感激。 这是我的代码。
import movingBackground.BG.*;
这只是我的.fla文件中的import语句。 movingBackground是它所在文件夹的名称。
package BG
{
import flash.events.EventDispatcher;
import flash.events.Event;
public class BG
{
public function loop(event:Event):void
{
if(leftPressed)
{
BG.x += xScrollSpeed;
}
else if(rightPressed)
{
BG.x -= xScrollSpeed;
}
else if(upPressed)
{
BG.y += yScrollSpeed;
}
else if(downPressed)
{
BG.y -= yScrollSpeed;
}
}
stage.addEventListener(Event.ENTER_FRAME, loop);
}
}
这是我的BG.as文件。
~~~~~ EDIT :: ~~~~~~~ 好的,所以我已经重命名了,重命名似乎已经解决了错误5001,但是有一个新问题。现在似乎无法弄清楚我要导入的类是否存在。
Scene 1, Layer 'Code', Frame 1, Line 6 1180: Call to a possibly undefined method bg.
Scene 1, Layer 'Code', Frame 1, Line 6 1046: Type was not found or was not a compile-time constant: bg.
Scene 1, Layer 'Code', Frame 1, Line 4 1172: Definition thebackground:bg could not be found.
Scene 1, Layer 'Code', Frame 1, Line 4 1172: Definition thebackground:bg could not be found.
它可能与我输入错误有关,但是这个错误可能是我不能说我有任何想法。我添加了一个构造函数来实例化bg(至少我认为我做过。)将继续寻找更多信息。 话虽如此,这是我迄今为止编辑的内容:
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.events.KeyboardEvent;
import thebackground.bg;
var testbg:bg = new bg;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
var upPressed:Boolean = false;
var downPressed:Boolean = false;
testbg.moveBackGround();
这就是我目前主要的.fla文件中的内容。
package thebackground
{
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.display.MovieClip;
public class bg extends MovieClip
{
var xScrollSpeed:int = 10;
var yScrollSpeed:int = 10;
public function moveBackGround(event:Event):void
{
if(leftPressed)
{
BG.x += xScrollSpeed;
}
else if(rightPressed)
{
BG.x -= xScrollSpeed;
}
else if(upPressed)
{
BG.y += yScrollSpeed;
}
else if(downPressed)
{
BG.y -= yScrollSpeed;
}
}
}
}
这就是新重命名的thebackground.as
中的内容答案 0 :(得分:2)
班级中的包裹不反映您的导入。
您的类文件定义中的包应该是movingBackground.BG
,否则您将收到错误消息,说明它不匹配。
如果只是为了避免混淆,将你的包命名为与你的类相同也不是一个好主意。
你也没有BG类的构造函数,我可以看到。
绝对要看一下这个答案的第一条评论,因为它有助于利用标准命名约定。遵循它们是有价值的。