Don't use parentChanged() to track whether we're onscreen or not,

it's unreliable.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@352 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
Ray Greenwell
2007-11-21 19:47:32 +00:00
parent c73ec397e0
commit db23c89ec0
+24 -20
View File
@@ -68,6 +68,9 @@ public class ChatControl extends HBox
_txt.height = height;
_but.height = height;
}
addEventListener(Event.ADDED_TO_STAGE, handleAddRemove);
addEventListener(Event.REMOVED_FROM_STAGE, handleAddRemove);
}
/**
@@ -104,26 +107,6 @@ public class ChatControl extends HBox
_txt.setStyle("backgroundColor", color);
}
override public function parentChanged (p :DisplayObjectContainer) :void
{
super.parentChanged(p);
if (p != null) {
// set up any already-configured text
_txt.text = _curLine;
// request focus
callLater(function () :void {
_txt.setFocus();
});
_controls.push(this);
} else {
_curLine = _txt.text;
ArrayUtil.removeAll(_controls, this);
}
}
/**
* Handles FlexEvent.ENTER and the action from the send button.
*/
@@ -144,6 +127,27 @@ public class ChatControl extends HBox
_txt.text = "";
}
/**
* Handles Event.ADDED_TO_STAGE and Event.REMOVED_FROM_STAGE.
*/
protected function handleAddRemove (event :Event) :void
{
if (event.type == Event.ADDED_TO_STAGE) {
// set up any already-configured text
_txt.text = _curLine;
// request focus
callLater(function () :void {
_txt.setFocus();
});
_controls.push(this);
} else {
_curLine = _txt.text;
ArrayUtil.removeAll(_controls, this);
}
}
/** Our client-side context. */
protected var _ctx :CrowdContext;