![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2007
Адрес: Минск
Сообщений: 49
|
Помогите. Уже не первый день мучаю вас вопросами. Наконец смог сформулировать и понять, что мне конкретно нужно.
Нужно что бы загружалась картинка. Ей присвоивался Linkage. Именно ей, а не мувиклипу, в который ее можно загрузить. Потому что мне нужно после загрузки трансормировать ее вот этим кодом: function ldbmp() {
var bmp=BitmapData.loadBitmap("pic");
var pic:DistortBitmap=InstanceManager.createMC(this,DistortBitmap,bmp,5,3);
var distortPointsArr:Array=[];
distortPointsArr.push(new Point(128,52));
distortPointsArr.push(new Point(38,48));
distortPointsArr.push(new Point(38,176));
distortPointsArr.push(new Point(128,162));
pic.distort(distortPointsArr);
}
Помогите плиз. Уже почти неделю мочаюсь то с одним, то с другим. Учусь потихоньку.
__________________
Не разьбiць, не спынiць, не стрымаць. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Linkage можно присвоить ТОЛЬКО объекту в библиотеке fla, в swf это невозможно.
Однако для вашей задачи нужно совсем другое. А именно: 1. Загрузить картинку в мувиклип. 2. Создать пустой объект BitmapData под размеры картинки 3. Снять изображение из мувилипа в BitmapData с помощью метода draw (). 4. Удалить загрузочный мувиклип. |
|
|||||
|
Регистрация: May 2007
Адрес: Минск
Сообщений: 49
|
Что то неполучается... Что я неправильно делаю?
import com.silin.InstanceManager;
import com.silin.DistortBitmap;
import flash.display.BitmapData;
import flash.geom.*;
r = 0;
function DistBmp() {
var bmp = BitmapData.loadBitmap("newbmp");
var pic:DistortBitmap = InstanceManager.createMC(this, DistortBitmap, bmp, 5, 3);
var distortPointsArr:Array = [];
distortPointsArr.push(new Point(128, 52));
distortPointsArr.push(new Point(38, 48));
distortPointsArr.push(new Point(38, 176));
distortPointsArr.push(new Point(128, 162));
pic.distort(distortPointsArr);
}
if (r == 0) {
var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_obj:Object = new Object();
my_mcl.loadClip("pic1.jpg",clip);
my_obj.onLoadProgress = function(clip, bytesLoaded, totalBytes) {
progres_tf.text = Math.round(bytesLoaded/totalBytes*100)+"%";
};
my_obj.onLoadComplete = function(clip) {
newbmp = new BitmapData(200, 196, true, 0x0);
newbmp.draw(clip);
DistBmp();
delete my_obj;
delete my_mcl;
};
my_mcl.addListener(my_obj);
}
__________________
Не разьбiць, не спынiць, не стрымаць. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
попробуйте так:
upd: и onLoadComplete() на onLoadInit() заменить Последний раз редактировалось udaaff; 11.02.2008 в 06:13. |
|
|||||
|
Регистрация: May 2007
Адрес: Минск
Сообщений: 49
|
Спасибо огроменное! Вы гении! Все заработало!
__________________
Не разьбiць, не спынiць, не стрымаць. |
|
|||||
|
Регистрация: May 2007
Адрес: Минск
Сообщений: 49
|
Есть еще наверное ошибка тут...
Столкнулся с еще одной проблеммой - При каждом вызове этого кода все больше и больше пожирается системных ресурсов. Раз 20 кликнул на кнопочку и комп уже висит... Подскажите, где ошибка. Видимо что то загружается и не удаляется. Остается в памяти...
__________________
Не разьбiць, не спынiць, не стрымаць. |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Хм, может dispose() поможет.
__________________
john |
|
|||||
|
Регистрация: May 2007
Адрес: Минск
Сообщений: 49
|
Не помогает.
Вот какой у меня в итоге код: import com.silin.InstanceManager;
import com.silin.DistortBitmap;
import flash.display.BitmapData;
import flash.geom.*;
r = 1;
function slideshow() {
i = "pic"+r+".jpg";
function DistBmp() {
var bmp = BitmapData.loadBitmap("newbmp");
var pic:DistortBitmap = InstanceManager.createMC(this, DistortBitmap, newbmp, 5, 3);
var distortPointsArr:Array = [];
distortPointsArr.push(new Point(560, 90));
distortPointsArr.push(new Point(160, 100));
distortPointsArr.push(new Point(160, 480));
distortPointsArr.push(new Point(560, 410));
pic.distort(distortPointsArr);
}
var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_obj:Object = new Object();
my_mcl.loadClip(i,clip);
my_obj.onLoadProgress = function(clip, bytesLoaded, totalBytes) {
progres_tf.text = Math.round(bytesLoaded/totalBytes*100)+"%";
};
my_obj.onLoadInit = function(clip) {
newbmp.dispose();
newbmp = new BitmapData(200, 196, true, 0x0);
newbmp.draw(clip);
DistBmp();
delete my_obj;
delete my_mcl;
};
my_mcl.addListener(my_obj);
}
if (r == 1) {
slideshow();
}
__________________
Не разьбiць, не спынiць, не стрымаць. |
|
|||||
|
Регистрация: May 2007
Адрес: Минск
Сообщений: 49
|
Помогите пожалуйста! Если бы я сам мог разобратся - я бы не спрашивал...
Я залил полный исходник сюда: исходник (10 Мб) саму флэшку, что бы поглядеть характер тормозов, можно глянуть тут. (400 кб) Через несколько раз нажатий на кнопку next или back становится заметно, как мувик начинает тормозить. Кинолента начинает двигатся рывками. И т.п.
__________________
Не разьбiць, не спынiць, не стрымаць. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|