2013-10-03 61 views
1

我使用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激活並在用戶按下一個單選按鈕後設置焦點,並且這些都是每次都工作。

我不知道有什麼區別的推壓來「完成」與按舞臺上的一個對象,但它拒絕將焦點設置與完成按鈕。 任何人有任何想法或做過這項工作嗎?

回答

1

我有成功assingning重點在iOS版StageText這樣的:

stageText.assignFocus(); 

StageTextTextField提供了許多優勢,因爲它顯示了一個本地文本輸入。我知道的唯一缺點是你不能使用自定義字體。

這是documentationtutorial

我還沒有「完成」鍵嘗試,但我沒有你正在努力實現與「Enter」鍵是什麼和它的工作。另外請注意,在iOS中,「完成」鍵是爲了隱藏鍵盤,所以這可能是您爲什麼會遇到這些問題。

+0

是..我看到StageText的..我寫的應用程序爲Android最初,我現在要做的iOS。因爲有這麼多,我希望不必重寫所有的文本字段。 「完成」鍵觸發與「Enter」時相同的「13」值。我想我可能最終不得不把它們全部切換到stageText,但如果有人有任何其他建議,我很樂意聽到。 – Chris

+0

如果你使用'StageText'路線,最簡單的方法就是編寫自己的包裝器,只需將經典文本字段的類更改爲「StageTextWrapper」。是的,你必須用getter/setters編寫包裝器,但是你可以保持你以前的代碼幾乎完好無損。 – Pier

+0

這是真的..我將不得不考慮一下...謝謝。你有沒有玩過基督徒的NativeText包裝?我試圖決定是否會節省時間來使用它,或者如果我應該去寫我自己的... – Chris