1

フラッシュでフォルダ階層を作成しようとしています。私が持っているフォルダは

C:\ uk \ ac \ uwe \ webgames \ math

mathフォルダーには、GameMath.asという次のファイルがあります。

package uk.ac.uwe.webgames.math{

    public class GameMath {

// ------- Constructor -------
        public function GameMath() {

        }

// ------- Properties -------

        const PI:Number = Math.PI;


        // ------- Methods -------

public function areaOfCircle(radius:Number):Number {

        var area:Number;
        area = PI * radius * radius;
        return area;

}



    }
}

webgamesフォルダーにwebgames_driver.flaというファイルがあります

import uk.ac.uwe.webgames.math.GameMath;
import flash.text.TextField;

// Create a GameMath instance 

var output:TextField = new TextField();


var aGameMathInstance:GameMath = new GameMath();

// you will need to create a dynamic textfield called
// output on the stage to display method return value

output.text=aGameMathInstance.areaOfCircle(5).toString();
addChild(output);

//trace(aGameMathInstance.areaOfCircle(1))

ただし、次のエラーが発生します

シーン1、レイヤー'レイヤー1'、フレーム1、行1 1172:定義uk.ac.uwe.webgames.math:GameMathが見つかりませんでした。

シーン1、レイヤー'レイヤー1'、フレーム1、行1 1172:定義uk.ac.uwe.webgames.math:GameMathが見つかりませんでした。

シーン1、レイヤー'レイヤー1'、フレーム1、行5 1046:タイプが見つからなかったか、コンパイル時定数ではありませんでした:GameMath。

シーン1、レイヤー'レイヤー1'、フレーム1、5行目1180:未定義の可能性があるメソッドGameMathを呼び出します。

誰かが私が立ち往生しているcozを助けることができます、そして私は本当にフラッシュするのが初めてです

4

1 に答える 1

0

これは、あなたの利益のためだけでなく、カスタム クラスの経験があまりないこの記事を読んでいる他の人のためにも、できるだけ基本的かつ詳細な用語で説明します。今すぐすべてを公開して、混乱を避けることをお勧めします。(私の初期の質問のいくつかについて、このレベルの詳細を教えてくれたらよかったのにと思います...)

インポート コードは、.as クラスをインポートするためのものです。ご存知のように、クラスの最上位には、次のようなコードがあります (私自身のカスタム クラスである Trailcrest を除く)。

package trailcrest
{
   public class sonus
   {

次に、.fla または .as ファイルで、次を使用できます。

import trailcrest.sonus;

.fla は、インポートするすべてのカスタム クラスを含むメイン ディレクトリにある必要があります。私のファイルレイアウトは次のようなものです(括弧内のフォルダー):

MyProject.fla
MyDocumentClass.as
(trailcrest)
   sonus.as

私のパッケージ名はフォルダー構造に対応していることに注意してください.flaを含むフォルダーがコードによって開始場所と見なされます。Trailcrest.v1 のようなパッケージ名を使用する場合、フォルダーは次のようにする必要があります。

MyProject.fla
MyDocumentClass.as
(trailcrest)
   (v1)
      sonus.as

次に、次を使用してカスタム クラスを参照します。

import trailcrest.v1.sonus;

MyProject.fla は、そのフォルダー構造のメイン ディレクトリにある必要があることに注意してください。これは、Flash がフォルダを逆方向に検索できず、順方向にしか検索できないためです。だから私が次のような構造を持っていたら...

(project)
   MyProject.fla
   MyDocumentClass.as
(trailcrest)
    sonus.as

...では、コード行...

import trailcrest.sonus;

...パス「\project\trailcrest\sonus.as」を検索しますが、ご覧のとおり、存在しません。Flash は「\project\」の親フォルダーに移動できません。

あなたのコード行...

import uk.ac.uwe.webgames.math.GameMath;

...パス「webgames\uk\ac\use\webgames\math\GameMath.as」を探しています。(コードは .fla を含むフォルダーを開始場所と想定しているため、コードは文字通り " C:\uk\ac\uwe\webgames\uk\ac\use\webgames\math\GameMath.として")

これを修正するには、 GameMath.as: のパッケージを変更する必要があります

package math{

...そしてコード内の import ステートメント:

import math.GameMath;

これにより、すべてがリテラル パス " C:\uk\ac\uwe\webgames\math\GameMath.as "にポイントされます。

これがあなたの質問に答えてくれることを願っています!

于 2012-11-15T20:32:34.003 に答える