PDA

Просмотр полной версии : дублирование загруженной графики


Dezar
26.10.2010, 19:31
здравствуйте.
столкнулся с проблемой дублирования уже загруженной графики.
полистав форум я сделал такои код


var url:URLRequest = new URLRequest(linkp);
var ldr:Loader = new Loader();
ldr.load(url);
pps3.addChild(ldr);
ldr.contentLoaderInfo.addEventListener(Event.INIT,function(e){
var bd:BitmapData = new BitmapData(pps3.width,pps3.height);
bd.draw(pps3);
var bmp:Bitmap = new Bitmap(bd);
pps2.addChild(bmp);

var bd2:BitmapData = new BitmapData(pps3.width,pps3.height);
bd2.draw(pps3);
var bmp2:Bitmap = new Bitmap(bd2);
pps.addChild(bmp2);
});


то есть графика из pps3 копируется в pps и pps2.
при работе локально все работает.как только выгружаю в сеть, дублирование не происходит.в чем проблема кто знает?

КорДум
26.10.2010, 19:51
Это все запихано в одну вложенную функцию? Кошмар. Ну, для начала я бы посоветовал избавиться от такого, а уже потом выложить нормальный код, в случае чего.

AlexDesinger
26.10.2010, 19:55
думаю, лучше clone() использовать - кажись побыстрее работает.
ну а вы уверены, что дожидаетесь загрузки и делаете все вовремя? Уверены что путь правильный и пр.? Основная картинка видна или обоих нет? Больше инфы ф студию!

Dezar
26.10.2010, 20:03
я новичок.но все же осмелюсь спросить.что кошмарного в том? что все это в 1 функции???
по сути ldr.contentLoaderInfo.addEventListener является слушателем.куда же мне его пихать?
просто то что саму суть функции я пихнул туда же..сделано потому что мне удобнее так.

по поводу инфы.
я менял event.init на complite (то есть дожилася загрузки) итог тот же самый.
все пути точные.
основная картинка видна всегда.
дополнительные не видны только в сети.

КорДум
26.10.2010, 20:08
Не путайте одну функцию и одну вложенную функцию.
http://www.flasher.ru/forum/showthread.php?t=141934&highlight=%E2%EB%EE%E6%E5%ED%ED%FB%E5+%F4%F3%ED%EA%F6%E8%E8
http://www.flasher.ru/forum/showthread.php?t=140089&highlight=%EF%EE%F7%E5%EC%F3+%ED%E5%EB%FC%E7%FF+%E8%F1%EF%EE%EB%FC%E7%EE%E2%E0%F2%FC

Dezar
26.10.2010, 20:22
приятно, когда грамотные люди готовы просветить.спасибо :)
код теперь такой


var url:URLRequest = new URLRequest(linkp);
var ldr:Loader = new Loader();
ldr.load(url);
pps3.addChild(ldr);
ldr.addEventListener(Event.COMPLETE, completeHandler);

.......
public function completeHandler(event:Event):void {
var bd:BitmapData = new BitmapData(pps3.width,pps3.height);
bd.draw(pps3);
var bmp:Bitmap = new Bitmap(bd);
pps2.addChild(bmp);

var bd2:BitmapData = new BitmapData(pps3.width,pps3.height);
bd2.draw(pps3);
var bmp2:Bitmap = new Bitmap(bd2);
pps.addChild(bmp2);
}


опять же..локально все работает.в сети нет

КорДум
26.10.2010, 20:29
А картинка, случаем, не на другом домене? Ибо вероятно у вас не дебаг-плеер, никакой ошибки не вываливает, потому и не понять.

Dezar
26.10.2010, 20:30
А картинка, случаем, не на другом домене?
да, она на другом сервере.
но разве это важно?
я же ее загрузил в флэш.
не работает именно функция перерисовки ее в другие контейнеры.

КорДум
26.10.2010, 20:31
Загрузить-то загрузили, а вывести нельзя - политика безопасности. Вот и решили проблему.

Dezar
26.10.2010, 20:40
Загрузить-то загрузили, а вывести нельзя - политика безопасности. Вот и решили проблему.
эммм...это что за политика такая??
я ее получил..и не могу с ней работать?)))
и нет никакких выходов из этои ситуации??

КорДум
26.10.2010, 20:43
Ну, прочитайте про нее, на форуме много тем таких, ищите по этим ключевым словам.

Dezar
26.10.2010, 20:51
вот пример.
мне надо загрузить картинку.и потом кучу раз с неи работать.
мне что?засылать каждый раз запрос на другои сервер????
должен же быть выход.

КорДум
26.10.2010, 20:57
Если бы вы поискали в поиске, то нашли бы, как все это работает на самом деле.

Dezar
26.10.2010, 20:58
вы можете хоть объяснить что мне искать???
из того, что я искал я создал тот код, что показывал.

КорДум
26.10.2010, 20:59
http://www.flasher.ru/forum/showthread.php?t=144350&highlight=securityerror
Взять хотя бы эту тему.

Добавлено через 2 минуты
http://www.flasher.ru/forum/showthread.php?t=124462&highlight=securityerror
Или вот. У вас должна вылазить РТЕ SecurityError, вот про нее и ищите.

Dezar
26.10.2010, 21:06
спасибо

Добавлено через 6 часов 37 минут
дело оказалось вовсе не в кроссдомаин.проблема в чем-то другом.флэшка и картинка в одной папке на серваке..
картинка грузится.но не дублируется

Добавлено через 6 часов 49 минут
ншел ответ на форуме..с кросдомаином запутали получается и мы отошли в дебри..
ответ таков


loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLs);
public function onLs(evt:Event):void {
var bd:BitmapData = Bitmap(loader.content).bitmapData;
pps2.addChild(new Bitmap(bd,"auto",true));
pps.addChild(new Bitmap(bd,"auto",true));

}

AlexDesinger
27.10.2010, 18:19
не используйте "COMPLETE", используйте "INIT".

cleptoman
27.10.2010, 18:37
это почему так категорично?

Dezar
27.10.2010, 19:08
+ к вопросу.
с чем связано?