我正在嘗試處理TextField上的焦點事件,因此我可以在對焦(選項卡或單擊)時選擇所有文本。好像我在這裏做錯了什麼?AS3:TextField Focus
txtTextField.addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
function handleFocusIn() {
//select all text here
}
我正在嘗試處理TextField上的焦點事件,因此我可以在對焦(選項卡或單擊)時選擇所有文本。好像我在這裏做錯了什麼?AS3:TextField Focus
txtTextField.addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
function handleFocusIn() {
//select all text here
}
你handleFocusIn
應該有簽名
function handleFocusIn(event:FocusEvent) // or just Event
我曾在一個發展(閃存)的原型相類似的問題。 一個textfield根本沒有觸發FocusEvent.FOCUS_OUT事件。 問題是我在舞臺上有一個Button組件。 只要我用從頭開始創建的自定義按鈕替換了Flash Button組件實例,我就可以使用它了。 我一直無法通過互聯網找到這個錯誤和解決方案。
使用舞臺上的Button組件,我只在第一次點擊它時才獲得FOCUS_IN事件。 之後,我既沒有收到FOCUS_OUT也沒有收到FOCUS_IN事件。
我希望這可以幫助任何人。
我需要同樣的東西,當它接收焦點時選擇文本字段的內容。
我嘗試:
A)一個FocusEvent後簡單地選擇。這似乎並不奏效(我的猜測是FocusEvents在正在處理鼠標單擊之前觸發,這反過來會撤消選擇)。 B)選擇每次點擊鼠標。這是有效的,但這對於稍後僅想選擇文本的一部分的用戶來說非常煩人,因爲這種嘗試總是會導致所有內容被選中。
以下解決方法似乎工作,雖然:
myTextField.addEventListener(MouseEvent.CLICK, selectAllOnce);
function selectAllOnce(e:MouseEvent) {
e.target.removeEventListener(MouseEvent.CLICK, selectAllOnce);
e.target.addEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
selectAll(e);
}
function addSelectListener(e:FocusEvent) {
e.target.addEventListener(MouseEvent.CLICK, selectAllOnce);
e.target.removeEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
}
function selectAll(e:Event) {
e.target.setSelection(0, e.target.getLineLength(0));
}
希望有所幫助。我個人認爲,如果Adobe爲這個TextField對象添加了一個選項,這將是最合乎邏輯的。
我正在做我這樣的處理程序。工程就像一個魅力:
private function onFocusIn(e:FocusEvent):void
{
setTimeout(title.setSelection, 100, 0, e.target.text.length);
}
你可以找到用戶不會只選擇這樣的文本的一部分:
private function clickHandler(e:MouseEvent){
if(tfield.selectionBeginIndex == tfield.selectionEndIndex){
tfield.setSelection(0, tfield.length);
}
}
簡單的解決辦法是:
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.FocusEvent;
tf.addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
function handleFocusIn(e:FocusEvent):void
{
tf.addEventListener(MouseEvent.MOUSE_UP, preventLosingSelection);
tf.setSelection(0, tf.length);
stage.focus = tf;
}
function preventLosingSelection(e:MouseEvent):void
{
tf.removeEventListener(MouseEvent.MOUSE_UP, preventLosingSelection);
tf.setSelection(0, tf.length);
stage.focus = tf;
}
希望這有助於爲將來有人!