AS3尝试导入另一个.as文件时获取错误5001

时间:2013-11-19 18:38:02

标签: actionscript-3 flash compiler-errors

我是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

中的内容

1 个答案:

答案 0 :(得分:2)

班级中的包裹不反映您的导入。

您的类文件定义中的包应该是movingBackground.BG,否则您将收到错误消息,说明它不匹配。

如果只是为了避免混淆,将你的包命名为与你的类相同也不是一个好主意。

你也没有BG类的构造函数,我可以看到。

绝对要看一下这个答案的第一条评论,因为它有助于利用标准命名约定。遵循它们是有价值的。