2010-01-29 71 views

回答

0

像這樣的東西應該工作。基本上,你想聽舞臺的大小,然後改變圖像的寬度/高度,以便至少在一個維度上匹配。

package { 

    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.geom.Rectangle; 

    public class BackgroundImage extends Sprite {   
     private var _imageHolder:Sprite = new Sprite(); 

     public function BackgroundImage() { 
      addChild(_imageHolder); 
      // load or attach image to _imageHolder. 
      // if image is loaded externally, use the event for it's completion to call startResize, otherwise use the ADDED_TO_STAGE event. 
      addEventListener(Event.ADDED_TO_STAGE, startResize, false, 0, true); 
     } 

     private function _startResize($evt:Event):void { 
      removeEventListener(Event.ADDED_TO_STAGE, startResize); 
      stage.addEventListener(Event.RESIZE, _setScale, false, 0, true); 
      setScale(null); 
     } 

     private function setScale($evt:Event):void { 
      var _stageRectangle:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight); 
      if (_imageHolder.width/_stageRectangle.width > _imageHolder.height/_stageRectangle.height) { 
       _imageHolder.height = _stageRectangle.height; 
       _imageHolder.scaleX = _imageHolder.scaleY; 
      } else { 
       _imageHolder.width = _stageRectangle.width; 
       _imageHolder.scaleY = _imageHolder.scaleX; 
      } 

     } 
    } 
}