XML exercise

(download)

//////FLA file/////

 
var dataLoader:URLLoader = new URLLoader(); 
dataLoader.load(new URLRequest("http://idisk.mac.com/meluzgorsh/Public/Posterous/fruit.xml")); 
 
 
dataLoader.addEventListener(Event.COMPLETE, onDataLoaded); 
 
 
var fruit:XML; 
 
function onDataLoaded(evt:Event):void { 
 fruit = new XML(dataLoader.data); 
 
 for (var i:Number = 0; i < fruit.berry.length(); i++) { 
 var box:MovieClip=new Box ; 
 box.x=80; 
 
 box.y = 30 + (box.height + 10)* i; 
 box.num = i 
 
 
 addChild(box); 
 box.txt.text=fruit.berry[i].kind; 
 box.txt.textColor = fruit.berry[i].tint; 
 box.addEventListener(MouseEvent.CLICK, onClick); 
 box.buttonMode = true; 
 box.txt.mouseEnabled = false; 
 } 
} 
 
 
function onClick (evt:MouseEvent){ 
 
 txtBig.text = fruit.berry[evt.currentTarget.num].taste; 
 
} 
 

///XML file////

Click here to download:
fruit.xml (1 KB)
(download)

Navigation + Mask + Class

(download)

////////// MASK CLASS///////

 
package { 
	 
	import flash.display.*; 
	import gs.TweenLite; 
	import gs.easing.*; 
	import flash.filters.* 
	 
	public class ImageMask extends MovieClip{ 
		public var rad:Number; 
		private var _mskX:Number; 
		private var _mskY:Number; 
		private var _maskingShape:MovieClip; 
		private var _blur:BlurFilter = new BlurFilter; 
		 
 
		 public function ImageMask(mc:MovieClip, mskX:Number, mskY:Number, radius:Number) { 
			_maskingShape = new MovieClip() 
			addChild(_maskingShape); 
			rad = radius 
			_maskingShape.x = mskX 
			_maskingShape.y = mskY 
			drawInMask(); 
			mc.cacheAsBitmap=true; 
			_maskingShape.cacheAsBitmap=true; 
		 
			////////////////////////////////////////////////// 
			mc.mask = _maskingShape; 
			////////////////////////////////////////////////// 
		} 
		 
		private function drawInMask():void { 
				var colors:Array=[0xFF00FF,0x00FFFF]; 
				var alphas:Array=[1,0]; 
				var ratios:Array=[150,255]; 
				_maskingShape.graphics.lineStyle(); 
				_maskingShape.graphics.beginFill(0xFF00FF, 1) 
				_maskingShape.graphics.drawCircle(0, 0, rad); 
				 
			} 
		public function tweenMask (xBlur:Number, yBlur:Number, speed:Number):void { 
			TweenLite.from (_maskingShape, speed, {scaleX:0, scaleY:0, ease:Quad.easeOut}) 
			_blur.blurX = xBlur; 
			_blur.blurY = yBlur; 
			_maskingShape.filters = [_blur] 
		} 
	} 
			 
} 
 

///// IMAGES CLASS//////

 
 
package { 
 
	import flash.display.*; 
	import gs.TweenLite; 
	import gs.easing.*; 
 
	public class Images extends MovieClip { 
		public var vertSize:Number; 
		public var horSize:Number; 
 
		public function Images(posX:Number, posY:Number, frameNumber:Number) { 
			x=posX; 
			y=posY; 
			gotoAndStop(frameNumber); 
			vertSize=370; 
			horSize=370; 
		} 
	} 
} 
 

//MAIN FLA///////////

 
 
import gs.TweenLite; 
import gs.easing.*; 
 
var container:Sprite = new Sprite(); 
container.x=25; 
container.y=15; 
addChild(container); 
 
var imageMask: ImageMask; 
var imageWidth:Number; 
var maskPosX:Number; 
var maskPosY:Number; 
var images:MovieClip; 
 
var scaleUp:Number=2.5; 
var scaleDown:Number=1; 
 
buildNav(5, 5); 
 
