【问题标题】:classpath in as3 flashdevelopas3 flashdevelop中的类路径
【发布时间】:2012-08-21 19:35:18
【问题描述】:

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

【问题讨论】:

    标签: actionscript-3 flashdevelop


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我不清楚:'package W_T' 不在文件夹 C:\AS App\Testing 中,而是在文件夹 C:\AS App\ 中。因此,文件 write_text.as 位于文件夹 C:\AS App\W_T 中。谢谢。
    • 我知道,我是说它不起作用,因为它期望它位于 C:\AS App\Testing\W_T
    • 嗨。谢谢,现在可以正常工作了。我想知道为什么当我像我一样指定路径时它不起作用(我的意思是在项目属性或全局设置中指定路径)。又是 Thabx。
    • 如果文件夹位于 C:\AS App\W_T\write_text.as,您必须添加文件夹 AS APP 才能正常工作。但是,由于您的项目是 AS APP 的子文件夹,因此可能会产生奇怪的结果。无论您指定什么路径,它都会在名为 W_T 的子文件夹中查找,因为这就是您声明包的方式。因此,如果您在项目属性中添加路径 C:\AS App\W_T\ 作为类路径(我怀疑您正在尝试),它将在 C:\AS App\W_T\W_T\ 中查找您的文件write_text.as.
    • 如果此答案最能帮助您解决问题,请将其标记为正确。还要对人们提出的任何其他有用的答案进行投票
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-11
      • 2019-09-23
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 2010-12-08
      • 1970-01-01
      相关资源
      最近更新 更多