Mar
Mar

Reputation: 323

Flash SWF, reading the file contents from inside the browser, possible?

I have an actionscript project which I deploy as both a Air desktop application and in the browser using the Flash plugin.

My desktop deployment reads the SWF file itself, creates a hash of the file and send it to my server. If the hash does not match whats expected the SWF then uploads itself to my server for further examination. This all uses the flash.filesystem libraries.

Can the same be done when deployed as Flash file in the browser. I do not have access to flash.filesystem for browser deployment.

Does a way other than using filesystem exist to read the SWF itself.

Upvotes: 0

Views: 603

Answers (3)

Organis
Organis

Reputation: 7316

According to this article (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Worker.html) your entire SWF content is accessible via loaderInfo.bytes:ByteArray so there's no need to load anything. Enjoy.

Fallback to loading:

var aRequest:URLRequest = new URLRequest;

// Property loaderInfo.url contains the full path to the SWF.
aRequest.url = loaderInfo.url;

var aLoader:URLLoader = new URLLoader;

// Set data format to binary instead of default text.
aLoader.dataFormat = URLLoaderDataFormat.BINARY;
aLoader.addEventListener(Event.COMPLETE, onReady);
aLoader.load(aRequest);

function onReady(e:Event):void
{
    var anSWF:ByteArray = aLoader.data as ByteArray;
    trace(anSWF.length);
}

Upvotes: 2

VC.One
VC.One

Reputation: 15881

To get the SWF bytes, use URLStream API to receive bytes into some bytearray variable.

You can then use ByteArray API to read (process) the bytearray.

Upvotes: 1

Koby Douek
Koby Douek

Reputation: 16675

You can deploy your Flex code to an AIR desktop application, which is translated to a SWF file, which can be used in browsers as an embedded object. Please read more here.

Upvotes: 0

Related Questions