Просмотр полной версии : дублирование загруженной графики
здравствуйте.
столкнулся с проблемой дублирования уже загруженной графики.
полистав форум я сделал такои код
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.
при работе локально все работает.как только выгружаю в сеть, дублирование не происходит.в чем проблема кто знает?
Это все запихано в одну вложенную функцию? Кошмар. Ну, для начала я бы посоветовал избавиться от такого, а уже потом выложить нормальный код, в случае чего.
AlexDesinger
26.10.2010, 19:55
думаю, лучше clone() использовать - кажись побыстрее работает.
ну а вы уверены, что дожидаетесь загрузки и делаете все вовремя? Уверены что путь правильный и пр.? Основная картинка видна или обоих нет? Больше инфы ф студию!
я новичок.но все же осмелюсь спросить.что кошмарного в том? что все это в 1 функции???
по сути ldr.contentLoaderInfo.addEventListener является слушателем.куда же мне его пихать?
просто то что саму суть функции я пихнул туда же..сделано потому что мне удобнее так.
по поводу инфы.
я менял event.init на complite (то есть дожилася загрузки) итог тот же самый.
все пути точные.
основная картинка видна всегда.
дополнительные не видны только в сети.
Не путайте одну функцию и одну вложенную функцию.
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
приятно, когда грамотные люди готовы просветить.спасибо :)
код теперь такой
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);
}
опять же..локально все работает.в сети нет
А картинка, случаем, не на другом домене? Ибо вероятно у вас не дебаг-плеер, никакой ошибки не вываливает, потому и не понять.
А картинка, случаем, не на другом домене?
да, она на другом сервере.
но разве это важно?
я же ее загрузил в флэш.
не работает именно функция перерисовки ее в другие контейнеры.
Загрузить-то загрузили, а вывести нельзя - политика безопасности. Вот и решили проблему.
Загрузить-то загрузили, а вывести нельзя - политика безопасности. Вот и решили проблему.
эммм...это что за политика такая??
я ее получил..и не могу с ней работать?)))
и нет никакких выходов из этои ситуации??
Ну, прочитайте про нее, на форуме много тем таких, ищите по этим ключевым словам.
вот пример.
мне надо загрузить картинку.и потом кучу раз с неи работать.
мне что?засылать каждый раз запрос на другои сервер????
должен же быть выход.
Если бы вы поискали в поиске, то нашли бы, как все это работает на самом деле.
вы можете хоть объяснить что мне искать???
из того, что я искал я создал тот код, что показывал.
http://www.flasher.ru/forum/showthread.php?t=144350&highlight=securityerror
Взять хотя бы эту тему.
Добавлено через 2 минуты
http://www.flasher.ru/forum/showthread.php?t=124462&highlight=securityerror
Или вот. У вас должна вылазить РТЕ SecurityError, вот про нее и ищите.
спасибо
Добавлено через 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
это почему так категорично?
+ к вопросу.
с чем связано?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.