Просмотр полной версии : Картинки не подгружаются
Создал приложение Вконтакте для загрузки картинок с диска и из сети. Картинки из сети грузились нормально, но с обновлением перестали по каким-то политическим соображениям. Как это можно обойти?
tsarapkabel
28.08.2012, 02:58
Интересно, сколько ещё подобных (http://www.flasher.ru/forum/showthread.php?t=183537) тем после обновления fp будет? :)
Напомнило день, когда отменили переход по ссылкам не в _blank в AS 2.0 и все менюшки сломались...
Ещё убрали возможность вызывать новый Fullscreen одновременно с выходом из него. :D
AlexCooper
29.08.2012, 13:39
Вот Вам класс.
package src {
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.utils.ByteArray;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.net.URLRequest;
import flash.display.Sprite;
public class loadPictures extends Sprite {
public var bitmap:Bitmap;
public function loadPictures($url):void {
bitmap = new Bitmap();
var req:URLRequest = new URLRequest($url);
var _picLoader:Loader = new Loader();
_picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loader2ByteArray);
_picLoader.load(req);
}
private function loader2ByteArray(evt:Event):void {
var lInfo:LoaderInfo = LoaderInfo(evt.target);
var ba:ByteArray = lInfo.bytes;
reloadByteArray(ba);
}
private function reloadByteArray(ba:ByteArray):void {
var reloader:Loader = new Loader();
reloader.loadBytes(ba);
reloader.contentLoaderInfo.addEventListener(Event.COMPLETE, reloaderComplete);
}
private function reloaderComplete(evt:Event):void {
var imageInfo:LoaderInfo = LoaderInfo(evt.target);
var bmd:BitmapData = new BitmapData(imageInfo.width,imageInfo.height);
bmd.draw(imageInfo.loader);
bitmap = new Bitmap(bmd);
bitmap.smoothing = true;
addChild(bitmap);
dispatchEvent(new Event("LOAD_COMPLETE"));
}
}
}
примерimport src.loadPictures;
var maxsize:uint = 300;
var image:loadPictures = new loadPictures("http://www.images.com/image.jpg");
image.addEventListener("LOAD_COMPLETE", resize);
addChild(image);
private function resize(e:Event):void{
var k = maxsize/Math.max(e.target.width,e.target.height);
e.target.width *= k;
e.target.height *= k;
}
Добавлено через 2 минуты
Недостаток: Отсутствие альфа канала у png
Aquahawk
29.08.2012, 13:42
Сходите по ссылочке выше и почитайте пожалуйста. Не работает ваш класс на 11.4 плеере и на 11.3.31 в хроме который тоде не работает. Обращение bytes кинет SecurityError если нет разрешения. Пофиксили этот баг, в своих проектах тоже смотрите и переписывайте, т.к. в хроме точно всё автоматом обновилось и картинки попропадали у всех.
AlexCooper
29.08.2012, 14:01
Хм... сейчас проверим, насколько я понимаю информация крайне актуальна. Только вот не понял какой выход из сложившейся ситуации.
Можно, например, пустить весь трафик через свой сайт (или любой с бесплатным хостингом и доменным именем. с поддержкой серверных скриптов), где лежит "правильный" кросдоменник. На этом сайте есть php скрипт, к примеру, отдающий байты картинок уже и с вконтактов и с гугла и откуда угодно в общем то...
Может нужно попросить (кто по англ. нормально пишет) у Adobe сделать две разные функции подгрузки картинок и флэшек? Безопасность же с флэшками связана, картинки вряд ли могут кому-то навредить.
Ну и второе - в AS2.0 тоже есть подобные ограничения? Может сделать загрузчик на нем и загружать его в основную флэшку на AS3.0?
AlexCooper
29.08.2012, 18:43
Я немогу понять как вообще теперь грузить изображения...?? Потому что у меня не ифрейм приложения и доступа так же нет.
картинки вряд ли могут кому-то навредить.
Это сделано для того, чтобы вы картинкам не навредили :)
Это сделано для того, чтобы вы картинкам не навредили :)
А чем взятие Битмап Даты может навредить картинке? Что-то вроде "использование без разрешения автора"? По такой логике можно и в браузере запретить сохранение картинок.
Это сделано в том числе и для антихотлика, поскольку при запросе правильный http_referrer не передается, точнее не во всех браузерах. Плюс-политика разрешения пользования.
Так и не нашли решения? Нужно, чтобы пользователь Вк просто вбивал любую ссылку на .jpg и открывалось изображение для редактирования и сохранения на стенку, как до обновления.
http://flasher.ru/forum/blog.php?b=588
PainKiller
12.09.2012, 18:59
Это сделано для того, чтобы вы картинкам не навредили
насколько я понимаю, это делается адобом для недопущения дос-атак через флеш, а то будет 10 тыс флешек какого нибудь популярного приложения грузить картинку с одного домена.
для недопущения дос-атак через флеш
Глупость. Грузить то можно.
PainKiller
12.09.2012, 20:09
Глупость. Грузить то можно.
Да об этом не подумал. Тогда наверное только авторские права остаются.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.