我使用Flash Pro中CS6,AS3,Air3.8下一個。而我使用文本框輸入。我試圖做到這一點,當用戶按下「完成」它將轉移到下一個領域。我在所有的論壇上都發現有關這方面的信息有衝突,包括這個。我做了搜索,但從未找到了解決.. 我肯定接受的事件,我嘗試添加標識的鍵碼線,這已證實,它正在接收鍵盤碼13.我實際上是由它把鍵碼到我想要的場重點轉移到成功..它只是拒絕把重點放在該領域..AS3 /空調移焦點從一個文本字段在IOS
我使用的代碼是在文檔中聲明,它不會在iOS中工作..但它的工作進一步沿着同一頁面的腳本,以及另外兩個的...我:
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyhandler);
function keyhandler(event:KeyboardEvent){
if(event.charCode == 13)
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyhandler);
stage.focus = null;
stage.focus = nextTextField;
}
}
我試過了,而首先將監聽到文本字段,然後將其改爲階段,既沒有工作。我嘗試過「requestsSoftKeyboard」和切斷人其他方面,我已經看到張貼在IOS據說工作,但他們沒有工作。有使用相同stage.focus爲null等功能,其次是stage.focus到myTextField將和他們的工作,但他們啓動按下舞臺上的按鈕,而不是軟鍵盤上的按鈕。該工程存在的代碼是一個標準的if語句:
if (TextField == "")
{
stage.focus=null;
stage.focus=TextField;
}else if (NextTextField == "")
{
stage.focus = null;
stage.focus = NextTextField;
}else if (TextFieldAfterThat == "")
{
stage.focus = null;
stage.focus = TextFieldAfterThat;
}
這繼續通過各方面,始終轉到正確的用軟鍵盤打開時,光標閃爍,並準備鍵入..每一次。我知道聽衆是從軟鍵盤「完成」收到的,因爲大寫字母的功能起作用,並且當我添加了代碼以確認其工作的鍵碼時。我也有使用「則charCode」 AND「鍵碼」。我不知道有什麼區別發現訪問該值,但都返回13和沒有工作對我來說.. 還有另外一個地方,我使用相同的代碼,使一個TextField激活並在用戶按下一個單選按鈕後設置焦點,並且這些都是每次都工作。
我不知道有什麼區別的推壓來「完成」與按舞臺上的一個對象,但它拒絕將焦點設置與完成按鈕。 任何人有任何想法或做過這項工作嗎?
是..我看到StageText的..我寫的應用程序爲Android最初,我現在要做的iOS。因爲有這麼多,我希望不必重寫所有的文本字段。 「完成」鍵觸發與「Enter」時相同的「13」值。我想我可能最終不得不把它們全部切換到stageText,但如果有人有任何其他建議,我很樂意聽到。 – Chris
如果你使用'StageText'路線,最簡單的方法就是編寫自己的包裝器,只需將經典文本字段的類更改爲「StageTextWrapper」。是的,你必須用getter/setters編寫包裝器,但是你可以保持你以前的代碼幾乎完好無損。 – Pier
這是真的..我將不得不考慮一下...謝謝。你有沒有玩過基督徒的NativeText包裝?我試圖決定是否會節省時間來使用它,或者如果我應該去寫我自己的... – Chris