Показать сообщение отдельно
Старый 12.04.2011, 12:46
ZZZubec вне форума Посмотреть профиль Отправить личное сообщение для ZZZubec Найти все сообщения от ZZZubec
  № 5  
Ответить с цитированием
ZZZubec

Регистрация: Apr 2011
Сообщений: 20
логично
Код AS1/AS2:
import flash.display.Bitmap;
		import flash.display.Loader;
		import flash.display.MovieClip;
		import flash.display.Sprite;
		import flash.events.Event;
		import flash.events.MouseEvent;
		import flash.geom.Point;
		import flash.net.URLLoader;
		import flash.net.URLRequest;
		import mx.controls.Image;
		import mx.core.UIComponent;
		import mx.managers.PopUpManager;
		import mx.rpc.events.ResultEvent;
		import mx.rpc.events.FaultEvent;
		import mx.controls.Alert;
		import mx.rpc.http.HTTPService;
		import AdressItem;
 
		private var alert:Alert;			
		private var needInit:Boolean = true;
		private var items:Array = new Array();
		private var xmlLoader:URLLoader = new URLLoader();
		public var adresses:XML = new XML();
		public var ui:UIComponent = new UIComponent();
		public var showSprite:Sprite = new Sprite();
		public var backgroundSprite:Image;
		public var pictureSprite:Image;
		public var closeButton:Image;
		public var pm:PopUpManager = new PopUpManager();
 
		private function http_fault(event:FaultEvent):void
		{
			var title:String = event.type + " (" + event.fault.faultCode + ")";
			var text:String = "Fault load XML"; //event.fault.faultString
			alert = Alert.show(text, title);
		}
 
		private function loadXML( event:Event ):void
		{
			//OK
			adresses = XML(event.target.data);
			trace( "start reed XML:" );
			trace( adresses );
			for ( var i:int = 0; i < adresses.node.length(); i++ )
			{
				/*
				var item:AdressItem = new AdressItem( 	adresses.node[i].text[0],
														adresses.node[i].text[1],
														adresses.node[i].text[2],
														adresses.node[i].picture,
														adresses.node[i].coord.@x,
														adresses.node[i].coord.@y );
				item.visible = true;
				*/
				var item:Image = new Image();
				item.id = i.toString();
 
				item.x = adresses.node[i].coord.@x;
				item.y = adresses.node[i].coord.@y;		
 
				item.source = "point.png";
				var pic:String = adresses.node[i].picture;
 
				trace( item );
 
				item.addEventListener(MouseEvent.CLICK, function(event:Event):void
				{
					//mouse click, need show image
					trace( event );
					/*
					uic.x = item.x;
					uic.y = item.y+200;
					pictureSprite.source = adresses.node[this.id].picture;
					showSprite.addChild(pictureSprite);
					addChild( uic );
					trace( showSprite.x, showSprite.y, pictureSprite.source, this.id );
					*/
				});
				this.addChild( item );
 
			}
 
			//Alert.show(XML(event.result));
		}
 
		public function start_prog(event:Event):void
		{
			if ( needInit )
			{
				trace( "Need init" );
				var background:Image = new Image();
				background.source = "map.jpg";
				backgroundSprite = new Image();
				backgroundSprite.source = "rect.png";
				closeButton = new Image();
				closeButton.source = "close.png";
				closeButton.addEventListener(MouseEvent.CLICK, function( event:Event ):void
				{
					//
				});
				pictureSprite = new Image();
				pictureSprite.source = "no_image.png";
 
				ui.addChild( backgroundSprite );
				ui.addChild( pictureSprite );
				ui.addChild( closeButton );
				ui.x = 200;
				ui.y = 100;
 
				this.addChild( background );
				this.addChild( ui );
 
				needInit = false;
				//resultFormat="e4x" fault="http_fault(event);" result="http_result(event)"
				xmlLoader.addEventListener( Event.COMPLETE, loadXML );
				try 
				{ 
					xmlLoader.load( new URLRequest( "adress_map.xml" ) );
				} 
				catch (error:ArgumentError) 
				{ 
					Alert.show("An ArgumentError has occurred."); 
				} 
				catch (error:SecurityError) 
				{ 
					Alert.show("A SecurityError has occurred."); 
				}
			}
		}
Добавлено через 6 минут
не обязательно использовать данный код, просто покажите тривиальный пример включающий в себя основную картинку, картинку с превьюшкой ( к которую я смогу менять через код ), и закрывающую часть, этого будет вполне достаточно.

Добавлено через 2 часа 3 минуты
сделал самым смешным способом, тупо добавляю все картинки с позиционированием по клику и убираю (removeChild) после нажатия кнопки закрыть.

но всё таки, если кто знает другие варианты, буду рад...