Показать сообщение отдельно
Старый 12.11.2013, 21:30
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 8  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Цитата:
Сообщение от samana Посмотреть сообщение
Скажите, объект objectMask добавлен как ребёнок в классе Кровел?
Нет.

Код AS3:
package classes
{
	import flash.events.Event;
	import flash.display.MovieClip;
	import classes.fond.Fields;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.display.Sprite;
 
	public class Crovel extends MovieClip
	{
		private var randomRotation:Number = 180; //Кровел двигается в ту сторону в которую он повёрнут, поэтому его движение будет меняться через какой-то интервал:
		private var timerSetRandomRotation:Timer = new Timer(Settings.ROTATION);	//Таймер задающий случайное движение кровелу:
		private const SPEED:Number = Settings.SPEED;
		public var objectMask:Sprite
 
		public function Crovel(liquid:MovieClip)
		{
			rotation = randomRotation;
			Fields.FIELDFORCROVELS.addChild(this);
			objectMask = liquid;
			objectMask.visible = false;
			Fields.FIELDFORCROVELS.addChild(liquid);
			this.addEventListener(Event.ENTER_FRAME,rotationHorns);
			timerSetRandomRotation.addEventListener(TimerEvent.TIMER,setRandomRotation);
			timerSetRandomRotation.start();
			this.addEventListener(Event.ENTER_FRAME,move);
		}
		//Движение кровела:
		private function move(event:Event):void
		{
			objectMask.x = x;
			objectMask.y = y;
			var p:Number = Prohibition.prohibition(this);
			if(p == Number.MAX_VALUE)
			{
 
			}
			else
			{
				rotation = randomRotation = p;
				timerSetRandomRotation.reset();
				timerSetRandomRotation.start();
			}
			y -= SPEED * Math.cos(randomRotation * (Math.PI / 180));
			x += SPEED * Math.sin(randomRotation * (Math.PI / 180));
		}
		//Вращение усиков:
		private function rotationHorns(event:Event)
		{
			hornsOne.rotation -= 10;
			hornsTwo.rotation += 5;
		}
		//Установка случайного движения кровелу:
		private function setRandomRotation(event:TimerEvent):void
		{
			var choice:int = Math.random() * 3;	//Выбор положительной или отрицательной стороны:
			if(choice == 1)
			{
				randomRotation = Math.random() * -360;
				objectMask.mask = this;
				objectMask.visible = true;
			}
			else
			{
				randomRotation = Math.random() * 360;
				objectMask.mask = null;
				objectMask.visible = false;
			}
			rotation = randomRotation;
		}
	}
}
liquid - это то, что я использую как маску (или в качестве маски).