EmbedCode class generates html code for your .swf files. You can define url, size, parameters, flashVars and the result is valid standard (<object>, <params>, <embed>) html code, that you can just copy paste into your htmls, blogs, gigya widgets etc.
- sk.yoz.html.EmbedCode
- Application
package sk.yoz.html.EmbedCode.as:
package sk.yoz.html { import flash.display.LoaderInfo; import flash.net.URLVariables; public class EmbedCode extends Object { private var _params:Object = {}; private var _flashVars:URLVariables; private var _width:uint; private var _height:uint; private var _url:String; private var loaderInfo:LoaderInfo; private var parameters:Object; public var encodeAmpersands:Boolean = false; public function EmbedCode(loaderInfo:LoaderInfo = null, parameters:Object = null) { super(); this.loaderInfo = loaderInfo; this.parameters = parameters; useActualURL(); useActualFlashVars(); } public static function suggest(loaderInfo:LoaderInfo = null, parameters:Object = null, encodeAmpersands:Boolean = false):EmbedCode { var embedCode:EmbedCode = new EmbedCode(loaderInfo, parameters); embedCode.encodeAmpersands = encodeAmpersands; embedCode.useActualURL(); embedCode.useActualSize(); embedCode.useActualFlashVars(); return embedCode; } public static function containsProtocol(path:String):Boolean { return path.indexOf("http://") == 0 || path.indexOf("https://") == 0; } public static function urlToDomain(url:String):String { if(!containsProtocol(url)) return null; var index:int = url.indexOf("/", 9); if(index == -1) return null; return url.substr(0, index); } public function get domain():String { return urlToDomain(url); } public function addParam(param:String, value:String):void { _params[param] = value; } public function set params(value:Object):void { _params = value; } public function get params():Object { return _params; } public function addFlashVar(variable:String, value:String):void { if(!flashVars) flashVars = new URLVariables(); _flashVars[variable] = value; } public function set flashVars(value:URLVariables):void { _flashVars = value; } public function get flashVars():URLVariables { return _flashVars; } public function get flashVarsQueryString():String { var queryString:String = flashVars.toString(); if(encodeAmpersands) queryString = queryString.replace(/\&/g, "&"); return queryString; } public function set width(value:uint):void { _width = value; } public function get width():uint { return _width; } public function set height(value:uint):void { _height = value; } public function get height():uint { return _height; } public function set url(value:String):void { _url = value; } public function get url():String { return _url; } public function toString():String { var key:String; var r:String = ''; r += '<object width="' + width + '" height="' + height + '">'; r += '<param name="movie" value="' + url + '"></param>'; for(key in params) r += '<param name="' + key + '" value="' + params[key] + '"></param>'; if(flashVars) r += '<param name="FlashVars" value="' + flashVarsQueryString + '"></param>'; r += '<embed src="' + url + '" width="' + width + '" height="' + height + '" type="application/x-shockwave-flash"'; for(key in params) r += ' ' + key + '="' + params[key] + '" '; if(flashVars) r += ' FlashVars="' + flashVarsQueryString + '" '; r += '></embed>'; r += '</object>'; return r; } public function useActualURL():void { if(!loaderInfo) return; url = loaderInfo.url; } public function useActualSize():void { if(!loaderInfo) return; width = loaderInfo.width; height = loaderInfo.height; } public function useActualFlashVars():void { flashVars = new URLVariables(); if(!parameters) return; for(var key:String in parameters) addFlashVar(key, parameters[key]); } } }
Application
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="init()" xmlns:html="sk.yoz.html.*"> <mx:Script> <![CDATA[ import sk.yoz.html.EmbedCode; private function init():void { code1.text = EmbedCode.suggest(loaderInfo, parameters, true).toString(); var embedCode2:EmbedCode = new EmbedCode(); embedCode2.encodeAmpersands = true; embedCode2.width = 100; embedCode2.height = 100; embedCode2.url = "http://domain/my.swf"; embedCode2.addFlashVar("myFlashVar", "123"); embedCode2.addFlashVar("mySuperFlashVar", "okey"); embedCode2.addParam("wmode", "transparent"); embedCode2.addParam("allowfullscreen", "true"); code2.text = embedCode2.toString(); } ]]> </mx:Script> <mx:TextArea id="code1" width="100%" height="100%" /> <mx:TextArea id="code2" width="100%" height="100%" /> </mx:Application>
code1.text:
<object width="500" height="375"><param name="movie" value="file:///D:/work/flex/...swf"></param><param name="FlashVars" value="isAdmin=true&isFacebook=true"></param><embed src="file:///D:/work/flex/...swf" width="500" height="375" type="application/x-shockwave-flash" FlashVars="isAdmin=true&isFacebook=true" ></embed></object>
code2.text:
<object width="100" height="100"><param name="movie" value="http://domain/my.swf"></param><param name="wmode" value="transparent"></param><param name="allowfullscreen" value="true"></param><param name="FlashVars" value="mySuperFlashVar=okey&myFlashVar=123"></param><embed src="http://domain/my.swf" width="100" height="100" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" FlashVars="mySuperFlashVar=okey&myFlashVar=123" ></embed></object>