Вход

Просмотр полной версии : Картинки не подгружаются


Probity
28.08.2012, 02:29
Создал приложение Вконтакте для загрузки картинок с диска и из сети. Картинки из сети грузились нормально, но с обновлением перестали по каким-то политическим соображениям. Как это можно обойти?

tsarapkabel
28.08.2012, 02:58
Интересно, сколько ещё подобных (http://www.flasher.ru/forum/showthread.php?t=183537) тем после обновления fp будет? :)

Probity
28.08.2012, 17:40
Напомнило день, когда отменили переход по ссылкам не в _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
Хм... сейчас проверим, насколько я понимаю информация крайне актуальна. Только вот не понял какой выход из сложившейся ситуации.

i.o.
29.08.2012, 14:56
Можно, например, пустить весь трафик через свой сайт (или любой с бесплатным хостингом и доменным именем. с поддержкой серверных скриптов), где лежит "правильный" кросдоменник. На этом сайте есть php скрипт, к примеру, отдающий байты картинок уже и с вконтактов и с гугла и откуда угодно в общем то...

Probity
29.08.2012, 17:27
Может нужно попросить (кто по англ. нормально пишет) у Adobe сделать две разные функции подгрузки картинок и флэшек? Безопасность же с флэшками связана, картинки вряд ли могут кому-то навредить.

Ну и второе - в AS2.0 тоже есть подобные ограничения? Может сделать загрузчик на нем и загружать его в основную флэшку на AS3.0?

AlexCooper
29.08.2012, 18:43
Я немогу понять как вообще теперь грузить изображения...?? Потому что у меня не ифрейм приложения и доступа так же нет.

ChuwY
29.08.2012, 20:02
картинки вряд ли могут кому-то навредить.
Это сделано для того, чтобы вы картинкам не навредили :)

Probity
29.08.2012, 20:08
Это сделано для того, чтобы вы картинкам не навредили :)

А чем взятие Битмап Даты может навредить картинке? Что-то вроде "использование без разрешения автора"? По такой логике можно и в браузере запретить сохранение картинок.

Krusty
29.08.2012, 20:34
Это сделано в том числе и для антихотлика, поскольку при запросе правильный http_referrer не передается, точнее не во всех браузерах. Плюс-политика разрешения пользования.

Probity
11.09.2012, 18:00
Так и не нашли решения? Нужно, чтобы пользователь Вк просто вбивал любую ссылку на .jpg и открывалось изображение для редактирования и сохранения на стенку, как до обновления.

GBee
11.09.2012, 18:26
http://flasher.ru/forum/blog.php?b=588

PainKiller
12.09.2012, 18:59
Это сделано для того, чтобы вы картинкам не навредили

насколько я понимаю, это делается адобом для недопущения дос-атак через флеш, а то будет 10 тыс флешек какого нибудь популярного приложения грузить картинку с одного домена.

Котяра
12.09.2012, 19:06
для недопущения дос-атак через флеш
Глупость. Грузить то можно.

PainKiller
12.09.2012, 20:09
Глупость. Грузить то можно.
Да об этом не подумал. Тогда наверное только авторские права остаются.