Показать сообщение отдельно
Старый 04.01.2011, 01:35
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 1  
Ответить с цитированием
DZHETIGAPA

Регистрация: Dec 2010
Сообщений: 342
По умолчанию Вывод координат экземпляров классов

Возник вопрос в понимании ActionScript.

Создал два символа и подключил к ним классы. И так, есть два класса шаров-мячиков(Shar и SharZloi). Оба эти класса расширяются третьим классом(XYRandom), в котором указаны координаты возникновения экземпляров этих классов на сцене. И затем оба эти класса добавляются в главный класс Main.

Мне нужно видеть координаты каждого экземпляра класса в другом классе. Но почему-то выводятся одни нули.

Вот код:
Код AS3:
package  
{
	import flash.display.MovieClip;
	import flash.events.*;
 
	public class XYRandom extends MovieClip
	{
 
		public function XYRandom():void
		{
			this.addEventListener(Event.ADDED_TO_STAGE, added);
		}
 
		private function added(e:Event):void
		{
			this.x = Math.random() * stage.stageWidth;
			this.y = Math.random() * stage.stageHeight;
		}
	}
}
 
package  
{
	import flash.display.*;
	import flash.events.*;
	import com.greensock.*;
 
	public class Shar extends XYRandom
	{
 
		public function Shar():void 
		{
			this.addEventListener(Event.ADDED_TO_STAGE, added)
		}
 
		private function added(e:Event):void
		{
			addEventListener(Event.ENTER_FRAME, onFrame)
		}
 
		private function onFrame(e:Event):void
		{
			var dx:Number = this.x + mouseX;
			var dy:Number = this.y +mouseY;
			TweenLite.to(this, 0.5, {x:dx, y:dy})
		}
	}
}
 
package  
{
	import flash.events.Event;
	import flash.display.*;
	/**
	 * ...
	 * @author 
	 */
	public class SharZloi extends XYRandom
	{
 
		private var shar:Shar;
 
		public function SharZloi():void 
		{
			this.addEventListener(Event.ADDED_TO_STAGE, added);
		}
 
		private function added(e:Event):void
		{
			shar = new Shar();
			addEventListener(Event.ENTER_FRAME, onFrame)
		}
 
		private function onFrame(e:Event):void
		{
			trace(shar.x)//Выводит нули
		}
	}
}
 
package  
{
	import flash.display.*;
	import flash.events.*;
	import com.greensock.*;
	/**
	 * ...
	 * @author 
	 */
	public class Main extends Sprite
	{
 
		public function Main():void 
		{
			var shar:MovieClip = new Shar();
			addChild(shar);
 
			var zloi:MovieClip = new SharZloi();
			addChild(zloi);
 
		}
	}
}
Доступ к координатам экземпляров классов могу только получить в главном классе Main, но мне надо именно в двух вышеназванных классах.

Объясните пожалуйста мою ошибку.