Do you like my tutorials?

Then consider supporting me on Ko-fi

Talking about String Avoider game, Actionscript 3, Flash, Game development and iOS.

I am considering to port Stringy on the iPhone and after seeing the Corona SDK example I tried to convert the AS3 String Avoider prototype for the iPhone, using the guidelines in the post Creation of an iPhone App with Flash and without a Mac.

So, I wrote this code:

package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Point;
	public final class Main extends Sprite {
		private static const tailLenght:Number=1;
		private static const tailNodes:Number=300;
		private static const head:Head=new Head();
		private static const tailCanvas:Sprite=new Sprite();
		private static const bg:Background=new Background();
		private var nodes:Vector.=new Vector.();
		private var followTheMouse:Boolean=false;
		public function Main() {
			addChild(bg);
			bg.cacheAsBitmap=true;
			addChild(head);
			head.cacheAsBitmap=true
			head.x=160;
			head.y=240;
			head.addEventListener(MouseEvent.MOUSE_DOWN,followMouse);
			addChild(tailCanvas);
			for (var i:int=0; i

Which is basically the same as the original prototype, just dragging the string when the finger (mouse) is down and showing a circle where to tap (click) to start dragging again if the player leaves the finger (releases mouse button).

Play with the result:

Drag the white circle to move the string.

I also optimized a bit the code defining the class as final since it's not meant for being extended and its methods aren't meant for being overridden. final classes should execute faster than other classes, and since I am looking for the best performance improvement, I used this trick.

Using static in some variable declarations also should increase the speed. static specifies that a variable (or a constant) belongs to the class rather than to the instances of the class.

Finally, cacheAsBitmap method allows me to render the Display Objects as bitmaps rather than vectors. You may say "just use a PNG image then", and you're right, but I wanted to keep the code as much similar to the original as I can.

This is the final example of the app working on my Iphone4:

It works quite well although I am considering using a sequence of dots rather than a thin line, I will keep you updated.

Never miss an update! Subscribe, and I will bother you by email only when a new game or full source code comes out.