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

ActionScript'ing inside HTML page:

<script type="text/javascript">
	function onJSIInstalled(){
		try{
			var w = 100;
			var h = 20;
			var m = FLObject.create('flash.geom.Matrix');
			m.call('createGradientBox', [w, h, Math.PI/2]);
			var root = FLObject.root();
			var btn = FLObject.create('flash.display.SimpleButton');
			btn.set('x', 100);
			btn.set('y', 100);
			btn.set('upState', createState(w, h, 0xaaaaaa, 0x666666, m));
			btn.set('hitTestState', btn.get('upState'));
			btn.set('overState', createState(w, h, 0xeeeeee, 0x888888, m));
			btn.set('downState', createState(w, h, 0xeeeeee, 0x666666, m));
			btn.call('addEventListener', ['click', this.btnClickHandler]);
			root.call('addChild', [btn]);
		}catch(e){
			alert([e.message, e.description, e]);
		}
	};
	function createState(w, h, c1, c2, m){
		var sprite = FLObject.create('flash.display.Sprite');
		var g = sprite.get('graphics');
		g.call('beginGradientFill', [
			'linear', 
			new FLSimple([c1, c2]), 
			new FLSimple([1, 1]), 
			new FLSimple([0, 255]), 
			m
		]);
		g.call('drawRoundRect', [0, 0, w, h, 8]);
		g.call('endFill');
		var txt = FLObject.create('flash.text.TextField');
		txt.set('width', w);
		txt.set('height', h);
		txt.set('htmlText', '<p align="center"><font face="Verdana" size="10">Click button!</font></p>');
		sprite.call('addChild', [txt]);
		return sprite;
	}
	function btnClickHandler(e){
		setTimeout(traceEvent, 1, ['CLICK!']);
	}
	function traceEvent(){
		alert('CLICK!');
	}
</script>

Use internal JavaScript framework(now in development):

<script type="text/javascript" src="flash_objects.js"></script>
<script type="text/javascript">
	flash('flash.geom.Matrix');
	flash('flash.text.TextField');
	flash('flash.display.Sprite');
	flash('flash.display.SimpleButton');
	flash('flash.display.GradientType');
	flash('flash.display.Graphics');
	function onJSIInstalled(){
		try{
			var w = 100;
			var h = 20;
			var m = new Matrix();
			m.createGradientBox(w, h, Math.PI/2);
			var root = new Sprite(FLObject.root());
			var btn = new SimpleButton();
			btn.x(100);
			btn.y(100);
			btn.upState(createState(w, h, 0xaaaaaa, 0x666666, m));
			btn.hitTestState(btn.upState());
			btn.overState(createState(w, h, 0xeeeeee, 0x888888, m));
			btn.downState(createState(w, h, 0xeeeeee, 0x666666, m));
			btn.addEventListener('click', this.btnClickHandler);
			root.addChild(btn);
		}catch(e){
			alert(e.message);
		}
	};
	function createState(w, h, c1, c2, m){
		var sprite = new Sprite();
		var g = sprite.graphics();
		g.beginGradientFill(GradientType.LINEAR, [c1, c2], [1, 1], [0, 255], m);
		g.drawRoundRect(0, 0, w, h, 8);
		g.endFill();
		var txt = new TextField();
		txt.width(w);
		txt.height(h);
		txt.htmlText('<p align="center"><font face="Verdana" size="10">Click button!</font></p>');
		sprite.addChild(txt);
		return sprite;
	}
	function btnClickHandler(e){
		setTimeout(traceEvent, 1, ['CLICK!']);
	}
	function traceEvent(){
		alert('CLICK!');
	}
</script>

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


Sign in to add a comment
Powered by Google Project Hosting