Question : Help converting a small AS2 script to AS3

Hi all,

I found some AS2 script i need on the net, problem is I haven't been able to successfully convert it to AS3 (my skills in AS2 are a bit limited)

Any help would be appreciated.

Thanks,

Xavier.
Code Snippet:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
/*
set up vars
p = number of points along the line; more = smoother curve
sx = start position of the wave
ex end of the wave
by = size of area
wl = the water level
wh = height of waves
ws = speed of wave; negative numbers make it go right
*/
for (var i = 0; i < 6; i++) {
this.createEmptyMovieClip("wave" + i, i);
var w:MovieClip = this["wave" + i];
w._y = 150;
w.p = 40;
w.sx = 0;
w.ex = Stage.width;
w.by = 1;
w.wl = 10;
w.wh = 55;
w.ws = -(0 + ((random(10) / 2) + .1) / 5000);
var Ld:String = String(i / 2);
if (Ld.length > 0) {
w.lh = 1;
} else {
w.lh = 0;
}
w.id = i;
w.sy = w.lh + w.wh + w.wl;
PI2 = Math.PI * 2;
//w._alpha = random(45) + 25;
//don't use alpha to CPU instensive try random colors instead
w.linecolor = 0xFFFFFF
//w.linecolor = random(255) << 16 | random(255) << 8 | random(200);
w.onEnterFrame = function() {
//begin with a clean canvas
this.clear();
this.lineStyle(this.lh,this.linecolor);
for (x = 0; x < this.p; x++) {
var r:Number = x / (this.p - 1);
var px:Number = this.sx + r * (this.ex - this.sx);
var py:Number = this.sy + this.wh * Math.sin(r * r * PI2 + getTimer() * this.ws);
if (x == 0) {
this.moveTo(px, py);
}
this.lineTo(px, py);
}
};
}
Open in New Window Select All

Answer : Help converting a small AS2 script to AS3

solved it myself :)

put this in your frame script


var myLine1:LineSprite = new LineSprite();
var myLine2:LineSprite = new LineSprite();
var myLine3:LineSprite = new LineSprite();
var myLine4:LineSprite = new LineSprite();
var myLine5:LineSprite = new LineSprite();
var myLine6:LineSprite = new LineSprite();

myLine1.initializeLineSprite(1);
myLine2.initializeLineSprite(2);
myLine3.initializeLineSprite(3);
myLine4.initializeLineSprite(4);
myLine5.initializeLineSprite(5);
myLine6.initializeLineSprite(6);

myLine1.addEventListener(Event.ENTER_FRAME,doEvent);
myLine2.addEventListener(Event.ENTER_FRAME,doEvent);
myLine3.addEventListener(Event.ENTER_FRAME,doEvent);
myLine4.addEventListener(Event.ENTER_FRAME,doEvent);
myLine5.addEventListener(Event.ENTER_FRAME,doEvent);
myLine6.addEventListener(Event.ENTER_FRAME,doEvent);

addChild(myLine1);
addChild(myLine2);
addChild(myLine3);
addChild(myLine4);
addChild(myLine5);
addChild(myLine6);

function doEvent(e:Event) {
      //begin with a clean canvas
      e.target.graphics.clear();
      e.target.graphics.lineStyle(e.target.lwidth,0xFFFFFF);
      for (var xx:int = 0; xx < e.target.p; xx++) {
            var r:Number = xx / (e.target.p - 1);
            var px:Number = e.target.sx + r * (e.target.ex - e.target.sx);
            var py:Number = e.target.sy + e.target.wh * Math.sin(r * r * e.target.PI2 + getTimer() * e.target.ws);
            if (xx == 0) {
                  e.target.graphics.moveTo(px, py);
            }
            e.target.graphics.lineTo(px, py);
            //trace("px:"+px+" py:"+py);
            //trace(e.target.ws);
      }
}
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
package {
	import flash.display.Sprite;
	import flash.events.*;
	public class LineSprite extends Sprite {
		public var f:Number;
		public var p:Number;
		public var sx:Number;
		public var ex:Number;
		public var by:Number;
		public var wl:Number;
		public var wh:Number;
		public var ws:Number;
		public var Ld:String;
		public var lh:Number;
		public var id:Number;
		public var sy:Number;
		public var PI2:Number;
		public var lwidth:Number;
		public function initializeLineSprite(i:Number = 1) {
			y = 150;
			p = 40;
			 sx = 0;
			 ex = 900;
			 by = 1;
			 wl = 10;
			 wh = 55;
			 ws = -(0 + ((Math.floor(Math.random()*10) / 2) + .1) / 5000);
			 lwidth = Math.floor(Math.random()*4);
			 Ld = String(i / 2);
			if (Ld.length > 0) {
				lh = 10;
			} else {
				lh = 0;
			}
			 id = i;
			 sy = lh + wh + wl;
			 PI2 = Math.PI * 2;
			trace(Ld);
		}
	}
}
Open in New Window Select All
Random Solutions  
 
programming4us programming4us