0

私はAS3で非常に新しいです。FlashDevelop 4 を使用しています。Adobe Flash はありません。FD (純粋な AS3) だけです。クラスパスに問題があります。データベースを検索しましたが、役に立ちそうなものは何も見つかりませんでした。というわけで問題は以下の通り。

C:\AS App\Testing にファイル Main.as を含む "Testing" プロジェクトがあります。また、フォルダー 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 ファイルが存在する場所である場合、Testing という名前のフォルダーのようです。

クラス ファイルに共通のフォルダー (個々のプロジェクト フォルダーにネストされていない) を使用する場合は、プロジェクト -> プロパティ、次に [クラスパス] タブに移動して、フラッシュ開発にそれらを見つける場所を伝えることができます。デフォルトでは、フラッシュ開発はプロジェクトに関連するフォルダーのみを検索します。

于 2012-08-21T20:16:18.767 に答える
0

問題は、ファイルの場所をコンパイラー(flex?)に伝えていないことです。クラスパスとして追加する場合は、コンパイラではなく、ファイルの場所をフラッシュ開発に指示するだけです。

まず最初に、コンパイル方法を確認し、次に、ソリューションのクラスパスを変更および追加する方法を確認する必要があります。u

私は通常、antスクリプトとbuild.xmlファイルを使用してこれを行いますが、残念ながら、コンパイルに関して「純粋なas3」プロジェクトがどのように機能しているかを思い出せません。

于 2012-08-21T19:46:12.820 に答える