If you use our Window classes does it work better?

On 8/10/11 6:25 AM, "isa_loyer" <isa_lo...@yahoo.fr> wrote:






I have a class FlexNativeWindow who extends to NativeWindow.
I use this method to create new window on my AIR app.
All works well but some keyboard interraction is not availaible.

For exemple focus arround textinput is not visible.
Key down and up don't work on DropDownList.
TabOrder doesn't work well!

Can you explain Why? Because I'm very desapointed!

Code to create the new window

var wdetcorr:wDetailCorrespondant = new wDetailCorrespondant();
 wdetcorr.monIdCorresp = correspDG.selectedItem.crIndex;

 var wOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
 wOptions.systemChrome = NativeWindowSystemChrome.NONE;
 wOptions.transparent = false;
 var fnwDetailPatient:FlexNativeWindow = new FlexNativeWindow(wdetcorr, 
wOptions);
 fnwDetailPatient.active();


Code about my custom NativeWindow

package fr.int.ui.windowSkin
 {
 import flash.display.NativeWindow;
 import flash.display.NativeWindowInitOptions;
 import flash.events.Event;
 import flash.events.KeyboardEvent;
 import flash.ui.Keyboard;

 import mx.core.IUIComponent;
 import mx.core.IVisualElement;
 import mx.core.IVisualElementContainer;
 import mx.core.UIComponent;
 import mx.events.*;
 import mx.managers.WindowedSystemManager;

 [Event(name="creationComplete", type="mx.events.FlexEvent")]

 public class FlexNativeWindow extends NativeWindow implements IFlexNativeWindow
 {
 private var _systemManager:WindowedSystemManager;

 private var _content:UIComponent;

 private var _window:IVisualElementContainer;

 public function FlexNativeWindow(window:IVisualElementContainer, 
initOptions:NativeWindowInitOptions = null)
 {
 super(initOptions);


 _window = window;

 addEventListener(Event.ACTIVATE, windowActivateHandler);

 }

 public function addElement(control:IVisualElement):void
 {
 _window.addElement(control);
 }

 public function removeElement(control:IVisualElement):void
 {
 _window.removeElement(control);
 }

 private function windowActivateHandler(event:Event):void
 {
 event.preventDefault();
 event.stopImmediatePropagation();
 removeEventListener(Event.ACTIVATE, windowActivateHandler);

 if (stage)
 {
 if (!_systemManager)
 _systemManager = new WindowedSystemManager(IUIComponent(_window));

 stage.addChild(_systemManager);

 dispatchEvent(new FlexEvent(FlexEvent.CREATION_COMPLETE));

 stage.addEventListener(Event.RESIZE, windowResizeHandler);
 stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);

 }
 }

 private function keyDownListener (e:KeyboardEvent):void {

 if (e.keyCode == Keyboard.ESCAPE) {
 stage.nativeWindow.dispatchEvent(new Event("myEventClose", true));
 stage.nativeWindow.close();
 }


 }

 private function windowResizeHandler(event:Event):void
 {
 // prise en compte de la valeur mini
 UIComponent(_window).height = stage.stageHeight;
 UIComponent(_window).width = stage.stageWidth;


 }
 }
 }






--
Alex Harui
Flex SDK Team
Adobe System, Inc.
http://blogs.adobe.com/aharui

Reply via email to