8

FlashDevelop & Flash Player 11.7 (NPAPI バージョン) を使用しています。

基本的に、挿入ポイント/キャレット/テキスト カーソルの下部にランダムな白いピクセルが表示されます。これは、TextField にフォーカスがあるときに表示されます。テキストカーソルが点滅するのと同じように常に点滅しますが、間隔は異なります。それは私を夢中にさせています。

これは、数回試行した後に取得できたスクリーン グラブです。

スクリーングラブ

なぜこれを行うのですか?無効にするにはどうすればよいですか?

this._textField = new TextField();
this._textField.defaultTextFormat = new TextFormat("FleftexYC", 8, 0x000000, true);
this._textField.embedFonts = true;
this._textField.height = 13;
this._textField.type = TextFieldType.INPUT;
this._textField.x = 9;
this._textField.y = 7;

FleftexYC はカスタム/埋め込みフォントですが、それは問題ではありません。これは、Arial などのシステム フォントでも発生します。

何かご意見は?

[編集] : 11.8でも確認済み。ただし、Internet Explorer では、ピクセルは白ではなく黒です。

[編集] : Windows 7 を使用していますが、これが Mac でも発生するかどうかはわかりません。これは Google Chrome の PPAPI バージョンの Flashでは発生しませんが、NPAPI バージョンと Internet Explorer のバージョンでは発生します。

[編集] : Internet Explorer に加えて、Mozilla Firefox白いピクセルの代わりに黒いピクセルが点滅しているようです。

4

4 に答える 4

0

エラーを再現できませんが、テキスト フィールドに .cacheAsBitmap を設定すると役立つ場合があります。少し遅くなりますが、自分で試してみる必要があります。

于 2013-07-26T11:15:40.493 に答える
0

HTML ファイルを Flash からパブリッシュしていない場合は、パブリッシュ コード全体をページにコピーしてみてください。

于 2013-08-02T13:25:44.430 に答える
0

説明どおりに問題を切り分けるテスト クラスを作成しましたが、問題は再現しません。フラッシュ開発で新しいプロジェクトを作成し、任意のブラウザーでテストして、問題が上記のコードのいずれによっても引き起こされていないことを確認できるはずです。

「テスト」に値を割り当てて選択を設定した場合など、プログラムの他の部分が原因である可能性があります。ただし、これを実行することで、いくつかの考えられる原因を排除できます。

このコードを実行しているマシンに問題がある場合は、フラッシュのバージョンが壊れている可能性があります。削除して再インストールすると修正されるはずです。または、フラッシュが非標準の方法でコンパイルされる原因となっているそのマシンの他の固有の側面があります。(しかし、その価値のために、これはほとんどありそうにありません)

別の可能性はブラウザです。ブラウザのズームが 0 に設定されていますか? これもありそうにない。stage3D のような他の API を使用していますか? カスタムアンチエイリアス?

これが私のクラスです:

    package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.text.TextFormat;

    /**
     * ...
     * @author Zachary Foley
     */
    public class Main extends Sprite 
    {
        //[Embed(source='C:/WINDOWS/Fonts/verdana.ttf', fontFamily="Verdana", fontWeight="regular", embedAsCFF="false")]
        [Embed(source='C:/WINDOWS/Fonts/arial.ttf', fontFamily="Verdana", fontWeight="regular", embedAsCFF="false")]
        public var Verdana:Class;

        private var mytextfield:TextField = new TextField();
        private var mytextformat:TextFormat = new TextFormat();
        private var _textField:TextField;

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // entry point
            this._textField = new TextField();
            this._textField.defaultTextFormat = new TextFormat("Verdana", 8, 0x000000, true);
            this._textField.embedFonts = true;
            this._textField.height = 13;
            this._textField.type = TextFieldType.INPUT;
            this._textField.x = 9;
            this._textField.y = 7;
            this._textField.text = "Test";
            addChild(_textField);
        }

    }
}
于 2013-08-03T00:20:46.063 に答える
0

Flash の TextField は、アプリが複雑になるにつれて、奇妙なレンダリングの問題が発生することで有名です。彼らは大丈夫だろうが、突然、一見関係のない変化がすべてを吹き飛ばす. 急な学習曲線がありますが、TLF フィールドに切り替えてください。はるかに安定しています。

于 2013-11-03T02:57:41.183 に答える