function buildNav(navNumber:uint, gap:Number):void { 
	for (var i:uint = 0; i<navNumber; i++) { 		var nav:MovieClip = new Nav(); 		nav.y = i * (nav.height + gap); 		container.addChild(nav); 		nav.buttonMode=true; 		nav.txt.mouseEnabled=false; 		nav.txt.text = "navigation " + (i+1); 		nav.addEventListener(MouseEvent.ROLL_OVER, onOver); 		nav.addEventListener(MouseEvent.ROLL_OUT, onOut); 		nav.addEventListener(MouseEvent.CLICK, onClick); 		TweenLite.from(nav, .5, {x: - 150, ease:Back.easeOut, delay: i/10}); 		addEventListener(Event.ENTER_FRAME, posNav); 		nav.indexOrder = i+1 	} } function posNav(evt:Event):void { 	for (var i:uint = 1; i><container.numChildren; i++) { 		var currentNav:MovieClip=MovieClip(container.getChildAt(i)); 		var prevNav:MovieClip=MovieClip(container.getChildAt(i-1)); 		currentNav.y=prevNav.y+prevNav.height+5; 	} } function onClick(evt:MouseEvent):void { 	reset(0x003366, images); 	var nav:MovieClip = MovieClip(evt.currentTarget) 	images = new Images(350, 30, nav.indexOrder); 	imageMask = new ImageMask (images, images.x + images.horSize/2, images.y + images.vertSize/2, 170); 	imageMask.tweenMask (30, 30, 0.5) 	nav.txt.textColor=0xCC3300; 	addChild(images) 	addChild(imageMask) 	addChild(container) } function onOver(evt:MouseEvent):void { 	TweenLite.to(evt.currentTarget, 0.5, {scaleX: scaleUp, scaleY:scaleUp, x:0, 				 						ease: Quad.easeOut}); } function onOut(evt:MouseEvent):void { 	TweenLite.to(evt.currentTarget, 0.5, {scaleX: scaleDown, scaleY:scaleDown, x:0, 				 						ease: Quad.easeOut}); } function reset(col:Number, mc:MovieClip):void { 	if (mc) { 		removeChild(mc) 	} 	 	for (var i:uint = 0; i><container.numChildren; i++) { 		var nav:MovieClip=MovieClip(container.getChildAt(i)); 		nav.txt.textColor=col; 	} } 
>

more and more practice on Classes. Solidifying my knowledge…

(download)

////////////// CAR CLASS /////////

 
 
package { 
 
	import flash.display.MovieClip; 
	import flash.events.Event; 
	import flash.events.MouseEvent; 
 
 
	public class Car extends MovieClip { 
		var _speed:Number ; 
		var _end:Number; 
		 
		public function Car(speed:Number, end:Number) { 
			this.addEventListener(MouseEvent.CLICK, onClick); 
			_speed = speed; 
			_end = end; 
			this.buttonMode = true; 
 
		} 
		private function moveCar(evt:Event){ 
			this.x -= _speed; 
			if (this.x <= _end){ 
				this.removeEventListener(Event.ENTER_FRAME, moveCar); 
				 
			} 
				 
		} 
		private function onClick(evt:MouseEvent){ 
			this.addEventListener(Event.ENTER_FRAME, moveCar); 
		} 
		 
		 
 
	} 
} 
 
 
 
 

////////////// CAR B CLASS /////////

 
 
package { 
	 
	import flash.display.MovieClip; 
	import flash.events.Event; 
	import flash.events.MouseEvent; 
	import gs.TweenLite; 
	import gs.easing.*; 
	 
	public class CarB extends MovieClip{ 
		 
		public function CarB(){ 
			this.buttonMode = true; 
		} 
		 
		public function changeColor(col:Number){ 
			TweenLite.to (this, 2,{tint:col}); 
			 
		} 
		 
	} 
	 
	 
} 
 
 
 

////////////// fla file /////////

 
 
var car:MovieClip = new Car(23, 26); 
addChild(car); 
car.x = 600; 
car.y = 100; 
 
var carB:MovieClip = new CarB(); 
addChild(carB); 
carB.x = 300; 
carB.y = 250; 
 
carB.addEventListener(MouseEvent.CLICK, onClick); 
 
function onClick(evt:MouseEvent){ 
	carB.changeColor(0xFF00CC); 
} 
 
 
 
 
 
 

practicing Classes : Inheritance + linking Classes

(download)

////////////// BALL CLASS ////////////////////


 
 
package { 
	import flash.display.MovieClip; 
	import flash.events.Event; 
 
	public class Ball extends MovieClip { 
 
		private var _speed:Number; 
		private var _rightEdge:Number; 
		private var _clip1:MovieClip; 
		private var _clip2:MovieClip; 
 
 
		public function Ball(num:Number, num2:Number, clip1:MovieClip, clip2:MovieClip) { 
			this.addEventListener(Event.ENTER_FRAME,onLoop); 
			_speed=num; 
			_rightEdge=num2; 
			_clip1=clip1; 
			_clip2=clip2; 
 
		} 
		private function onLoop(evt:Event) { 
			this.x+=_speed; 
			if (this.x>=_rightEdge) { 
				this.removeEventListener(Event.ENTER_FRAME,onLoop); 
				_clip1.visible=true; 
				_clip2.visible=true; 
 
 
			} 
 
		} 
		public function growIt(scale:Number,tint:Number) { 
			this.scaleX=this.scaleY=scale; 
			this.alpha=tint; 
 
 
		} 
	} 
 
 
} 
 


