My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
JavaScripting_inside_Flash  
Updated Feb 4, 2010 by burd...@gmail.com

JavaScript'ing inside Flash:

package{
	import aw.external.JSInterface;
	import aw.external.jsinterface.JSDynamic;
	import aw.external.jsinterface.objects.JSArray;
	import aw.external.jsinterface.objects.JSHTMLElement;
	import aw.external.jsinterface.objects.JSNode;
	
	import flash.display.Sprite;
	[SWF(width="20", height="20")]
	public class DOMExample extends Sprite{
		public function DOMExample():void{
			super();
			JSInterface.initialize(this);
			this.changeTitleByDOM();
			this.insertIFrame();
		}
		/** Insert <iframe/> element with alternate content
		 * 
		 */
		protected function insertIFrame():void{
			var body:JSDynamic = JSInterface.document.getElementsByTagName('body')[0];
			var frame:JSDynamic = JSInterface.document.createElement("iframe");
			frame.width = 300;
			frame.height = 300;
			if(JSInterface.navigator.appName.indexOf('Microsoft')>=0){
				frame.onreadystatechange = function():void{
					trace(frame.readyState);
				};
			}else{
				frame.onload = function():void{
					trace('iFrame loaded');
				};
			}
			frame.src = 'http://actualwave.com';
			body.appendChild(frame);
		}
		/** Change window title
		 * 
		 */
		protected function changeTitleByDOM():void{
			var arr:JSArray = JSInterface.document.firstChild.childNodes;
			var head:JSNode = arr[0];
			arr = head.childNodes;
			var len:int = arr.length;
			var item:JSHTMLElement;
			for(var i:int=0; i<len; i++){
				item = JSDynamic.convert(arr[i], JSHTMLElement);
				if(item.nodeName.toLowerCase()=='title'){
					item.text = "JSInterface rulez!";
					break;
				}
			}
			// simpliest way
			//JSInterface.document.title = "JSInterface rulez!";
		}
	}
}

You can download this code from examples package or with sources.


Sign in to add a comment
Powered by Google Project Hosting