0 Replies - 1092 Views - Last Post: 05 May 2009 - 08:08 AM

#1 amexudo  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 10
  • Joined: 14-March 09

Ball that eats the mouse and when you shake the mouse it falls.

Posted 05 May 2009 - 08:08 AM

Hello everyone,
i am not very experienced in developing but i am trying to make a flash website and cannot make one thing work: Inside the "Who are we?" page of the attached swf (click on "Who are we?") there is a ball that jumps from the water and i would like it to behavior in a way that when the mouse approaches the ball, it eats the mouse and the mouse disappears. And when the ball is moving within the mouse, if you shake the mouse, it falls.
I cannot obtain the effect i would like.
Can someone try to give me directions?
Thank you and i hope you enjoy my site's design.
http://www.dreamfarmer.com/ - this is the website
package
{
	import fl.transitions.*;
	import fl.transitions.easing.*;
	
	import flash.display.MovieClip;
	import flash.events.*;
	import flash.ui.Mouse;
	import flash.utils.Timer;
	
	public class MyBall extends MovieClip
	{
		
		private const MOUSE_CLOSE:String = "mouse close";
		private const MOUSE_SHAKE:String = "mouse shake";
		public var glued:Boolean;//whether the ball is glued to mouse or not
		private var _count:Number = 0;//counts how many times the user shakes the mouse
		private var lastMouseX:Number;
		private var lastMouseY:Number;
		private var fishTimer:Timer;
		private var myTimer:Timer;
		private var myTimer2:Timer;
		private var _myTweenX:Tween;
		private var _myTweenY:Tween;
		private var _edge:Boolean;
		private var _sideMove:Number;
		private var evt:Event;//event of approaching the mouse to the ball
		private var evt2:Event;//event of shaking the mouse
		
		public function MyBall()
		{
			this.x = 149.3;
			this.y = 555.3;
			this._sideMove = 100;
			this.glued = false;
			this.fishTimer = new Timer(1500);
			this.fishTimer.addEventListener(TimerEvent.TIMER,onTimerJump);
			this.fishTimer.start();
			evt = new Event(MOUSE_CLOSE);//event of approaching the mouse to the ball
			evt2 = new Event(MOUSE_SHAKE);//event of shaking the mouse
			this.myTimer = new Timer(5);
			this.myTimer.start();
			this.myTimer.addEventListener(TimerEvent.TIMER, onTimerEvent);
			addEventListener(this.MOUSE_CLOSE, onMouseClose);
			this.myTimer2 = new Timer(5);
			this.myTimer2.start();
			this.myTimer2.addEventListener(TimerEvent.TIMER, onTimer2);
		}
		
		
		//timer that the ball flies when it's not glued to the mouse
		private function onTimerJump(e:TimerEvent):void
		{
			if(this.glued == false)
			{
				this.fly();
			}
		}
		
		public function fly():void
		{
			if ((this.x > 530) || (this.x <100))
			{
				_edge = true;
			}
			else
			{
				_edge = false;
			}
			
			if(_edge)
			{
				_sideMove *= -1;
			}
				
			this._myTweenX = new Tween(this, "x", None.easeOut, this.x, this.x + _sideMove , 1.1, true);
			this._myTweenY = new Tween(this, "y", Strong.easeOut, this.y, this.y - 200, 0.6, true);
			this._myTweenY.addEventListener(TweenEvent.MOTION_FINISH, onTweenYEnd);
			
			
		}
		
		private function onTweenYEnd(e:TweenEvent):void
		{
			this._myTweenY = new Tween(this, "y", Strong.easeOut, this.y, this.y + 200, 1.1, true);
			this._myTweenX = new Tween(this, "x", Strong.easeOut, this.x, this.x + _sideMove/2, 0.6, true);
		}
		
		
		
		
		private function onMouseClose(e:Event):void {
			this.glued = true;
			addEventListener(MOUSE_SHAKE, onMouseShake);
		}
		
		//timer that checks if the mouse is close to the ball
		private function onTimerEvent(e:TimerEvent):void {
				
			if ((Math.abs(this.x - stage.mouseX) < 40) && (Math.abs(this.y - stage.mouseY) < 40)) {
				dispatchEvent(evt);//event of approaching the mouse to the ball
				this.fishTimer.stop();
			}
			
					
			if (this.glued == true) {
				Mouse.hide();
				this.x = stage.mouseX;
				this.y = stage.mouseY;
				this.myTimer2.addEventListener(TimerEvent.TIMER,onTimer2);
				this.myTimer.addEventListener(TimerEvent.TIMER, onTimerEvent);
			}
			else {
				this.fishTimer.start(); 
			} 
		}
		
		//timer for when the ball is glued
		function onTimer2(e:TimerEvent):void {
			if ((Math.abs(lastMouseX - stage.mouseX)>120) || (Math.abs(lastMouseY - stage.mouseY)>120)) {
				_count++;
			}
			else {
				_count = 0;
			}
			lastMouseX = mouseX;
			lastMouseY = mouseY;
			if (_count == 6) {
				dispatchEvent(evt2);//event of shaking the mouse
				_count = 0;
				//trace("shaked");
				removeEventListener(MOUSE_SHAKE, onMouseShake);
				
			}
		}
		
		//when the user shakes the mouse, the ball falls down
		function onMouseShake(e:Event):void {
			this.glued = false;
			this._myTweenY = new Tween(this,"y",None.easeIn,this.y, 500, 3);
			this.x = 149.3;
			this.y = 535.3; 
			Mouse.show();
			this.fishTimer.start();
			addEventListener(MOUSE_CLOSE, onMouseClose);
		}
	}
}



Is This A Good Question/Topic? 0
  • +

Page 1 of 1