Просмотр полной версии : Загрузка jpg и присвоение ЕЙ Linkage
Помогите. Уже не первый день мучаю вас вопросами. Наконец смог сформулировать и понять, что мне конкретно нужно.
Нужно что бы загружалась картинка. Ей присвоивался 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);
}
При нажатии кнопки - удалить Linkage, что бы можно было его присвоить следующей картинки
Помогите плиз. Уже почти неделю мочаюсь то с одним, то с другим. Учусь потихоньку.
Linkage можно присвоить ТОЛЬКО объекту в библиотеке fla, в swf это невозможно.
Однако для вашей задачи нужно совсем другое. А именно:
1. Загрузить картинку в мувиклип.
2. Создать пустой объект BitmapData под размеры картинки
3. Снять изображение из мувилипа в BitmapData с помощью метода draw ().
4. Удалить загрузочный мувиклип.
Что то неполучается... Что я неправильно делаю?
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);
}
Исходник: 18849
попробуйте так:
var pic:DistortBitmap = InstanceManager.createMC(this, DistortBitmap, newbmp, 5, 3);
upd: и onLoadComplete() на onLoadInit() заменить
Спасибо огроменное! Вы гении! Все заработало!
Есть еще наверное ошибка тут...
Столкнулся с еще одной проблеммой - При каждом вызове этого кода все больше и больше пожирается системных ресурсов.
Раз 20 кликнул на кнопочку и комп уже висит...
Подскажите, где ошибка. Видимо что то загружается и не удаляется. Остается в памяти...
Molecula
11.02.2008, 11:02
Хм, может dispose() поможет.
Не помогает.
Вот какой у меня в итоге код:
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();
}
Подскажите, где ошибка.
Помогите пожалуйста! Если бы я сам мог разобратся - я бы не спрашивал...
Я залил полный исходник сюда: исходник (http://stass.my1.ru/Ya.zip) (10 Мб)
саму флэшку, что бы поглядеть характер тормозов, можно глянуть тут (http://stass.my1.ru/). (400 кб) Через несколько раз нажатий на кнопку next или back становится заметно, как мувик начинает тормозить. Кинолента начинает двигатся рывками. И т.п.
При каждом шаге, createMC создает новый мувиклип с картинкой, не удаляя старый.
Ох! Спасибо! Какой же я идиот! =)) Все заработало!
http://anekdotov.net/pic/postcards/beer/bottle_gold_03.gifhttp://anekdotov.net/pic/postcards/beer/bottle_gold_03.gif
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.