0

フラッシュでプリロード画面を作成しました。progressBar を含むプリローダー MovieClip と progressText MC-s の両方が作成されました。preLoader クラスでは、次のようなコードを使用します。

... ldrInf.addEventListener(ProgressEvent.PROGRESS, onProgress); ...

private function onProgress(e:ProgressEvent):void {
        var percent:Number = e.bytesLoaded / e.bytesTotal;
        progressBar.scaleX = percent;           
        progressText.text = Math.floor(percent * 100).toString() + "%";
    }

スケーリングはうまく機能しますが、テキストは変化しません。「ステージインスタンスを自動的に宣言する」をオンに設定しましたが、そのようなエラーが発生しました (問題を解決する必要があるかどうかはわかりませんが、とにかく): ReferenceError: エラー # 1065: 変数 Font1 が定義されていません。

また、ProgressText MC のクラスを作成すると、次のエラーが表示されます。クラスにテキストプロパティがないためだと思いますが、テキスト変数は、テキストフィールド用の組み込み変数のようなものなので、定義する必要はないかもしれません。

助けてください

4

1 に答える 1

1

フォントの埋め込みに失敗しているように思えます。TextFormatインスタンスのを設定した場所にコードを投稿できれば便利ですがTextField、フォントを直接「Arial」に設定するか、その行を完全にコメントアウトして、問題の原因として除外することもできます。

カスタム クラスを作成する場合TextField(このインスタンスで完全に必要かどうかは明らかではありません) TextField、カスタム クラスでクラスを拡張するか (この場合、プロパティを継承しTextField.textます)、または setter を実装する必要があります。TextFieldクラスのプロパティとして格納されたインスタンスにテキストを設定する独自のもの。

TextField の拡張 (継承) の例:

package 
{
    import flash.text.TextField;

    public class CustomTextField extends TextField
    {
        public function CustomTextField()
        {

        }

        override public function set text(value:String):void
        {
            // could do custom stuff here or omit override altogether if it isn't required
            value = "custom " + value;

            super.text = value;
        }
    }
}  

TextField プロパティ (構成) の例:

package 
{
    import flash.text.TextField;

    public class CustomTextField extends Sprite
    {
        private var textField:TextField = new TextField();

        public function CustomTextField()
        {
            this.addChild(textField);
        }

        public function setText(value:String):void
        {
            textField.text = value;
        }
    }
}
于 2012-08-31T21:37:49.470 に答える