AS2で奇妙な動作が発生し、createTextField()を使用してステージに追加されたtextFieldでフォントを使用しています。これは元々Yearと書かれているtextFieldのためのもので、ユーザーは年を入力してOKをクリックし、年が受け入れられた後、textFieldはYearを返します。embedFonts = trueとtextField.onSetFocus()を同時に使用すると問題が発生する
1)ユーザーは、TextField、単語「年をクリックした - 私は、これは常にサンセリフフォント、などのArial(!確かにこれは難しいことカント)ここで
は私が達成したいものであるようにしたいです"がクリアされ、カーソルが点滅していれば、テキストを入力できることを示します。 2)ユーザーが[OK]をクリックする(と提供年は4桁の数字である)テキストフィールドは、Arialの中で(バック「イヤー」と言っへ行く)
私のコード -
this.createTextField("uiYear", 99, 0, 0, 65, 20);
uiYear.type = "input";
uiYear.antiAliasType="advanced";
uiYear.restrict = "0-9";
//
var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "Arial";
my_fmt.size = 12;
my_fmt.align = "left";
//
uiYear.embedFonts = true;
uiYear.setTextFormat(my_fmt);
uiYear.text = "Year";
//
uiYear.onSetFocus = function() {
if(uiYear.text == "Year") {
uiYear.text = "";
}
}
//
button_ok.onRelease = function() {
uiYear.text = "Year";
}
OK権利が見えますか?私は気づい何
はこれです -
私は、TextFieldに「年」は点滅カーソルのdoesntの示すが消えて、私は、TextFieldにテキストを入力カント単語をクリックします。私は行削除する場合 -
uiYear.embedFonts = true;
を...それは単語「年」は消え、私はTextFieldをクリックしたときに、私は、TextFieldに番号を入力することができ、[OK]を動作します。したがって、フォントの埋め込みは、onSetFocus関数がトリガされた後にtextFieldにフォーカスが設定されないように思われます。しかし、私が今入力したテキストはArialではなく、OKボタンをクリックすると "Year"という単語がSeifフォントに置き換えられます(Timesなど)。私はそれを望んでいない!
同様に私のライブラリからフォントを埋め込もうとすると、私はライブラリに新しいフォントを持っていて、リンケージ識別子year_fontを持つactionscriptにエクスポートし、my_fmt.font = my_fontを変更して、リンケージダイアログ。次に、textFieldをクリックすると、Yearという単語が消えますが、textFieldを編集することはできません。
私はちょうどonSetFocusが問題を引き起こしていることを受け入れ、より良い、私はより多くちゃったごめんなさいを持って見えた埋め込みフォントを維持して行く場合 -
- 私は、TextFieldをクリックすると、カーソルが今の単語の後に表示されます単語を削除するonSetFocus関数を削除したので、私が期待していたように "Year"を返します。だから、バックスペースを4回押して「年」を削除して何らかの理由でカーソルが消えたら、テキストを入力することはできません。これはローカルでテストするときには発生しませんが、ブラウザで公開され実行されている場合にのみ問題になります。
- 「Year」という単語を強調表示してから入力を開始すると、数字を入力することができます.OKボタンを押すと、単語yearが正しいフォントで表示されます。不思議なことに、上記の数字1の動作はもう起こりません。私がカーソルを保持している年の単語を削除するためにdeleteを押すと、もう一度入力することができます。ナンバー1は初めてのようだ。
おかげ