because it's very important
so I need write it down
if you create a lot animation flash 2D game (include sprite sheet, video, particle)
most of time we will use starling to developer(GPU render)
but texture have resource limit
so my experience is :
1. 1280x720 (don't use 1920x1080)
2. StarlingSwf (very useful tools for timeline animation)
3. object pool (don't create object every time, or you need be sure texture dispose)
good luck have fun
starling gaming development
starling gif decoder memory problem
as3 starling gif decoder use https://github.com/honzabrecka/async-gif-decoder
if you need refresh gif gallery all the time, or need show a lot gif image in same time
use this library will have memory problem
so you need modify "com/jx/gif/GPUGIF.as"
change cachedTextures to public
public var cachedTextures:Vector.
then in your code, every time refresh GPUGIF, you need
if(gif.cachedTextures){
for(i=0;i < gif.cachedTextures.length;i++){
gif.cachedTextures[i].dispose();
}
gif.dispose();
gif.texture.dispose();
}
in this way, you can free 90% memory, if you have better way
please let me know!!
:)
starling right click
starling/core/Starling.as
case TouchEvent.TOUCH_END: phase = TouchPhase.ENDED; break;
case MouseEvent.MOUSE_DOWN: phase = TouchPhase.BEGAN; break;
case MouseEvent.MOUSE_UP: phase = TouchPhase.ENDED; break;
+ case MouseEvent.RIGHT_MOUSE_DOWN: phase = TouchPhase.RIGHT_BEGAN; break;
+ case MouseEvent.RIGHT_MOUSE_UP: phase = TouchPhase.RIGHT_ENDED; break;
case MouseEvent.MOUSE_MOVE:
phase = (mLeftMouseDown ? TouchPhase.MOVED : TouchPhase.HOVER); break;
}
...
...
...
if (!multitouchEnabled || Mouse.supportsCursor)
- types.push(MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_MOVE, MouseEvent.MOUSE_UP);
+ types.push(MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_MOVE, MouseEvent.MOUSE_UP, MouseEvent.RIGHT_MOUSE_DOWN, MouseEvent.RIGHT_MOUSE_UP);
return types;
}
starling/events/TouchPhase.as
public static const HOVER:String = "hover";
+
+ /** Only available for mouse input: right mouse button was pressed */
+ public static var RIGHT_BEGAN : String = "right_began"
+
+ /** Only available for mouse input: right mouse button was released */
+ public static const RIGHT_ENDED : String = "right_ended";
/** The finger touched the screen just now, or the mouse button was pressed. */
public static const BEGAN:String = "began";
as3 get radians between three point
// Center point is p1; angle returned in radians
function findAngle(p0:Point,p1:Point,p2:Point) {
var a = Math.pow(p1.x-p0.x,2) + Math.pow(p1.y-p0.y,2),
b = Math.pow(p1.x-p2.x,2) + Math.pow(p1.y-p2.y,2),
c = Math.pow(p2.x-p0.x,2) + Math.pow(p2.y-p0.y,2);
return Math.acos( (a+b-c) / Math.sqrt(4*a*b) );
}
as3 radians to degrees
var degrees:Number = radians*180/Math.PI ;
AS3 String to Boolean
var boolValue:Boolean = (boolString == "true") ? true : false;
just one line! I like it!
old mac install win64bit
http://www.iruberleet.org/2011/10/12/fixing-select-cd-rom-boot-type-when-installing-64bit-windows/