From 91131810d495820eca8caabe1954d524fc711152 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Thu, 8 Mar 2007 06:09:14 +0000 Subject: [PATCH] Rollback to the previous hackery, this hackery didn't work. git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@233 c613c5cb-e716-0410-b11b-feb51c14d237 --- .../threerings/ezgame/client/GameContainer.as | 63 ++++++++----------- .../ezgame/client/GameControlBackend.as | 4 +- 2 files changed, 28 insertions(+), 39 deletions(-) diff --git a/src/as/com/threerings/ezgame/client/GameContainer.as b/src/as/com/threerings/ezgame/client/GameContainer.as index b39a2160..70d6e8fb 100644 --- a/src/as/com/threerings/ezgame/client/GameContainer.as +++ b/src/as/com/threerings/ezgame/client/GameContainer.as @@ -25,14 +25,16 @@ import flash.display.DisplayObject; import flash.geom.Rectangle; -import flash.text.TextField; - import mx.core.mx_internal; import mx.core.IFlexDisplayObject; import mx.core.IInvalidating; import mx.containers.VBox; +import mx.managers.IFocusManagerComponent; + +import mx.skins.ProgrammaticSkin; + import com.threerings.flash.MediaContainer; // TODO: there are focus issues in here that need dealing with. @@ -43,17 +45,13 @@ import com.threerings.flash.MediaContainer; // damn thing doesn't seem to grip onto the focus. // public class GameContainer extends VBox + implements IFocusManagerComponent { - public var keyGrabber :TextField = new TextField(); - public function GameContainer (url :String) { - keyGrabber.selectable = false; - rawChildren.addChild(keyGrabber); - rawChildren.addChild(_game = new MediaContainer(url)); -// tabEnabled = true; // turned off by Container + tabEnabled = true; // turned off by Container // focusRect = true; // we need the focus rect } @@ -62,13 +60,6 @@ public class GameContainer extends VBox return _game; } - override public function setActualSize (w :Number, h :Number) :void - { - super.setActualSize(w, h); - keyGrabber.width = w; - keyGrabber.height = h; - } - // override public function setFocus () :void // { // if (stage) { @@ -80,29 +71,27 @@ public class GameContainer extends VBox // } // } -// override protected function adjustFocusRect (obj :DisplayObject = null) :void -// { -// super.adjustFocusRect(obj); -// -// // TODO: this is probably all wrong -// var focusObj :IFlexDisplayObject = -// IFlexDisplayObject(mx_internal::getFocusObject()); -// if (focusObj) { -// var r :Rectangle = transform.pixelBounds; -// focusObj.setActualSize(r.width - 2, r.height - 2); -// focusObj.move(0, 0); -// -// if (focusObj is IInvalidating) { -// IInvalidating(focusObj).validateNow(); -// -// } else if (focusObj is ProgrammaticSkin) { -// ProgrammaticSkin(focusObj).validateNow(); -// } -// } -// } + override protected function adjustFocusRect (obj :DisplayObject = null) :void + { + super.adjustFocusRect(obj); + + // TODO: this is probably all wrong + var focusObj :IFlexDisplayObject = + IFlexDisplayObject(mx_internal::getFocusObject()); + if (focusObj) { + var r :Rectangle = transform.pixelBounds; + focusObj.setActualSize(r.width - 2, r.height - 2); + focusObj.move(0, 0); + + if (focusObj is IInvalidating) { + IInvalidating(focusObj).validateNow(); + + } else if (focusObj is ProgrammaticSkin) { + ProgrammaticSkin(focusObj).validateNow(); + } + } + } protected var _game :MediaContainer; - - protected var _keyGrabber :TextField; } } diff --git a/src/as/com/threerings/ezgame/client/GameControlBackend.as b/src/as/com/threerings/ezgame/client/GameControlBackend.as index 11a61800..580998a9 100644 --- a/src/as/com/threerings/ezgame/client/GameControlBackend.as +++ b/src/as/com/threerings/ezgame/client/GameControlBackend.as @@ -521,9 +521,9 @@ public class GameControlBackend keyEventType :String, add :Boolean) :void { if (add) { - _container.keyGrabber.addEventListener(keyEventType, handleKeyEvent); + _container.addEventListener(keyEventType, handleKeyEvent); } else { - _container.keyGrabber.removeEventListener(keyEventType, handleKeyEvent); + _container.removeEventListener(keyEventType, handleKeyEvent); } }