這個禮拜為了製作手持裝置的APP
在調整畫面上做了一些工夫
比較有印象的是~~~在原生flash上addchild物件
首先~為了在原生flash層上放物件
會利用
Starling.current.nativeOverlay.addChild(物件);
接著starling有一招可以檢查手持裝置的解析度
再把starling物件調整成對應的尺寸
public function Main():void {
_starling = new Starling(Game, stage, viewPortRectangle, null, "auto", "baseline");
stage.addEventListener(Event.RESIZE, resizeStage); //在stage改變size時觸發
}
private function resizeStage(e:Event):void{
var viewPortRectangle:Rectangle = new Rectangle();
viewPortRectangle.width = stage.stageWidth;
viewPortRectangle.height = stage.stageHeight;
Starling.current.viewPort = viewPortRectangle; //將viewport大小改成裝置的解析度
}
然而產生的問題是~~原生的物件座標不會隨著starling做變化
所以要先抓取變化的值~~再以此改變物件的座標與大小
private function rootCreatedHandler(e:starling.events.Event):void{
var gameInstance:Game;
gameInstance = Starling.current.stage.getChildAt(0) as Game; //抓取game物件
gameInstance.newWidth = _starWidth; //將值傳入game裡
gameInstance.newHeight = _starHeight;
}
利用上面的函式~~就可以將抓到的解析度數值傳入starling物件裡
再進而做調整~~~
沒有留言:
張貼留言