Main.as
package { import flash.desktop.NativeApplication; import flash.events.Event; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; import starling.core.Starling; import com.app.views.Application; /** * ... * @author kenkao */ public class Main extends Sprite { private var _starling:Starling; public function Main():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.DEACTIVATE, deactivate); // touch or gesture? Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; // entry point Starling.handleLostContext = true; // 解决移动设备屏幕翻转时设备上下文丢失的问题 _starling = new Starling(Application, stage); _starling.start(); } private function deactivate(e:Event):void { // auto-close NativeApplication.nativeApplication.exit(); } } }
Application.as
package com.app { import starling.display.Sprite; import starling.events.Event; /** * ... * @author kenkao */ public class Application extends Sprite { private static var _instance:Application; /** * 获取应用单例 * @return 返回单例实体 */ public static function getInstance():Application { if (_instance == null) { _instance = new Application(); } return _instance; } public function Application() { addEventListener( Event.ADDED_TO_STAGE, init ); } private function init( event:Event) : void { this.removeEventListener(Event.ADDED_TO_STAGE, init); // entry point for staring } } }
application.xml
<?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/3.5"> <id>air.StarlingFeatherDemo</id> <versionNumber>0.1</versionNumber> <supportedProfiles>mobileDevice</supportedProfiles> <filename>StarlingFeatherDemo</filename> <name>StarlingFeatherDemo</name> <description></description> <copyright></copyright> <android> <manifestAdditions><![CDATA[ <manifest android:installLocation="auto"> <uses-permission android:name="android.permission.INTERNET"/> <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/> </manifest> ]]></manifestAdditions> </android> <iPhone> <InfoAdditions><![CDATA[ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleBlackOpaque</string> <key>UIRequiresPersistentWiFi</key> <string>NO</string> <key>UIPrerenderedIcon</key> <true/> <key>UIApplicationExitsOnSuspend</key> <true/> <key>UIDeviceFamily</key> <array> <!-- iPhone support --> <string>1</string> <!-- iPad support --> <!--<string>2</string>--> </array> ]]></InfoAdditions> <requestedDisplayResolution>high</requestedDisplayResolution> </iPhone> <initialWindow> <title>StarlingFeatherDemo</title> <content>StarlingFeatherDemo.swf</content> <visible>true</visible> <fullScreen>true</fullScreen> <!--支持屏幕翻转--> <autoOrients>false</autoOrients> <!--<aspectRatio>landscape</aspectRatio>--> <!--设置硬件渲染--> <renderMode>direct</renderMode> </initialWindow> <icon> <image72x72>icons/icon_72.png</image72x72> <image114x114>icons/icon_114.png</image114x114> <image512x512>icons/icon_512.png</image512x512> </icon> <!-- AIR options: http://livedocs.adobe.com/flex/3/html/File_formats_1.html#1043413 AIR mobile options: http://help.adobe.com/en_US/air/build/WSfffb011ac560372f-5d0f4f25128cc9cd0cb-7ffe.html Android manifest documentation: http://developer.android.com/guide/topics/manifest/manifest-intro.html --> </application>