0

我是 AS3 的新手。我使用 FlashDevelop 4。我没有 Adob​​e Flash,只有 FD(纯 AS3) 我的类路径有问题。我搜索了数据库,但没有发现任何可以帮助我的东西。所以问题如下。

我在 C:\AS App\Testing 中有项目“Testing”,文件为 Main.as。我还有文件夹 C:\AS App\W_T。在此文件夹中是文件 write_text.as。文件 Main.as 如下所示:

package
{
import flash.display.*;
import flash.text.TextField;
import flash.events.*;
import W_T.write_text;
public class Main extends Sprite
{
    var t:TextField=new TextField();

    public function Main():void
    {
            stage.addChild(t);
            stage.addEventListener(MouseEvent.CLICK, write);
    }

    public function write(me:MouseEvent):void
    {
        var wt:W_T.write_text = new W_T.write_text();
            t.x = 100;
            t.y = 100;          
            t.text = wt.output();
    }
}
}

文件 write_text.as 如下所示:

package W_T
{
import flash.display.*;
import flash.text.TextField;
import flash.events.*;
import W_T.*;

public class write_text
{
    public function write_text()
    {
    }

    public function output():String 
    {
        var txt:String;

        txt = "From function !";
        return(txt);
    }
}
}

我在全局类路径中制定了适当的规范。但我收到以下错误:

错误:找不到类型或不是编译时常量:write_text。var wt:W_T.write_text = new W_T.write_text();

错误:调用可能未定义的方法 write_text。var wt:W_T.write_text = new W_T.write_text();

找不到定义 W_T:write_text。导入 W_T.write_text;

你能帮我找出我做错了什么吗?

谢谢你。

EB

4

2 回答 2

1

问题是编译器没有找到您的 write_text.as 文件。默认情况下,它将在此处查看:

C:\AS App\Testing\W_T\write_text.as

尝试相应地调整,看看它是否有效。当您声明package W_T { }flash 时,将在名为 W_T 的子文件夹中查找与公共类同名的文件。

当您只是简单地package { }没有名称声明时,它将在您的类库路径的根目录中查找,如果您的 main.as 文件所在的位置似乎是一个名为“测试”的文件夹,那么它似乎是一个文件夹。

如果您想为您的类文件使用一个公共文件夹(不嵌套在单个项目文件夹中),您可以通过以下方式告诉 flash development 在哪里找到它们:项目 -> 属性,然后是类路径选项卡。默认情况下,flash develop 只会在与项目相关的文件夹中查找。

于 2012-08-21T20:16:18.767 回答
0

问题是你没有告诉编译器(flex?)在哪里可以找到文件。当您将它添加为类路径时,您只会告诉 flash development 在哪里找到文件,而不是编译器。

首先,您必须检查如何编译,其次是如何为您的解决方案更改和添加类路径。

我通常通过 ant 脚本和 build.xml 文件执行此操作,不幸的是,我不记得“纯 as3”项目在编译方面是如何工作的

于 2012-08-21T19:46:12.820 回答