I have given up on trying to get the source of a webpage (I don't own this server) in AS3. All it does is throw an sandbox violation error (2048). So far I have come to a conclusion that the only solutions possible are:
- Make my web server serve the content to the swf.
- Make a proxy server for the swf with crossdomain.xml.
Somehow, both the options are being rejected by my seniors & I am being pushed for a better solution.
I don't have any idea if anything else is possible, does anyone here have one??
EDIT : Maybe some hack where 'A' may not need the policy file to communicate directly with 'B' :
As I can see you run your app in browser, I can suggest downloading HTML with javascript (e.g. with
XMLHttpRequest
), and then passing it to your app viaExternalInterface
. I'm not sure that it's better then solutions you posted. Anyway it's client-side hack and different from yours.UPD: another way is to create an invisible frame and do
document.getElementByID('frameID').src=url;
there, after that passdocument.getElementByID('frameID').innerHtml
to swf with ExternalInterfaceI think a simple PHP proxy is the easiest way:
And call it with
not tested, but in general it should work.
AS3 has a few ways of loading html from web pages. The most convenient is probably to use a
URLLoader.load()
function.For more information: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html
If done correctly, this should load the web page's html as a string.
If I understand your problem correctly, this probably isn't working. So of course, there are a few work-arounds you could use.
I remember in an old project I was doing with a similar obstacle, my solution was to have an external SWF written in
AS2
(hosted on another server, my FTP server). My main SWF loaded the AS2 SWF usingLoader.load()
. Communicating between the two SWFs usingLoacalConnection
s (link). For some reason, the server I had uploaded my SWF to didn't allow AS3'sURLLoader.load()
but allowed AS2'ssendAndLoad()
.Another work-around I used, I used an external AS3 SWF, for a similar reason.
I recommend you experiment with various methods, your specific work-around may not be what I have recommended, however my recommendations may point you in the right direction.
And of course the good thing with my work-around is that your seniors won't notice a difference. The main SWF will be hosted on the same server, and will function as intended, with a minimal increase to load time.