diff --git a/popForm/PopField.as b/popForm/PopField.as index 927049c3..f668cd85 100644 --- a/popForm/PopField.as +++ b/popForm/PopField.as @@ -14,6 +14,8 @@ import flash.utils.setTimeout; import contents.alert.Alert; import animation.Anim_Frame_Controller; + import flash.events.KeyboardEvent; + import flash.ui.Keyboard; /**Text field is changed*/ [Event(name="change", type="flash.events.Event")] @@ -21,6 +23,7 @@ [Event(name="render", type="flash.events.Event")] public class PopField extends PopFieldInterface { + private var myTXTs:Array ; private var myTXT:TextField ; //private var _letSelectByCLick:Boolean = false ; @@ -41,6 +44,7 @@ private var radioButtonArray:Array ; + private var nativeKeyBoards:Vector. ; private var nativeKeyBoard:FarsiInputCorrection ; private var isEditable:Boolean; private var IsArabic:Object; @@ -79,6 +83,10 @@ { if(isEditable) { + if(myTXTs.length>1) + { + return data; + } return myTXT.text ; } else @@ -110,8 +118,16 @@ if(isEditable) { + if(myTXTs.length>1) + { + update(value); + return; + } myTXT.text = lastTXT ; + + myTXT.removeEventListener(Event.CHANGE, dispatchRenderEventForMe); myTXT.dispatchEvent(new Event(Event.CHANGE)); + myTXT.addEventListener(Event.CHANGE, dispatchRenderEventForMe); } else { @@ -143,28 +159,54 @@ { if(data!=null) { - myTXT.text = data as String ; - myTXT.dispatchEvent(new Event(Event.CHANGE)); + var newtext:String = String(data); + if(myTXTs.length>1) + { + for(var i:int = 0 ; ii?newtext.charAt(i):'' ; + atext.removeEventListener(Event.CHANGE, dispatchRenderEventForMe); + atext.dispatchEvent(new Event(Event.CHANGE)); + atext.addEventListener(Event.CHANGE, dispatchRenderEventForMe); + } + } + else + { + myTXT.text = newtext ; + myTXT.dispatchEvent(new Event(Event.CHANGE)); + } } } override public function get data():* { - text = myTXT.text; + if(myTXTs.length>1) + { + lastTXT = '' ; + for(var i:int = 0 ; i1) + { + (nativeKeyBoards[nativeKeyBoards.length-1] as FarsiInputCorrection).onEnterPressed(func); + } + else + { + nativeKeyBoard.onEnterPressed(func); + } + } + } + + private function nextField(currentTextField:TextField):void + { + var currentTextFieldIndex:int = myTXTs.indexOf(currentTextField); + trace("Next field to "+currentTextFieldIndex+" is editing>"+(nativeKeyBoards!=null && currentTextFieldIndex!=-1?nativeKeyBoards[currentTextFieldIndex].editing:'')); + if(nativeKeyBoards!=null && currentTextFieldIndex!=-1 && nativeKeyBoards[currentTextFieldIndex].editing) { - nativeKeyBoard.onEnterPressed(func); + nativeKeyBoards[currentTextFieldIndex].closeKeyBoard(false); + trace("\t"+currentTextFieldIndex+" vs "+(nativeKeyBoards.length-2)); + if(currentTextFieldIndex+1"+nativeKeyBoards[currentTextFieldIndex].editing); + if(currentTextFieldIndex!=-1 && nativeKeyBoards[currentTextFieldIndex].editing) + { + if(currentTextFieldIndex>0) + { + nativeKeyBoards[currentTextFieldIndex].closeKeyBoard(false); + trace("Activate keyboard : "+nativeKeyBoards[currentTextFieldIndex-1]); + if(andRemoveAcharFrom) + { + var lastTF:TextField = myTXTs[currentTextFieldIndex-1] as TextField ; + lastTF.text = lastTF.text.substr(0,lastTF.text.length-1); + } + nativeKeyBoards[currentTextFieldIndex-1].activateKeyboard(); + } } } @@ -293,14 +384,34 @@ TextPutter.OnButton(tagNameTXT,tagName,StringFunctions.isPersian(tagName),false,true); } } - myTXT = Obj.getAllChilds('txt_txt',this,false)[0]; - myTXT.addEventListener(Event.CLOSE, dispatchChangeForMeToo); - myTXT.addEventListener(Event.CHANGE, dispatchRenderEventForMe); + myTXTs = Obj.getAllChilds('txt_txt',this,false) + if(myTXTs.length>1) + { + myTXTs = myTXTs.sort(sortFields); + function sortFields(a:TextField,b:TextField):int + { + if(a.x1) + { + for(i=0 ; i1) + { + nativeKeyBoards = new Vector.(); + for(i = 0 ; i0 ; + clearMC.visible = currentTXT.text.length>0 ; + + trace("* Changed > "+currentTXT.maxChars); + if(currentTXT.maxChars<=currentTXT.text.length) + { + trace("Show the nextField"); + + try + { + throw new Error("On Done Called"); + } + catch(e:Error) + { + Alert.show(e.message+"\n\n"+e.getStackTrace()); + } + setTimeout(nextField,0,currentTXT); + } this.dispatchEvent(new Event(Event.RENDER)); } + + private function checkBackRole(e:KeyboardEvent):void + { + if(e.keyCode == 8)//Keyboard.BACKSPACE + { + var currentTXT:TextField = e.currentTarget as TextField ; + trace("Back space"); + if(currentTXT.text=='') + { + setTimeout(prevField,0,currentTXT,true); + } + } + else + { + + } + } protected function increaseValue(event:MouseEvent):void { @@ -510,13 +678,34 @@ protected function showPassNow(event:MouseEvent):void { - nativeKeyBoard.showPass(); + event.stopImmediatePropagation(); + if(myTXTs.length>1) + { + for(var i:int = 0 ; i1) + { + for(var i:int = 0 ; i