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

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

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

Регистрация: Oct 2009
Сообщений: 25
По умолчанию Повторить картинку много раз

Вот у меня появилась необходимость одну и ту же картинку вывести несколько раз. Как правильно это сделать естественно не знаю... решил методом проб и ошибок пойти. Цикл создал, но вот в чем беда картинка выводится 1 раз в самом конце цикла.

Код AS3:
var imgarray:Array = new Array();
var imgLoader:Loader = new Loader()
for (var i:int=0; i<120; i++){
	hpLoader.load (new URLRequest("img/hp.gif"));
	hpLoader.x = (30+i);
	hpLoader.y = 30;
	imgarray[i] = (hpLoader);
	addChild(imgarray[i]);
	}

Старый 22.10.2009, 17:51
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Первым делом надо дождаться загрузки изображения - addEventListener
Когда изображение загрузится, зафиксируй его BitmapData и уже потом в цикле наделай с него новых Bitmap и расставь их по нужным местам.
__________________
Поймай яблоко 2!

Старый 22.10.2009, 23:32
PRosTo_LEva вне форума Посмотреть профиль Отправить личное сообщение для PRosTo_LEva Найти все сообщения от PRosTo_LEva
  № 3  
Ответить с цитированием
PRosTo_LEva

Регистрация: Oct 2009
Сообщений: 25
а как зафиксировать его с помощью BitmapData ?

Старый 22.10.2009, 23:52
murz вне форума Посмотреть профиль Отправить личное сообщение для murz Найти все сообщения от murz
  № 4  
Ответить с цитированием
murz
[+1 10.12.10]

Регистрация: Feb 2006
Сообщений: 148
Отправить сообщение для murz с помощью ICQ
надо дождаться загрузки картинки, сохранить ее битмапДату, а потом отрисовать нужную фигуру(круг, прямоугольник) используя метод beginBitmapFill(), вот ссылка http://help.adobe.com/ru_RU/AS3LCR/F...itmapFill.html

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

Регистрация: Oct 2009
Сообщений: 25
По умолчанию Большое спасибо всем

Выполнил скрипт вот таким вот образом:

Код AS3:
var hpLoader:Loader = new Loader();
hpLoader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
hpLoader.load(new URLRequest("img/18.gif"));
function initHandler(event:Event):void {
            var hpLoader:Loader = Loader(event.target.loader);
			var picture:Bitmap = (hpLoader.content as Bitmap);
			for (var i:int=0; i<5; i++){		
			var hpimages:Bitmap = new Bitmap(picture.bitmapData);
				hpimages.x = (30+i*5);
			super.addChild(hpimages);}
}
Поставленную задачу выполняет, но вот мне почему-то кажется что намудрил я сильно.
Вариант решения задачи нашел на etcs.ru, отдельное спасибо автору. Он мне, к стати, уже не раз помогал.

Старый 23.10.2009, 01:44
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Код AS3:
var hpLoader:Loader = new Loader();
hpLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, initHandler);
hpLoader.load(new URLRequest("img/18.gif"));
 
function initHandler(event:Event):void {
            var picture:Bitmap = e.target.loader.content;
            var hpImages:Array = new Array();
            for (var i:uint = 0; i < 5; i++)
            {		
                 hpImages[i] = new Bitmap(picture.bitmapData);
                 hpImages[i].x = (30 + i*5);
                 addChild(hpImages);
            }
}
Только вот если задача таки растайлить — тогда конечно, как советовал murz, целесообразней залить изображением область.
__________________
Поймай яблоко 2!


Последний раз редактировалось Zebestov; 23.10.2009 в 01:46.
Старый 23.10.2009, 02:32
PRosTo_LEva вне форума Посмотреть профиль Отправить личное сообщение для PRosTo_LEva Найти все сообщения от PRosTo_LEva
  № 7  
Ответить с цитированием
PRosTo_LEva

Регистрация: Oct 2009
Сообщений: 25
Еще крайне глупый вопрос, но я не знаю как быть.. у меня по верх картинки должен быть текст а он получается под картинками =(

Старый 23.10.2009, 03:04
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Делай addChild текста после того, как понаставишь картинок — кто последний, тот и сверху.
Это в случае если они все (текст, картинки) дети одного контейнера.
__________________
Поймай яблоко 2!

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

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

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


 


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


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