Показать сообщение отдельно
Старый 09.06.2009, 14:01
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 14  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Ну так надо скалируемый контент засунуть в отдельный мувик и скалировать его
Код AS3:
package {
	import flash.display.*; import flash.events.*; import flash.ui.*; import flash.text.*;import flash.geom.*;
	public class DocResize extends Sprite {
		private var rMc:Sprite, lMc:Sprite, mcGeneralContent:Doc,
		baseHeight:Number, baseWidth:Number;
		public function DocResize():void{
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			addChild(mcGeneralContent = new Doc);
			addChild(rMc = new ScaleTestMc);
			addChild(lMc = new ScaleTestMc);
			baseWidth = 550;
			baseHeight = 200;
			resizeHandler();
			stage.addEventListener(Event.RESIZE, resizeHandler);
		}
		private function resizeHandler(evt:Event = null):void{
			var scaleObj:Object=getAutoScale(stage.stageWidth - (rMc.width + lMc.width), stage.stageHeight);
			rMc.x = stage.stageWidth -rMc.width;
			mcGeneralContent.x = scaleObj.x + lMc.width;
			//mcGeneralContent.y = scaleObj.y;//выравнивание по центру
			mcGeneralContent.scaleX = mcGeneralContent.scaleY = scaleObj.scale;
		}
 
		private function getAutoScale(_w:Number,_h:Number):Object {
			//trace("resizeHandler: " + evt);
			//trace("stageWidth: " + 800 + " stageHeight: " + 600);
 
			var scaleMode:String;
			var scale:Number;
			if (baseWidth>=baseHeight) scaleMode = "width";else scaleMode = "height";
			if (scaleMode == "width") {
				scale = _w/baseWidth;
				if (baseHeight*scale>_h) scale = _h/baseHeight;
			}else{
				scale = _h/baseHeight;
				if (baseWidth*scale>_w) scale = _w/baseWidth;
			}
 
			//kindSp.scaleX = kindSp.scaleY = scale;
			//центровка
			var centeroX:Number =  Math.abs((_w- baseWidth*scale)/2);
			//kindSp.x = centeroX;
			var centeroY:Number =  Math.abs((_h - baseHeight*scale)/2);
			//kindSp.y = centeroY;
			return { scale:scale, x:centeroX, y:centeroY };
		}
	}
}
http://www.murmadillo.tut.su/html/resize-dog.html
Вложения
Тип файла: rar RESIZE.rar (236.7 Кб, 42 просмотров)