|
|
|||||
Регистрация: Nov 2010
Сообщений: 18
|
loadBytes в браузере. Не работает.
Всем привет!
Помогите разобраться, пожалуйста. Код работает при нажатии Ctrl+enter, а в браузере swf не пашет. Код: public function Main() { Security.allowDomain("www.domen2.ru"); var loader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest('http://domen1.ru/script.php'+"?time=" + new Date().getTime()); loader.addEventListener(Event.COMPLETE, onComplete); loader.load(request); function onComplete(event:Event):void { trace(loader.data); var banners:Object = JSON.decode(loader.data); mytxt = new TextField(); addChild(mytxt); //mytxt.text = banners[0].img; mytxt.x = 300; mytxt.y = 10; for (var i in banners) { addImageToStage(banners[i].img, i); } } } public function addImageToStage(imgurl, number) { var imgReq:URLRequest = new URLRequest(imgurl); var imgLoader:Loader = new Loader(); imgLoader.load(imgReq); imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader2ByteArray); function loader2ByteArray(evt:Event):void { var lInfo:LoaderInfo = LoaderInfo(evt.target); var ba:ByteArray = lInfo.bytes; var reloader:Loader = new Loader(); mytxt.text += number + ' '; reloader.loadBytes(ba); mytxt.text += number + ' '; reloader.contentLoaderInfo.addEventListener(Event.COMPLETE, reloaderComplete); } function reloaderComplete(evt:Event):void { var imageInfo:LoaderInfo = LoaderInfo(evt.target); var bmd:BitmapData = new BitmapData(imageInfo.width,imageInfo.height); bmd.draw(imageInfo.loader); var resultBitmap:Bitmap = new Bitmap(bmd); resultBitmap.x = 2 + number * 55; resultBitmap.y = 2; resultBitmap.width = 52; resultBitmap.height = 75; addChild(resultBitmap); evt.currentTarget.removeEventListener(Event.COMPLETE, reloaderComplete); } } Помогите решить пожалуйста. Заранее спасибо! |
|
|||||
Регистрация: Dec 2006
Сообщений: 1,764
|
а ошибки какие показывает? судя по всему crossdomain, в нем причина
__________________
а за окном атлантический океан! |
|
|||||
Регистрация: Nov 2010
Сообщений: 18
|
Ошибок в браузере не видно, а во флеше все работает.
Застревает на строчке Можно ли как-нибудь обойти crossdomain? Добавлено через 2 минуты Собственно не работало без преобразования в byteArray, погуглил, нашёл http://www.inklink.co.at/blog/?p=14 сделал, как там написано, тоже не работает |
|
|||||
Регистрация: Nov 2010
Сообщений: 18
|
А без этого нельзя? )
Делаем баннер-крутилку для стороннего сайта (являемся его партнёрами), но на него ничего не выложить никак. Показов будет до тучи, ещё и картинки с нашего сервака нам не хотелось бы раздавать (и так флешка у нас лежать будет). Реально прям нельзя во флеше в браузере отобразить картинку с другого домена, не трогая последнего? Другие крутилки вроде работают ведь так? Если это очень глупые вопросы - не ругайтесь) |
|
|||||
Регистрация: Nov 2010
Сообщений: 18
|
Изменил функцию на такую
public function addImageToStage(imgurl, number) { var imgReq:URLRequest = new URLRequest('http://domain2.ru/test.jpg'); var imgLoader:Loader = new Loader(); imgLoader.load(imgReq); imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, reloaderComplete); function reloaderComplete(evt:Event):void { var imageInfo:LoaderInfo = LoaderInfo(evt.target); var bmd:BitmapData = new BitmapData(imageInfo.width,imageInfo.height); mytxt.text += number + ' '; bmd.draw(imageInfo.loader); mytxt.text += number + ' '; var resultBitmap:Bitmap = new Bitmap(bmd); resultBitmap.x = 2 + number * 55; resultBitmap.y = 2; resultBitmap.width = 52; resultBitmap.height = 75; addChild(resultBitmap); evt.currentTarget.removeEventListener(Event.COMPLETE, reloaderComplete); } } Добавлено через 6 минут Добавил картинку на тестовый домен, где разместил crossdomain.xml <?xml version="1.0"?> <!-- http://www.test-domain.ru/crossdomain.xml --> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy> |
|
|||||
Зачем вам битмапдата, объясните мне. Ну нельзя её юзать по соображениям безопасности без разрешения. Добавьте на сцену лоадер и успокойтесь. Если вы точно понимаете зачем вам нужна битмапдата то есть хак. Он может отпасть в любой момент. Раньше был другой хак, и он работал несколько лет, потом они его пофиксили.
__________________
:) |
|
|||||
Регистрация: Nov 2010
Сообщений: 18
|
Огромное спасибо! Просто флеш не профиль вообще, занимаемся копипастой, вот и не работает ничего...
Извините, за потраченное время и ещё раз огромное спасибо! |
Часовой пояс GMT +4, время: 00:38. |
|
« Предыдущая тема | Следующая тема » |
|
|