Here's what I've done so far:
http://www.fileden.com/files/2009/12...Untitled-1.swf
The circle objects are generated from a class. There is only 1 circle object, the blue circle is stopped at frame 1 and the red circle is stopped at frame 2.
I don't know how to detect collisions between the circles (I want something to happen if a blue circle touches a red one) because I don't know how to uniquely identify each one.
Code for timeline:
Code:
// Variables
var frameno:Number =0;
var circno:Number=0;
var test:Array = new Array();
// Event listeners
cmdAdd1.addEventListener(MouseEvent.CLICK, AddHandler);
cmdAdd2.addEventListener(MouseEvent.CLICK, AddHandler);
addEventListener(Event.ENTER_FRAME,enterFrameHandler);
// Functions
function AddHandler(event:MouseEvent):void{
var buttonName:String = event.target.name;
switch(buttonName){
case "cmdAdd1":
frameno=1;
break;
case "cmdAdd2":
frameno=2;
break;
}
var newCircle:BlueCircle = new BlueCircle();
test.push(newCircle);
circno++;
trace (test[1]);
trace(test.length);
this.addChild(newCircle);
newCircle.x = Math.random()*300;
newCircle.y = Math.random()*200;
newCircle.alpha = .2+Math.random()*.5;
newCircle.Setup(frameno);
//var scale:Number = .2+Math.random()*2;
var scale:Number = 0.5;
newCircle.scaleX = newCircle.scaleY = scale;
}
function enterFrameHandler(event:Event):void{
// if (BlueCircle.hitTestObject(BlueCircle)
// && BlueCircle.currentFrame == 2
// && BlueCircle.currentFrame == 1)
// {
// trace("test");
// }
}
Code for class script:
Code:
package {
import flash.display.*;
import flash.events.*;
public class BlueCircle extends MovieClip {
var xspeed = 5;
var yspeed = 5;
var ticker = 0;
var tickersec=0;
public function BlueCircle()
{
this.addEventListener(Event.ENTER_FRAME, MoveCircle);
}
public function Setup(val:Number):void
{
this.gotoAndStop(val);
}
function MoveCircle(e:Event)
{
this.x += xspeed;
this.y += yspeed;
ticker++;
// check screen boundaries
if (this.x>stage.stageWidth-15){this.xspeed=-5};
if (this.x<15){this.xspeed=5};
if (this.y>stage.stageHeight-15){this.yspeed=-5};
if (this.y<15){this.yspeed=5};
// ticker
if (ticker==25){
tickersec++; ticker=0; // 25 fps, so add 1 second
}
if (tickersec==30){
tickersec=0;
parent.removeChild(this); // remove instance after x seconds
this.removeEventListener(Event.ENTER_FRAME, MoveCircle);
};
}
}
}