Показать сообщение отдельно
Старый 29.05.2013, 14:28
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 4  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
Может поможет, точнее поможет, если Вы можете добавить экземпляр на сцену(Stage). Т.е это должно работать, если такая возможность есть. (Изменил код, т.к более логичная идея появилась.)

Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
 
	public class Main extends Sprite 
	{
	var map:Sprite;
	var communication:Sprite;
		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);
			// entry point
			map = new Sprite();
			map.graphics.lineStyle(1);
			map.graphics.beginFill(0x000000);
			map.graphics.drawCircle(250, 250, 50);
			addChild(map);
			map.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);
 
			stage.addEventListener(MouseEvent.MOUSE_DOWN, stageMouseDownListener); 
			communication = new Sprite();
			communication.name = "communication";
			stage.addChild(communication);
 
		}
 
		private function mouseDownListener(e:MouseEvent):void {
			trace("down mouse at the map!");
			communication.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
		}
 
		private function stageMouseDownListener(e:MouseEvent):void {
			if (e.target == communication){
			trace("stage event!" + " event target = " + e.target.name);
			}
		}
	}	
}


Последний раз редактировалось Idon'tKnow; 29.05.2013 в 14:49. Причина: изменил код.