2010-11-04 41 views
0

我嘗試保持物體在屏幕上的某一位置時,沒有(與階段)保持物體位置調整階段

function Resize(e:Event = null):void 
{ 
    if ((stage.stageWidth)/(stage.stageHeight) > fundos.width/fundos.height) 
    { 
     fundos.width = stage.stageWidth; 
     fundos.scaleY = fundos.scaleX; 
    } 
    else 
    { 
     fundos.height = stage.stageHeight; 
     fundos.scaleX = fundos.scaleY; 
    } 
    fundos.x = (stage.stageWidth - fundos.width) /2; 
    fundos.y = (stage.stageHeight - fundos.height) /2; 

    setas.x = (stage.stageWidth - setas.width + 505) /2; 
    setas.y = (stage.stageHeight - setas.height); 
} 

我的舞臺是在調整都可以過調整其大小(保持寬高比)和即時嘗試添加一個導航img將保持在我調整瀏覽器屏幕大小相同的位置

我該怎麼做?

+0

你想保持對象在相同的地方?如果您擁有絕對佈局,並且指定組件的x和y座標以及寬度和高度屬性,則它將保留在那裏,並通過任意大小的調整大小保持該大小。我不明白你的問題。 – Robusto 2010-11-04 18:45:07

回答

2

聽階段事件Event.RESIZE與

stage.addEventListener(flash.events.Event.RESIZE, resizeHandler); 

當用戶調整階段,它的派出,以任何方式(在瀏覽器縮放,在

在事件處理程序調整,運行代碼片段你給我們。


另外,不要忘記使用

stage.scaleMode = flash.display.StageScaleMode.NO_SCALE; 

或者內容將被調整大小。

享受。

1

這裏是一個例子。斑點精靈是保持初始位置(50,50)

package { 
import flash.display.StageAlign; 
import flash.display.StageScaleMode; 
import flash.events.Event; 
import flash.display.Sprite; 

[SWF(backgroundColor="#00FF00", frameRate="31")] 
public class Application extends Sprite { 

    private var blob:Sprite; 


    public function Application() { 
     if(stage) { 
      init(); 
     } else { 
      addEventListener(Event.ADDED_TO_STAGE, init); 
     } 
    } 

    private function init() : void { 
     removeEventListener(Event.ADDED_TO_STAGE, init); 

     stage.scaleMode = StageScaleMode.NO_SCALE; 
     stage.align = StageAlign.TOP_LEFT; 
     addEventListener(Event.RESIZE, resize); 

     blob = new Sprite(); 
     blob.graphics.beginFill(0x000000); 
     blob.graphics.drawRect(50, 50, 200, 100); 
     blob.graphics.endFill(); 
     addChild(blob); 
    } 

    private function resize(event : Event) : void { 
     // Do nothing on blob's Object 
    } 

} 

}

的階段以及調整(比例),但斑點保持你即使設置(在您的嵌入)位置的對象SWF寬度和高度到100%