illangoo
08-29-2008, 06:42 AM
Hi frnds,
I am new to as3 , this is my as2 code just i want the code in as3
function checkLoop () {
var timerArray:Array = new Array ();
var myTime:Number = getTimer ();
this.onEnterFrame = function () {
var elapsedTime:Number = getTimer () - myTime;
var my_date:Date = new Date ();
timerArray.push (my_date.getSeconds ());
unique (timerArray);
if (elapsedTime > 3000) {
delete onEnterFrame;
checkLoop ();
trace (timerArray);
}
};
}
function unique (arr:Array) {
for (var y = 0; y < arr.length; ++y) {
for (var z = (y + 1); z <= arr.length; ++z) {
if (arr[y] == arr[z]) {
arr.splice (z, 1);
}
}
}
}
checkLoop ();
thanks
lordofduct
08-29-2008, 06:54 AM
and I want you code in tags...
just joking... anyways, I don't think anyone is gonna run right out and convert your code for you.
Try working on it yourself, and if you have any problems we are more then happy to lend a hand.
As a pointer if you want to listen for events in AS3 you no longer say ".onSomeEvent" you addEventListener.
like this:
[as]
this.addEventListener(Event.ENTER_FRAME, someFunction);
function someFunction(e:Event):void
{
//do stuff
}
edit:
oh and here is your code in as tags:
function checkLoop () {
var timerArray:Array = new Array ();
var myTime:Number = getTimer ();
this.onEnterFrame = function () {
var elapsedTime:Number = getTimer () - myTime;
var my_dateate = new Date ();
timerArray.push (my_date.getSeconds ());
unique (timerArray);
if (elapsedTime > 3000) {
delete onEnterFrame;
checkLoop ();
trace (timerArray);
}
};
}
function unique (arr:Array) {
for (var y = 0; y < arr.length; ++y) {
for (var z = (y + 1); z <= arr.length; ++z) {
if (arr[y] == arr[z]) {
arr.splice (z, 1);
}
}
}
}
checkLoop ();
Anil_kumar
08-29-2008, 07:12 AM
var timerArray:Array = new Array();
var myTime:Number;
function checkLoop():void {
myTime = getTimer();
stage.addEventListener(Event.ENTER_FRAME,OnEnterFr ame);
}
function unique(arr:Array):void {
for (var y:uint = 0; y<arr.length; ++y) {
for (var z = (y+1); z<=arr.length; ++z) {
if (arr[y] == arr[z]) {
arr.splice(z,1);
}
}
}
}
function OnEnterFrame(e:Event):void {
var elapsedTime:Number = getTimer()-myTime;
var my_date = new Date();
timerArray.push(my_date.getSeconds());
unique(timerArray);
if (elapsedTime>1000) {
stage.removeEventListener(Event.ENTER_FRAME,OnEnte rFrame);
checkLoop();
trace(timerArray);
}
}
checkLoop();
Anil
Flash Workshop (http://flash-workshop.blogspot.com/)
anilkumarnd@gmail.com
illangoo
08-29-2008, 09:57 AM
thanks its working but i need the out put like this
34,35,36,37
37,38,39,40
40,41,42,43
43,44,45,46
46,47,48,49
but your code generate like this
4,5,6,7
4,5,6,7,8,9,10
4,5,6,7,8,9,10,11,12,13
4,5,6,7,8,9,10,11,12,13,14,15,16
4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 ,23
lordofduct
08-29-2008, 10:24 AM
That's because your original code is making new Arrays each time, where the new code is reusing the same array and just adding to it.
in your onEnterFrame function, dump your array, you can dump it literally:
while(myArray.length) myArray.pop();
or you can just create a whole new array:
myArray = new Array();
Anil_kumar
08-29-2008, 10:25 AM
if u need the out put like this
34,35,36,37
37,38,39,40
40,41,42,43
43,44,45,46
46,47,48,49
use this code - its simple and handy ;)
//change this no.
var StartingNumber:Number = 34;
var UrArray:Array = new Array();
//change the speed
var TimerSpeed:uint = 100;
//change array length
var UrArrayLength = 4;
var MyTimer = new Timer(TimerSpeed);
MyTimer.start();
MyTimer.addEventListener(TimerEvent.TIMER,TimerHan dler);
function TimerHandler(e:TimerEvent):void {
UrArray.push(StartingNumber++);
if (UrArray.length >=UrArrayLength) {
trace(UrArray);
UrArray.splice(0,UrArray.length);
--StartingNumber;
}
}
illangoo
08-29-2008, 11:23 AM
yes, its working fine ...
Thank you.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.