Goodbye Image Proxy - Thank You flickr!
I’m very happy about Yahoo/flickr’s great move to implement crossdomain.xml on their flickr image servers. This finally allows to use the BitmapData.draw() command with images downloaded from flickr.com without having to route it through a proxy on your own domain first. For me this means that I will save a lot of traffic on my various mashups and on top of that the download of the images should even be quicker.
One thing you have to watch out for if you are going to adapt your old AS2 code to these changes is that it is not enough to just download the images directly. You will have to instruct Flash first to download the new policy files from the flickr servers whenever it tries to access them. Since flickr distributes its images across several servers that have different domains like http://farm2.static.flickr.com, http://farm3.static.flickr.com and so on the easiest way to accomplish that is to use the MovieClipLoader class and to set its checkPolicyFile property to “true”. This will instruct Flash to check for the crossdomain.xml file automatically on the respective server. Here’s a simple AS2 example:
import flash.display.BitmapData;
var holder:MovieClip = createEmptyMovieClip(”test”,0);
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.checkPolicyFile = true;
mcl.loadClip(”http://farm2.static.flickr.com/1395/776413036_ea6bf98846_m_d.jpg”,holder);
mcl.addListener( this );
var holder2:MovieClip = createEmptyMovieClip(”test2″,1);
function onLoadInit()
{
var bm:BitmapData = new BitmapData( holder._width,holder._height,false,0)
bm.draw(holder);
holder2.attachBitmap(bm,0);
holder2._x = holder._x + holder._width + 2;
}
The alternative way would be to use System.security.loadPolicyFile() but you will have to do that for every farm that you access - it is not enough just to load it from http://static.flickr.com/crossdomain.xml
For the AS3 way of dealing with this I recommend you Abdul Quabiz’ old post about this topic.




