Благодарю murz.
Во-первых, сам алгоритм масштабирования содержал ошибку. А во-вторых, его надо былом запускать и при ADDED_TO_STAGE.
В итоге получилось так:

Код AS3:
class Main {
public function new() {
Lib.current.stage.scaleMode = StageScaleMode.NO_SCALE;
Lib.current.addEventListener(Event.RESIZE, onStageResize);
Lib.current.addEventListener(Event.ACTIVATE, onActivate);
Lib.current.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
...
}
function highLevelResize() {
for (i in 0...Lib.current.numChildren) {
if (Reflect.hasField(Lib.current.getChildAt(i), "updateSizeAndPos")) {
var control:Control = cast(Lib.current.getChildAt(i), Control);
control.updateSizeAndPos();
}
}
}
private function onAddedToStage(e:Event):Void
{
highLevelResize();
}
function onStageResize(event:Event) {
highLevelResize();
}
function onActivate(event: Event) {
highLevelResize();
}
static function main() {
new Main();
}
}
Работает корректно в ФФ, ИЕ и Хроме. В других не проверял.