let me show you some code from my testApp, please ignore all extra checks and trace statements.
public function testApp() {
loaderInfo.uncaughtErrorEvents.addEventListener(
UncaughtErrorEvent.UNCAUGHT_ERROR, function (event: UncaughtErrorEvent): void {
Flox.logError(event.error, "Uncaught Error: " + event.error.message);
}
);
loadedImage.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
//if (AndroidFullScreen.isSupported) {
// trace("AndroidFullScreen.isSupported");
// //AndroidFullScreen.immersiveMode();
// screenWidth = AndroidFullScreen.immersiveWidth;
// screenHeight = AndroidFullScreen.immersiveHeight;
// trace("AndroidFullScreen.immersiveHeight = ", AndroidFullScreen.immersiveHeight);
// trace("AndroidFullScreen.immersiveWidth = ", AndroidFullScreen.immersiveWidth);
//} else {
// trace("AndroidFullScreen.isnotSupported");
// screenWidth = stage.fullScreenWidth;
// screenHeight = stage.fullScreenHeight;
// trace("stage.fullScreenWidth = ", stage.fullScreenWidth);
// trace("stage.fullScreenHeight = ", stage.fullScreenHeight);
//}
screenWidth = stage.fullScreenWidth;
screenHeight = stage.fullScreenHeight;
trace("stage.stageWidth = ", stage.stageWidth);
trace("stage.stageHeight = ", stage.stageHeight);
if (screenWidth >= 480 && screenHeight >= 320)
scaleFactor = 0.6;
if (screenWidth >= 720 && screenHeight >= 480)
scaleFactor = 0.7;
if (screenWidth >= 960 && screenHeight >= 640)
scaleFactor = 0.9;
if (screenWidth >= 1024 && screenHeight >= 720)
scaleFactor = 1;
if (screenWidth >= 1536 && screenHeight >= 1080)
scaleFactor = 1.5;
trace("scaleFactor = " + scaleFactor);
viewPort = new Rectangle(0, 0, screenWidth, screenHeight);
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
trace("screenWidth " + screenWidth, "screenHeight " + screenHeight);
try {
var myImage: ImageLoader = new ImageLoader("ext_assets/splash.png", {
container: this,
alpha: 1,
scaleX: scaleFactor,
scaleY: scaleFactor,
onComplete: completeHandler,
centerRegistration: true,
x: screenWidth / 2,
y: screenHeight / 2
});
myImage.load();
} catch (e: Error) {
Flox.logWarning("ext_assets/splash.png didnot load" + e.message);
}
}
private function completeHandler(event: LoaderEvent): void {
loadedImage = event.target.content;
TweenMax.to(loadedImage, 1, {
scaleX: loadedImage.scaleX + 0.2,
scaleY: loadedImage.scaleY + 0.2,
onComplete: onAddedToStage
});
}
public function onStageActive(e: flash.events.Event): void {
trace("onStageActive");
star.start();
if (stage) stage.quality = stage.quality;
}
public function onStageDeactivate(e: flash.events.Event): void {
trace("onStageDeactivate");
star.stop(true);
}
private function onAddedToStage(): void {
loadedImage.removeEventListener(Event.ENTER_FRAME, onAddedToStage);
NativeApplication.nativeApplication.addEventListener(flash.events.Event.ACTIVATE,
onStageActive);
NativeApplication.nativeApplication.addEventListener(flash.events.Event.DEACTIVATE,
onStageDeactivate);
Texture.asyncBitmapUploadEnabled = SystemUtil.isIOS;
//Starling.multitouchEnabled = true;
star = new Starling(Game, stage, viewPort, null, "auto", ["baselineExtended", "baseline"]);
trace("contentScaleFactor =", star.contentScaleFactor);
star.supportHighResolutions = true;
//star.simulateMultitouch = true;
star.showStats = true;
/*star.stage.stageHeight = 320;
star.stage.stageWidth = 480;*/
star.skipUnchangedFrames = true;
star.antiAliasing = 1;
star.start();
//trace("123");
}
}