Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3 flashdevelop中的类路径_Actionscript 3_Flashdevelop - Fatal编程技术网

Actionscript 3 as3 flashdevelop中的类路径

Actionscript 3 as3 flashdevelop中的类路径,actionscript-3,flashdevelop,Actionscript 3,Flashdevelop,我是AS3的新手。我使用flash4。我没有AdobeFlash,只有FD(纯AS3)我的类路径有问题。我搜索了数据库,但没有找到对我有帮助的东西。因此,问题如下 我在C:\AS App\Testing中有一个项目“Testing”,文件Main.AS。我还有文件夹C:\AS App\W\T。在这个文件夹中有文件write\u text.AS。Main.as文件如下所示: package { import flash.display.*; import flash.text.TextField;

我是AS3的新手。我使用flash4。我没有AdobeFlash,只有FD(纯AS3)我的类路径有问题。我搜索了数据库,但没有找到对我有帮助的东西。因此,问题如下

我在C:\AS App\Testing中有一个项目“Testing”,文件Main.AS。我还有文件夹C:\AS App\W\T。在这个文件夹中有文件write\u 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();
    }
}
}
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.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();
    }
}
}
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=新W_T.write_text()

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

定义:找不到写入文本。 导入W_T.写入文本

你能帮我找出哪里做错了吗

多谢各位


EB

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

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


我通常通过ant脚本和build.xml文件来实现这一点,不幸的是,我记不起“纯as3”项目在编译方面是如何工作的。问题是编译器找不到write_text.as文件。默认情况下,它将在此处查看:

C:\AS App\Testing\W\u T\write\u text.AS

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

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


如果要为类文件使用公共文件夹(不嵌套在单个项目文件夹中),可以通过转到:project->properties,然后转到Classpaths选项卡,告诉flash develop在哪里可以找到它们。默认情况下,flash develop将只查找与项目相关的文件夹。

我不清楚:“package W\u T”不在文件夹C:\AS App\Testing中,而是在文件夹C:\AS App\中。因此,文件write_text.as在文件夹C:\as App\W\u T中。谢谢。我知道,我是说它不工作,因为它希望它在C:\as App\Testing\W\T中。Thanx,现在正在工作,一切正常。我想知道为什么在我指定路径时它不起作用(我的意思是在项目属性或全局设置中指定路径)。再次使用Thabx。如果文件夹位于C:\AS APP\W\u T\write\u text.AS,则必须将其添加为APP才能工作。但是,由于您的项目是AS应用程序的子文件夹,因此可能会产生奇怪的结果。无论您指定什么路径,它都将在名为W_T的子文件夹中查找,因为这是您声明包的方式。因此,如果您在项目属性中将路径C:\AS App\W\u T\添加为类路径(我怀疑您正在尝试),它将在C:\AS App\W\u T\W\u T\write\u text.AS中查找您的文件。如果此答案最有助于您解决问题,请将其标记为正确。还要投票选出其他有用的人的答案