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

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

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

Регистрация: Jun 2002
Адрес: on the backyard
Сообщений: 285
Отправить сообщение для greep с помощью ICQ
По умолчанию LoadMovie

Есть вопрос: если я подгружаю динамически через лоадМуви несколько картинок в мувиклип и программно дублирую его, то картинки внутри не дублируются... Как поступить в этом случае? А еще: если я всё же буду каждый раз по одному и тому же URL загружать одну и ту же картинку, будет ли она доставаться из кеша или каждый раз будет подгружаться?

Старый 23.12.2009, 11:45
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
После загрузки отрисуйте картинку в битмапу, и в процессе дублирования мувиков отрисовывайте этой битмапой получаемые при дублировании мувики.
И не используйте LoadMovie, используйте MovieClipLoader, иначе будут ошибки, разбираться с которыми никому не захочется.
Ответ на второй опрос - в другой теме, которую нужно создать.

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

Регистрация: Jun 2002
Адрес: on the backyard
Сообщений: 285
Отправить сообщение для greep с помощью ICQ
2mooncar: Честно говоря, я ни разу так не делал... Не могли бы вы объяснить в 2х словах как отрисовать картинку в битмапу или сказать где об этом можно почитать? А за кусок кода был бы весьма благодарен. С уважением

Старый 23.12.2009, 12:05
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Для начала перепишите ваш код под MovieClipLoader.

Насчет BitmapData - вот кусок из рабочего кода:
Код AS1/AS2:
import flash.display.BitmapData;
var EVENTSBITMAP:Array = new Array(); //массив фото
 
//Этот блок должен у вас идти внутри метода onLoadInit (который даст гарантированную загрузку)
//Создаем битмапу на основе картинки, которая внутри traget_mc:
var myImg:BitmapData = new BitmapData(target_mc._width, target_mc._height, false);
myImg.draw(target_mc);
EVENTSBITMAP[1] = myImg; //Сохраняем изображение в массив
В нужный момент отрисовываем (у вас "нужным моментом", видимо, должен стать момент, когда продублированный мувик готов):
Код AS1/AS2:
image.attachBitmap(EVENTSBITMAP[1], 0);
Поскольку это кусок из рабочего кода, упрощать и обобщать я ничего не стал, вам обязательно нужно открыть хелп, и посмотреть синтаксисы.

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

Регистрация: Jun 2002
Адрес: on the backyard
Сообщений: 285
Отправить сообщение для greep с помощью ICQ
Огромнейшее СПАСИБО. Буду разбираться

Добавлено через 18 минут
Что-то не то...

Код AS1/AS2:
import flash.display.BitmapData;
var EVENTSBITMAP:Array = new Array();
 
var loader:MovieClipLoader = new MovieClipLoader ();
loader.addListener (this);
this.onLoadInit = function () {
//trace ("Загрузили!");
 
var myImg:BitmapData = new BitmapData(_root.mc._width, _root.mc._height, false);
myImg.draw(_root.mc);
EVENTSBITMAP[1] = myImg;
 
};
loader.loadClip ("1.jpg", _root.mc);
 
duplicateMovieClip(_root.mc, "mc"+2, 255);
_root.mc2.attachBitmap(EVENTSBITMAP[1], 0);
_root.mc2._x = 5;
_root.mc2._Y = 5;

Старый 23.12.2009, 13:06
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Навскидку скажу - дублировать (и вообще все операции стартовать) тоже нужно по готовности загрузки и получения битмап-данных.
Еще ошибка - у вас аргумент target отсутствует в onLoadInit.

Добавлено через 5 минут
Опечатка _Y вместо _y


Последний раз редактировалось mooncar; 23.12.2009 в 13:10.
Старый 23.12.2009, 13:13
greep вне форума Посмотреть профиль Отправить личное сообщение для greep Найти все сообщения от greep
  № 7  
Ответить с цитированием
greep
 
Аватар для greep

Регистрация: Jun 2002
Адрес: on the backyard
Сообщений: 285
Отправить сообщение для greep с помощью ICQ
Мувиклип копируется но битмапа в нем не отрисовывается... Даже если сделать так...

Код AS1/AS2:
import flash.display.BitmapData;
var EVENTSBITMAP:Array = new Array();
 
var loader:MovieClipLoader = new MovieClipLoader ();
loader.addListener (this);
this.onLoadInit = function () {
//trace ("Загрузили!");
 
var myImg:BitmapData = new BitmapData(_root.mc._width, _root.mc._height, false);
myImg.draw(_root.mc);
EVENTSBITMAP[1] = myImg;
 
duplicateMovieClip(_root.mc, "mc"+2, 255);
_root.mc2.attachBitmap(EVENTSBITMAP[1], 0);
_root.mc2._x = 5;
_root.mc2._Y = 5;
 
};
loader.loadClip ("1.jpg", _root.mc);

Старый 23.12.2009, 13:15
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Либо ошибка при использовании метода duplicateMovieClip, либо ошибка при использовании одноименной функции.
Погодите, вообщем, сейчас попробую причесать.

Добавлено через 12 минут
Код AS1/AS2:
import flash.display.BitmapData;
var EVENTSBITMAP:Array = new Array();
 
 
function duplicate (item:MovieClip) {
	_root.createEmptyMovieClip('mc' + 2, _root.getNextHighestDepth());
	_root.mc2.attachBitmap(EVENTSBITMAP[1], 0);
	_root.mc2._x = 5;
	_root.mc2._y = 5;
}
 
 
var EVENTSBITMAP:Array = new Array();
var loader:MovieClipLoader = new MovieClipLoader ();
loader.addListener (this);
this.onLoadInit = function (target_mc:MovieClip) {
	var myImg:BitmapData = new BitmapData(target_mc._width, target_mc._height, false);
	myImg.draw(target_mc);
	EVENTSBITMAP[1] = myImg;
	duplicate (target_mc);
 
}
loader.loadClip ('1.jpg', _root.mc);

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

Регистрация: Jun 2002
Адрес: on the backyard
Сообщений: 285
Отправить сообщение для greep с помощью ICQ
2 mooncar: я пока успел лишь заменить ваш код на свой и все заработало. Сейчас всё разложу по полочкам. Хочу лишь сказать что я преисполнен благодарностью, Вы уже не в первый раз мне помогаете. Огромное Вам спасибо! С уважением

Старый 23.12.2009, 13:31
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если несколько:
Код AS1/AS2:
import flash.display.BitmapData;
var EVENTSBITMAP:Array = new Array();
var count:Number = 1;
 
function duplicate (item:MovieClip) {
	_root.createEmptyMovieClip('mc' + count, _root.getNextHighestDepth());
	_root.mc2.attachBitmap(EVENTSBITMAP[count], 0);
	_root.mc2._x = 5; //что-то с использованием count
	_root.mc2._y = 5;
}
 
 
var EVENTSBITMAP:Array = new Array();
var loader:MovieClipLoader = new MovieClipLoader ();
loader.addListener (this);
this.onLoadInit = function (target_mc:MovieClip) {
	count++;
	var myImg:BitmapData = new BitmapData(target_mc._width, target_mc._height, false);
	myImg.draw(target_mc);
	EVENTSBITMAP[count] = myImg;
	duplicate (target_mc);
 
}
//если несколько, то меняем count тут , а не в onLoadInit и меняем контейнер для загрузки
loader.loadClip (count + '.jpg', _root.mc);


Последний раз редактировалось mooncar; 23.12.2009 в 13:36.
Создать новую тему Ответ Часовой пояс GMT +4, время: 08:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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