Показать сообщение отдельно
Старый 20.06.2011, 00:14
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 14  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
GBee, можно много чего сделать твинером, кто же спорит. В данном случае Ваш ответ только путает человека, решающего совершенно другую задачу и пока не думающего о "красоте".
S-ed, я только не понял нагромождение со стрингами, которые потом переводятся через условия в 1 и 2. Не надо всегда равняться на примеры из хелпа – они для разъяснения каких-то конкретных моментов часто в ущерб остальному. Можно было совершенно не напрягаясь передавать прямо величину скейла - 1 или 2 вместо "in" и "out", думаю никто бы не запутался . А в остальном код выглядит приятно, так держать.

Добавлено через 1 час 11 минут
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
/* * * * * * * * * *
*                  *
*  @author wolsh   *
*                  *
\* * * * * * * * * */
	public class Main extends Sprite 
	{
		private var _obj:Sprite;
		private var _timer:Timer;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
			//stage.showDefaultContextMenu = false;
			// entry point
			_obj = new Sprite();
			_obj.graphics.beginFill(0xFFAA00);
			_obj.graphics.drawRoundRect(0, 0, 200, 150, 12);
			addChild(_obj);
			_obj.x = 300, _obj.y = 200;
			_obj.addEventListener(MouseEvent.ROLL_OVER, onOver);
			_obj.addEventListener(MouseEvent.ROLL_OUT, onOut);
			_timer = new Timer(7000);
			_timer.addEventListener(TimerEvent.TIMER, onTimer);
			_timer.start();
		}
 
		private function onOut(event:MouseEvent):void 
		{
			if(_obj.scaleX == 2) scaleObj(1);
			_timer.delay = 7000;
			_timer.start();
		}
 
		private function onOver(event:MouseEvent):void 
		{
			if(_obj.scaleX == 1) scaleObj(2);
			_timer.stop();
		}
 
		private function onTimer(event:TimerEvent):void 
		{
			var timer:Timer = event.target as Timer;
			if (timer.delay == 3000) 
			{
				scaleObj(1);
				timer.delay = 7000;
			}
			else
			{
				scaleObj(2);
				timer.delay = 3000;
			}
		}
 
		private function scaleObj(scale:Number):void 
		{
			_obj.x = scale == 2 ? _obj.x - _obj.width / 2 : _obj.x + _obj.width / 4;
			_obj.y = scale == 2 ? _obj.y - _obj.height / 2 : _obj.y + _obj.height / 4;
			_obj.scaleX = _obj.scaleY = scale;
		}
 
	}
 
}
__________________
Reality.getBounds(this);