Цитата(Antoxer_92 @ 13.11.2011 - 21:14)

Но он так же не дает доступ к контенту!!!
Да, это работает без всяких серверных скриптов.
А что имеется в виду под доступом к контенту? Только ширина и высота? Должна считываться. Или что-то другое?
Что он показывает в свойствах sourceData? Выдает ошибку безопасности?
PSМожно еще так попробовать написать:
Код
loader.loadBytes(ext_photo.data, new LoaderContext(false, ApplicationDomain.currentDomain));
add:Ага. Все-таки URLLoader тут не катит. Ну тогда переходим к плану "Б" о котором я говорил выше и на который изначально была дана ссылка и - вуаля - все работает:
Код
package
{
import flash.display.*
import flash.events.*
import flash.net.*
import flash.text.*;
import flash.system.*
/**
* ...
* @author chingachgoog@mail.ru
*/
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private var ext_photo:Loader
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
ext_photo = new Loader()
ext_photo.load(new URLRequest("http://upload.wikimedia.org/wikipedia/commons/a/aa/Kronung_Heinrich_II.jpg"))
ext_photo.contentLoaderInfo.addEventListener(Event.COMPLETE, extLoaded)
ext_photo.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, toErr)
ext_photo.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, toErr)
}
private function toErr(e:*):void {
setText(e.toString())
}
private var loader:Loader
private function extLoaded(e:Event):void { // Данные мы получили, теперь грузим их заново сами в себя!
loader = new Loader()
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, introReady)
loader.loadBytes(ext_photo.contentLoaderInfo.bytes);
addChild(loader)
}
private function introReady (e:Event):void {
var sourceData:DisplayObject = DisplayObject((e.target as LoaderInfo).content)
// Собственно можно считывать параметры sourceData
setText(sourceData.width+" "+sourceData.height)
}
private var tf:TextField
private function setText(str:String):void {
if (!tf) {
tf = new TextField()
tf.autoSize = TextFieldAutoSize.LEFT
tf.wordWrap = true
addChild(tf)
}
tf.appendText("\r\r"+str)
}
}
}