as3 内容自适应容器大小

 

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.Graphics;
        
    /*示例内容自适应盒子的大小*/
    [SWF(width=800, height=600)]
    public class SampleAdjustSize extends Sprite {
        private var borderWid:uint=600;//边框宽
        private var borderHei:uint=400;//边框高
        private var box:Sprite;
        private var btm:Bitmap;
        
        [Embed(source="img.jpg")]    //嵌入864x684宽高图一张
        public var IMG:Class;

        public function SampleAdjustSize():void 
        {
            init();
        }
        
        private function init():void
        {
            initBorder();
            btm = new IMG() as Bitmap;
            adjustSize();
        }
        
        private function initBorder():void
        {
            box = new Sprite();
            var g:Graphics = box.graphics;
            g.lineStyle(1, 0x000000);
            g.drawRect(0, 0, borderWid, borderHei);
            addChild(box);
            box.x = this.stage.stageWidth / 2 - box.width /2;
            box.y = this.stage.stageHeight / 2 - box.height / 2;
        }
        
        private function adjustSize():void
        {
            if(btm.width < box.width && btm.height < box.height) return;
            var px:Number = box.width / btm.width;
            var py:Number = box.height / btm.height;
            var scale:Number = px > py ? py :px;
            btm.width = btm.width * scale;
            btm.height = btm.height * scale;
            box.addChild(btm);
        }
    }
}

 

posted @ 2012-10-17 11:36  playerlife  阅读(1541)  评论(0编辑  收藏  举报