Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.04.2011, 17:47
ZZZubec вне форума Посмотреть профиль Отправить личное сообщение для ZZZubec Найти все сообщения от ZZZubec
  № 1  
Ответить с цитированием
ZZZubec

Регистрация: Apr 2011
Сообщений: 20
По умолчанию Динамическое создание и загрузка Image

Хм, первое не прошло...

Господа, выручайте!

Бьюсь второй день, пробовал разные варианты (работают), мой код отказывается.
код прилагаю. во FlashDevelop.

загружает xml, и читает данные, должен создать и расставить картинки в соответствии с указанными значениями. Ошибки не пишет, картинок не видно.
Вложения
Тип файла: zip adress_map.zip (851.0 Кб, 59 просмотров)

Старый 10.04.2011, 21:00
ZZZubec вне форума Посмотреть профиль Отправить личное сообщение для ZZZubec Найти все сообщения от ZZZubec
  № 2  
Ответить с цитированием
ZZZubec

Регистрация: Apr 2011
Сообщений: 20
забавно, не надо никаких загрузчиков, тупо указал

image.source = "path";

фантастика. Вопрос теперь в другом. стал проверять в браузере, а в браузере пишет ошибку при загрузке XML через HTTPService. Хотя при запуске через FlashDebuger всё ок.
В браузере, даже картинка бэкграунда загружется, а xml нет.

Старый 10.04.2011, 21:33
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 3  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
я думаю лучше выложить фрагменты кода, ибо качать метровый архив и ковыряться в нем вряд ли кто захочет

Старый 10.04.2011, 21:39
ZZZubec вне форума Посмотреть профиль Отправить личное сообщение для ZZZubec Найти все сообщения от ZZZubec
  № 4  
Ответить с цитированием
ZZZubec

Регистрация: Apr 2011
Сообщений: 20
оказалось всё просто, загрузчик был лишним.
достаточным было
Код AS1/AS2:
image.source = "path";
а не отображалось потому что не хватало
Код AS1/AS2:
this.addChild( image );
кто же мог догадаться, после PHP выглядит всё немного странно. Хотя я уже сталкивался с Google Map.
теперь проблема в том, что при запуске через FD всё гут, но в браузере, пишет ошибку при попытке загрузить XML. Мозилка говорит что файл XML не нарушен и проверку проходит.

Добавлено через 2 часа 7 минут
Разобрался, куда не плюнь всё под носом, и отсутствие подобных вопросов прям удручает.
ошибка в Security (http://www.macromedia.com/support/do...manager04.html), не думал что локальный файл, может быть запрещен. Хотя, понятно, он с ним работал ни как с сайтом, потому и не читал. всё правильно. ужос.

вот финальный код, вдруг кому пригодится:
Код AS1/AS2:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="absolute" enterFrame="start_prog(event)" xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script><![CDATA[
 
		import flash.display.Loader;
		import flash.events.Event;
		import flash.geom.Point;
		import flash.net.URLLoader;
		import flash.net.URLRequest;
		import mx.controls.Image;
		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();
 
		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.x = adresses.node[i].coord.@x;
				item.y = adresses.node[i].coord.@y;		
 
				item.source = "point.png";
				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";
				this.addChild( background );
 
				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."); 
				}
			}
		}
 
		trace( "start" );
	]]></mx:Script>
</mx:Application>
Добавлено через 25 часов 41 минуту
чего то я запутался...
Код AS1/AS2:
for( var i:int=0
...
 
var item:Image = new Image();
item.id = i;
 
item.x = adresses.node[i].coord.@x;
item.y = adresses.node[i].coord.@y;		
 
item.source = "point.png";
item.addEventListener(MouseEvent.CLICK, function(event:Event):void
{
    //mouse click, need show image
    trace( event.id );
}
this.addChild( item );
...
trace( item.id );
выдает ошибку: невозможно преобразовать flash.events::MouseEvent@2135a29 в mx.controls.Image
я знаю что первый параметр event, а не Item.

ВОПРОС: Как мне получить доступ к динамическому элементу item.id?

пытаюсь сделать всплывающую картинку (типо окно в нужных координатах), но кроме картинки там будет и текстовое поле и ещё картинка (они будут меняться в зависимости от нажатия). Может просто есть, что-то подобное уже... буду очень признателен.


Последний раз редактировалось ZZZubec; 11.04.2011 в 23:22.
Старый 20.04.2011, 12:41
Actual вне форума Посмотреть профиль Отправить личное сообщение для Actual Найти все сообщения от Actual
  № 5  
Ответить с цитированием
Actual

Регистрация: Jul 2009
Сообщений: 28
Чтобы увидеть id
Код AS3:
event.currentTarget.id
Чтобы достучаться до элемента
Код AS3:
item.name = "имя элемента"
this.getChildByName("имя элемента");


Последний раз редактировалось Actual; 20.04.2011 в 12:44.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.