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

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

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

Регистрация: Jan 2011
Сообщений: 29
По умолчанию Загрузка jpg в муви клип

Категорически приветствую.
Попросили сделать flash информер с 2 текстовыми полями и 1 привью изображением. Текст и изображение грузится из XML файла находящийся рядом с флешкой.

Написал вот такой код:
Код AS3:
import flash.net.URLLoader;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLRequest;
 
const URL:String = "text.xml";
 
var loader:URLLoader;
 
init();
 
function init():void
{
	loader = new URLLoader();
	loader.addEventListener(Event.COMPLETE, comleteLoading_title1);
	loader.addEventListener(Event.COMPLETE, comleteLoading_text1);
	loader.addEventListener(Event.COMPLETE, comleteLoading_image1);
	var request:URLRequest = new URLRequest(URL);
	loader.load(request);
}
 
function comleteLoading_title1(event:Event):void
{
	var xml:XML = XML(loader.data);
	var text:String = xml.title1;
	text_txt.text = text;
 
}
 
function comleteLoading_text1(event:Event):void
{
	var xml:XML = XML(loader.data);
	var text:String = xml.text1;
	text1_txt.text = text;
}
 
function comleteLoading_image1(event:Event):void
{
	var ldr:Loader = new Loader();
	var xml:XML = XML(loader.data);
	var img:String = xml.img1;
	var urlReq:URLRequest = new URLRequest(img);
	image1.addChild(ldr);
	trace ("end")
	}
Все работает, вот только почему то загружаемое изображение не отображается в мувике с названием image1. Хотя trace говорит что все ок. В чем может быть проблема?

Заранее спасибо за ответ.

Старый 21.06.2012, 14:01
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Хотя trace говорит что все ок. В чем может быть проблема
Какой трейс? Ваш трейс говорит максимум о том, что картинка начала загружаться. О том, что она успешно загрузилась, ничего не говорит. Для этого нужно подписываться на соответствующие события у loader.contentLoaderInfo. И поставить debug player на всякий случай. Он бы вам сказал о необработанном IOErrorEvent.

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

Регистрация: Jul 2009
Сообщений: 149
А разве у вас trace ("end"); срабатывает?
По-моему Слушать надо не loader, а loader.contentloaderinfo.
И загруженная картинка будет лежать в loader.content.

Старый 21.06.2012, 14:06
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 4  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Кстати, да. Еще loader.load нужно бы вызвать или в конструктор передать URLRequest. Loader же не знает, что вам нужно грузить.

Старый 21.06.2012, 14:11
General303 вне форума Посмотреть профиль Отправить личное сообщение для General303 Найти все сообщения от General303
  № 5  
Ответить с цитированием
General303
 
Аватар для General303

Регистрация: Jan 2011
Сообщений: 29
Можно немного поподробней.
Хотя бы показать как было бы правильно на куске кода.


Последний раз редактировалось General303; 21.06.2012 в 14:17.
Старый 21.06.2012, 14:16
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 6  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Про что именно? Речь идет про ldr. Loader.contentLoaderInfo есть в справке. Там все описано. События загрузки описаны в Loader.load. Ну а у вас строчка ldr = new Loader() просто создает новый лоадер, который ничего не грузит (потому что не знает, что именно грузить). urlReq = ... тоже просто создает новый URLRequest, который ничего не делает (и не должен, может, вы его еще конфигурировать дальше будете).

Вам нужно еще добавить:
Код AS3:
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ...);
ldr.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR ...);
ldr.load(urlReq);
В многоточиях - ваши обработчики ошибок загрузки картинки.

Пример по памяти написан, могут быть опечатки.

Старый 21.06.2012, 14:38
General303 вне форума Посмотреть профиль Отправить личное сообщение для General303 Найти все сообщения от General303
  № 7  
Ответить с цитированием
General303
 
Аватар для General303

Регистрация: Jan 2011
Сообщений: 29
Я использовал пример из справочника
Код AS3:
import flash.display.*; 
import flash.net.URLRequest; 
var rect:Shape = new Shape(); 
rect.graphics.beginFill(0xFFFFFF); 
rect.graphics.drawRect(0, 0, 100, 100); 
addChild(rect); 
var ldr:Loader = new Loader(); 
ldr.mask = rect; 
var url:String = "http://www.unknown.example.com/content.swf"; 
var urlReq:URLRequest = new URLRequest(url); 
ldr.load(urlReq); 
addChild(ldr);
Только переделал его чтобы картинка бралась из XML
Код AS3:
var rect:Shape = new Shape();
	rect.graphics.beginFill(0xFFFFFF);
	rect.graphics.drawRect(0, 0, 100, 100);
	addChild(rect);
	var ldr:Loader = new Loader();
	var xml:XML = XML(loader.data);
	var img:String = xml.img1;
	var urlReq:URLRequest = new URLRequest(img);
	ldr.load(urlReq);
	addChild(ldr);
Так все работает, но изображение создается отдельно в левом верхнем углу, то есть не в мувике

Старый 21.06.2012, 14:45
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 8  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Добавляйте лоадер ребенком клипу, а не stage.
Код AS3:
myClip.addChild(ldr);

Старый 21.06.2012, 15:01
General303 вне форума Посмотреть профиль Отправить личное сообщение для General303 Найти все сообщения от General303
  № 9  
Ответить с цитированием
General303
 
Аватар для General303

Регистрация: Jan 2011
Сообщений: 29
Оказывается удалил предпоследнюю строку с ldr.load(urlReq);
Заработало, всем большое спасибо за ответы.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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