Crowds
12-14-2009, 10:34 AM
Hi
I have a Movie that loads 15 images from XML and scales them down and puts them into three lines of 5. I want to randomly select one of these to animate but i'm not sure how...
I have assigned each one an id and know how to generate a random number but not sure how to applie that number to an asset that's already on the stage ?!
Kind of want to do something like
currentTarget = myMovieClip.id = randomNumber
Heres my code
package
{
import com.greensock.easing.*;
import com.greensock.TweenLite;
import flash.display.*;
import flash.events.*;
import flash.display.Loader;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import com.theflashblog.fp10.SimpleZSorter;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.geom.*;
public class videoWall extends MovieClip
{
private var len:Number = 15;
private var angleRot:Number = 0;
private var Y_count:Number = 1;
private var Y_am:Number = 10;
private var X_am:Number = 1;
private var Z_am:Number = 0;
private var Xscale:int;
private var Yscale:int;
private var loader:URLLoader;
private var t_Arr:Array = new Array();
public function videoWall():void
{
loader = new URLLoader(new URLRequest("assets/images.xml"));
loader.addEventListener(Event.COMPLETE, init);
}
private function init(e:Event):void
{
//create screens
var xml:XML = new XML(e.target.data);
var list:XMLList = xml.image;
for(var i:int=0; i<list.length(); i++)
{
//load the image in
var l:Loader = new Loader();
var r:Loader = new Loader();
var t:String = new String();
var ref:MovieClip = new MovieClip();
var nudge:Number;
l.load(new URLRequest(list[i].@src));
r.load(new URLRequest(list[i].@src));
t = list[i].@cont;
t_Arr.push(t);
if (Y_count == 6 || Y_count == 11 || Y_count == 16)
{
Y_am += 35;
X_am = 1;
}
if (X_am == 1){
angleRot = -35;
Z_am = -30;
nudge = -1;
}
if (X_am == 2){
angleRot = -15;
Z_am = -10;
nudge = -4;
}
if (X_am == 3){
angleRot = 0;
Z_am = 0;
nudge = 0;
}
if (X_am == 4){
angleRot = 15;
Z_am = -10;
nudge = 5;
}
if (X_am == 5){
angleRot = 35;
Z_am = -30;
nudge = 7;
}
var screen:screenPanel = new screenPanel();
screen.buttonMode = false;
l.scaleY = l.scaleX = 0.2;
r.scaleY = r.scaleX = 0.2;
screen.addChild(l);
ref.addChild(r);
r.x = 0;
r.y = 0;
sc.addChild(screen);
rc.addChild(ref);
screen.x = (X_am * 50) + nudge;
screen.y = Y_am + 10;
screen.z = Z_am;
screen.rotationY = angleRot;
ref.x = (X_am * 50) + nudge - 7;
ref.y = Y_am + 10;
ref.z = Z_am;
ref.rotationY = angleRot;
screen.id = [i];
screen.loc = [screen.x, screen.y];
Y_count++;
X_am++;
if (i == list.length)
{
animate();
}
}
sc.y = 0;
sc.x = stage.stageWidth - sc.width - 60;
rc.scaleY *= -1;
rc.y = (sc.y + sc.height) + 135;
rc.x = stage.stageWidth - sc.width - 60;
transform.perspectiveProjection.projectionCenter = new Point(sc.x + (sc.width / 2),sc.y + (sc.height / 2));
SimpleZSorter.sortClips(sc);
// add gradient mask
grad.x = stage.stageWidth - sc.width - 22;
grad.y = sc.y + sc.height + 18;
grad.width = sc.width;
rc.mask = grad;
}
//create a random number
private function randomNumber(low:Number, high:Number):Number
{
var low:Number = low;
var high:Number = high;
return Math.round(Math.random() * (high - low)) + low;
}
private function animate():void
{
var ob:Number = randomNumber(0,14);
//Heres where I need to link the random number to a movieclip
}
}
}
Any help much welcomed
Crowds
I have a Movie that loads 15 images from XML and scales them down and puts them into three lines of 5. I want to randomly select one of these to animate but i'm not sure how...
I have assigned each one an id and know how to generate a random number but not sure how to applie that number to an asset that's already on the stage ?!
Kind of want to do something like
currentTarget = myMovieClip.id = randomNumber
Heres my code
package
{
import com.greensock.easing.*;
import com.greensock.TweenLite;
import flash.display.*;
import flash.events.*;
import flash.display.Loader;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import com.theflashblog.fp10.SimpleZSorter;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.geom.*;
public class videoWall extends MovieClip
{
private var len:Number = 15;
private var angleRot:Number = 0;
private var Y_count:Number = 1;
private var Y_am:Number = 10;
private var X_am:Number = 1;
private var Z_am:Number = 0;
private var Xscale:int;
private var Yscale:int;
private var loader:URLLoader;
private var t_Arr:Array = new Array();
public function videoWall():void
{
loader = new URLLoader(new URLRequest("assets/images.xml"));
loader.addEventListener(Event.COMPLETE, init);
}
private function init(e:Event):void
{
//create screens
var xml:XML = new XML(e.target.data);
var list:XMLList = xml.image;
for(var i:int=0; i<list.length(); i++)
{
//load the image in
var l:Loader = new Loader();
var r:Loader = new Loader();
var t:String = new String();
var ref:MovieClip = new MovieClip();
var nudge:Number;
l.load(new URLRequest(list[i].@src));
r.load(new URLRequest(list[i].@src));
t = list[i].@cont;
t_Arr.push(t);
if (Y_count == 6 || Y_count == 11 || Y_count == 16)
{
Y_am += 35;
X_am = 1;
}
if (X_am == 1){
angleRot = -35;
Z_am = -30;
nudge = -1;
}
if (X_am == 2){
angleRot = -15;
Z_am = -10;
nudge = -4;
}
if (X_am == 3){
angleRot = 0;
Z_am = 0;
nudge = 0;
}
if (X_am == 4){
angleRot = 15;
Z_am = -10;
nudge = 5;
}
if (X_am == 5){
angleRot = 35;
Z_am = -30;
nudge = 7;
}
var screen:screenPanel = new screenPanel();
screen.buttonMode = false;
l.scaleY = l.scaleX = 0.2;
r.scaleY = r.scaleX = 0.2;
screen.addChild(l);
ref.addChild(r);
r.x = 0;
r.y = 0;
sc.addChild(screen);
rc.addChild(ref);
screen.x = (X_am * 50) + nudge;
screen.y = Y_am + 10;
screen.z = Z_am;
screen.rotationY = angleRot;
ref.x = (X_am * 50) + nudge - 7;
ref.y = Y_am + 10;
ref.z = Z_am;
ref.rotationY = angleRot;
screen.id = [i];
screen.loc = [screen.x, screen.y];
Y_count++;
X_am++;
if (i == list.length)
{
animate();
}
}
sc.y = 0;
sc.x = stage.stageWidth - sc.width - 60;
rc.scaleY *= -1;
rc.y = (sc.y + sc.height) + 135;
rc.x = stage.stageWidth - sc.width - 60;
transform.perspectiveProjection.projectionCenter = new Point(sc.x + (sc.width / 2),sc.y + (sc.height / 2));
SimpleZSorter.sortClips(sc);
// add gradient mask
grad.x = stage.stageWidth - sc.width - 22;
grad.y = sc.y + sc.height + 18;
grad.width = sc.width;
rc.mask = grad;
}
//create a random number
private function randomNumber(low:Number, high:Number):Number
{
var low:Number = low;
var high:Number = high;
return Math.round(Math.random() * (high - low)) + low;
}
private function animate():void
{
var ob:Number = randomNumber(0,14);
//Heres where I need to link the random number to a movieclip
}
}
}
Any help much welcomed
Crowds