////////////// NAV CLASS ////////////////////

 
 
package { 
	import flash.display.MovieClip; 
	import flash.events.Event; 
	import flash.events.MouseEvent; 
	import flash.filters.BlurFilter; 
	 
 
	public class Nav extends MovieClip { 
		 
		 
		var blur:BlurFilter = new BlurFilter(); 
		 
		 
		public function Nav() { 
			this.addEventListener(MouseEvent.ROLL_OVER, onOver); 
			this.addEventListener(MouseEvent.ROLL_OUT, onOut); 
			this.buttonMode = true; 
			 
		} 
		private function onOver(evt:MouseEvent){ 
			this.filters = [blur]; 
			 
		} 
		private function onOut(evt:MouseEvent){ 
			this.filters = []; 
		} 
	} 
} 
 
 
 


////////////// SUB CLASS ////////////////////

 
 
 
package { 
 
	import flash.display.MovieClip; 
	import flash.events.Event; 
	import flash.events.MouseEvent; 
 
	public class Sub extends Nav { 
 
		public function Sub() { 
 
			setUpEents(); 
		} 
 
		private function setUpEents() { 
 
			this.addEventListener(MouseEvent.ROLL_OVER,onOver); 
			this.addEventListener(MouseEvent.ROLL_OUT,onOut); 
 
		} 
		private function onOver(evt:MouseEvent) { 
			this.scaleX=scaleY=1.05; 
		} 
		private function onOut(evt:MouseEvent) { 
			this.scaleX=scaleY=1; 
		} 
 
 
	} 
} 
 
 
 


////////////// fla file ////////////////////

 
 
var nav:MovieClip = new Nav(); 
nav.x=225; 
nav.y=50; 
addChild(nav); 
nav.visible = false; 
 
var sub:MovieClip = new Sub(); 
sub.x=nav.x; 
sub.y=nav.y+nav.height+13; 
addChild(sub); 
sub.visible = false; 
 
 
 
var ball:MovieClip=new Ball(5,stage.stageWidth-38, nav, sub); 
ball.x=70; 
ball.y=200; 
addChild(ball); 
ball.addEventListener(MouseEvent.CLICK, onClick); 
 
 
function onClick(evt:MouseEvent) { 
	ball.growIt(1.7, 0.2); 
 
} 
 
 
 
 

Practice on Classes #2 (with public Function)

 
 
package { 
	import flash.display.MovieClip; 
	import flash.events.MouseEvent; 
	import flash.events.Event; 
	import gs.TweenLite; 
	import gs.easing.*; 
	import flash.filters.BlurFilter; 
	 
 
 
 
	public class Kong extends MovieClip { 
		private var scale:Number; 
		private var blur:BlurFilter = new BlurFilter() 
		 
		public function Kong() { 
			scale = 0.75 
			setUpKong(scale); 
 
		} 
		private function setUpKong(changeSize:Number) { 
			this.scaleX = this.scaleY = changeSize; 
			this.addEventListener(MouseEvent.ROLL_OVER, onOver); 
			this.addEventListener(MouseEvent.ROLL_OUT, onOut); 
			this.buttonMode = true; 
 
		} 
		private function onOver(evt:MouseEvent){ 
			TweenLite.to(this, 1,{scaleX:2, scaleY:2, ease:Quad.easeOut}); 
		} 
		private function onOut(evt:MouseEvent){ 
			TweenLite.to(this, 1,{scaleX:scale, scaleY:scale, ease:Quad.easeOut}); 
		} 
		public function blurKong(num:Number, qual:Number){ 
			this.filters = [blur]; 
			blur.blurX = blur.blurY = num 
			blur.quality = qual 
 
		} 
		 
	} 
} 
 
 


/////////////////////// CODE FROM MAIN TIMELINE ///////////////////////


 
 
stage.addEventListener(MouseEvent.CLICK, onStageClick); 
function onStageClick(evt:MouseEvent) { 
	kong.blurKong(40, 1); 
	stage.removeEventListener(MouseEvent.CLICK, onStageClick); 
} 
 
 

(download)

[/code]

practice on Classes #1

(download)

 
package { 
	import flash.display.MovieClip; 
	import flash.events.Event; 
	import flash.events.MouseEvent; 
 
	public class Cat extends MovieClip { 
		public function Cat() { 
			setUpEvents(); 
		} 
		private function onLoop(evt:Event) { 
			this.rotation+=20; 
		} 
		private function setUpEvents() { 
			this.addEventListener(MouseEvent.ROLL_OVER, onOver); 
			this.addEventListener(MouseEvent.ROLL_OUT, onOut); 
 
		} 
		private function onOver(evt:Event) { 
			addEventListener(Event.ENTER_FRAME, onLoop); 
		} 
		private function onOut(evt:Event) { 
			removeEventListener(Event.ENTER_FRAME, onLoop); 
		} 
	} 
} 
 

Conditionals + EnterFrame +MathRandom + Zeno's

(download)

 
var destMoveY:Number=pinball_mc.y; 
var destMoveX:Number=pinball_mc.x; 
 
pinball_mc.buttonMode = true; 
 
addEventListener(Event.ENTER_FRAME, onLoop); 
function onLoop(evt:Event) { 
	pinball_mc.x += (destMoveX-pinball_mc.x)/2; 
	pinball_mc.y += (destMoveY-pinball_mc.y)/2; 
 
	if ((pinball_mc.x - 0) <.5) { 
		destMoveX=400-pinball_mc.width; 
		destMoveY=Math.random()*(600-pinball_mc.width); 
	} 
	if (((400-pinball_mc.width)-pinball_mc.x )<.1) { 
		destMoveX=0; 
		destMoveY=Math.random()*(600-pinball_mc.width); 
	} 
} 
 
pinball_mc.addEventListener(MouseEvent.CLICK, clickPinball); 
function clickPinball(evt:MouseEvent) { 
	destMoveX=400-pinball_mc.width; 
	destMoveY=Math.random()*(600-pinball_mc.width); 
} 

Math Random + forLoop

(download)

 
import gs.TweenLite ; 
import fl.motion.easing.*; 
 
for ( var i:int =0; i<18; i++){ 
	var bunny:MovieClip = new blacky(); 
	bunny.scaleX = bunny.scaleY =.5; 
	bunny.x = 50+i*(bunny.width+20); 
	bunny.y = 200; 
	addChild(bunny); 
	bunny.rotation = Math.random()*360; 
	bunny.gotoAndStop(Math.ceil(Math.random()* 6)); 
	bunny.addEventListener(MouseEvent.ROLL_OVER, onOver); 
	bunny.buttonMode = true; 
} 
function onOver(evt:Event){ 
	TweenLite.to (evt.currentTarget, 1, {rotation:0, ease:Back.easeOut}); 
} 

Array + for Loop + Image Loader + Dynamic var

(download)

 
import gs.TweenLite; 
import gs.easing.*; 
 
var mochi:Array = ["http://idisk.mac.com/meluzgorsh/Public/Posterous/Images/mochiGreen.jpg", 			"http://idisk.mac.com/meluzgorsh/Public/Posterous/Images/mochiPink.jpg", 			"http://idisk.mac.com/meluzgorsh/Public/Posterous/Images/mochiBlue.jpg", 			"http://idisk.mac.com/meluzgorsh/Public/Posterous/Images/mochiBrown.jpg"]; 
 
var titleBox:MovieClip = new Title(); 
var mochiTitle:Array = ["Green", "Pink", "Blue", "Brown"]; 
 
 
 
function addTitle(evt:MouseEvent){ 
	titleBox.x = evt.currentTarget.x; 
	addChild(titleBox); 
	titleBox.y = evt.currentTarget.y +evt.currentTarget.height+ 5; 
	titleBox.txt.text = mochiTitle[evt.currentTarget.num]; 
	TweenLite.from (titleBox, 1,{alpha:0}); 
} 
 
for (var i:int = 0; i<4; i++) { 
	var frame:MovieClip = new Frame(); 
	frame.x= 30+ i* (frame.width + 5); 
	frame.y=60; 
	addChild(frame); 
	TweenLite.from (frame, 1, {x:-200, ease:Back.easeOut, delay:i/4}); 
	var imageLoader:Loader=new Loader; 
	imageLoader.load(new URLRequest(mochi[i])); 
	frame.addChild(imageLoader); 
	frame.addEventListener(MouseEvent.CLICK, addTitle); 
	frame.buttonMode = true; 
	frame.num = i; 
} 

For Loop + Custom Function + Dynamic Var

(download)

 
cat.addEventListener(MouseEvent.CLICK, clickCat); 
cat.buttonMode = true; 
 
function clickCat(evt:MouseEvent){ 
	buildNav(SubBox, 5, 50); 
} 
 
function buildNav(box:Class, num:Number, pos:Number) { 
 
	for (var i:int = 0; i<num; i++) { 		var nav:MovieClip = new box; 		nav.x = pos + (nav.width + 10) * i; 		nav.y = pos; 		addChild(nav); 		nav.addEventListener(MouseEvent.CLICK, showSub); 		nav.buttonMode=true; 	} } var subNav:MovieClip = new SubBox; function showSub(evt:MouseEvent) { 	subNav.x = evt.currentTarget.x; 	subNav.y = evt.currentTarget.y + evt.currentTarget.height + 5; 	addChild(subNav); } 
>