STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228155
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5122

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/65693205?noj=FRM65693205-20DC" width="1" height="1"></div>

Enlarge your slip.swf

This is the info page for
Flash #66123

(Click the ID number above for more basic data on this flash file.)


Text
At the beginning, you have 3 aerial bonuses at your disposal.
These bonuses enable you to bring a special character that will
propel you either in the air or on the ground, depending on his
track.
You can use these bonuses only in a specific area,
between 3 and 10 meters high.
If you stay in this zone, you will slowly get your used bonuses back.

Aerial

Each character has his own specific attack that throws you.
You can find the character's portraits in the "special" menu.
When you hit a character with the portrait appearing  in "special",
you can lauch his attack if you click during the given time-frame,
which will cause a unique action that will be used for knocking
you out with great force and celerity.

Special

The game begins when you pull and release the character's
knickers.
The more you pull, the faster he will go.
To do so, click when you find the knickers's tension good enough.
That's when your amazing trip begins. Your goal is to go as far as
possible.

Starter

Big bear: If you bounce on his head, you can choose the angle
you want to be thrown.
If you are too low  and too slow when you try to do so,
the game will suddenly and violently stop.

Clara Loft: throws you in the air  with her powerful kick,
once she's riddled you with bullets.

flufy: used his elastic arms to propel you.

Spiderbear: will trap you in his web, which will slow you down.

Granny bear: thanks to her incredible reflex actions,
she will save her arse by protecting herself behind her umbrella,
enabling you to bounce on it.

The Mermaid: She's been hoping for love for so long that she
ended up believing it will fall from the sky.

Master Ninja: He will avoid your character with elegance,
which will have no effect on your track
(apart from your face biting the dust).

ActionScript [AS3]

Section 1
//Symbole1_4 (catapulte_fla.Symbole1_4) package catapulte_fla { import flash.display.*; public dynamic class Symbole1_4 extends MovieClip { public function Symbole1_4(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ rotation = (rotation - 50); } function frame2(){ rotation = (rotation - 50); } } }//package catapulte_fla
Section 2
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public function AuxFunctions(){ super(); } public static function getObjectLength(p_object:Object):uint{ var pName:String; var totalProperties:uint; for (pName in p_object) { totalProperties++; }; return (totalProperties); } public static function numberToG(p_num:Number):Number{ return (((p_num & 0xFF00) >> 8)); } public static function numberToB(p_num:Number):Number{ return ((p_num & 0xFF)); } public static function numberToR(p_num:Number):Number{ return (((p_num & 0xFF0000) >> 16)); } public static function concatObjects(... _args):Object{ var currentObject:Object; var prop:String; var finalObject:Object = {}; var i:int; while (i < _args.length) { currentObject = _args[i]; for (prop in currentObject) { if (currentObject[prop] == null){ delete finalObject[prop]; } else { finalObject[prop] = currentObject[prop]; }; }; i++; }; return (finalObject); } } }//package caurina.transitions
Section 3
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ super(); trace("Equations is a static class and should not be instantiated."); } public static function easeOutBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / d); if (t < (1 / 2.75)){ return (((c * ((7.5625 * t) * t)) + b)); }; if (t < (2 / 2.75)){ t = (t - (1.5 / 2.75)); return (((c * (((7.5625 * t) * t) + 0.75)) + b)); }; if (t < (2.5 / 2.75)){ t = (t - (2.25 / 2.75)); return (((c * (((7.5625 * t) * t) + 0.9375)) + b)); }; t = (t - (2.625 / 2.75)); return (((c * (((7.5625 * t) * t) + 0.984375)) + b)); } public static function easeInOutElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ var s:Number; if (t == 0){ return (b); }; t = (t / (d / 2)); if (t == 2){ return ((b + c)); }; var p:Number = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * (0.3 * 1.5)) : p_params.period; var a:Number = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude; if (((!(Boolean(a))) || ((a < Math.abs(c))))){ a = c; s = (p / 4); } else { s = ((p / (2 * Math.PI)) * Math.asin((c / a))); }; if (t < 1){ --t; return (((-0.5 * ((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p)))) + b)); }; --t; return ((((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p))) * 0.5) + c) + b)); } public static function easeInOutQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / (d / 2)); if (t < 1){ return (((((c / 2) * t) * t) + b)); }; --t; return ((((-(c) / 2) * ((t * (t - 2)) - 1)) + b)); } public static function easeInOutBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (((easeInBounce((t * 2), 0, c, d) * 0.5) + b)); }; return ((((easeOutBounce(((t * 2) - d), 0, c, d) * 0.5) + (c * 0.5)) + b)); } public static function easeInOutBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ var s:Number = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot; t = (t / (d / 2)); if (t < 1){ s = (s * 1.525); return ((((c / 2) * ((t * t) * (((s + 1) * t) - s))) + b)); }; t = (t - 2); s = (s * 1.525); return ((((c / 2) * (((t * t) * (((s + 1) * t) + s)) + 2)) + b)); } public static function easeOutInCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutCubic((t * 2), b, (c / 2), d, p_params)); }; return (easeInCubic(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeNone(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ return ((((c * t) / d) + b)); } public static function easeOutBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ var s:Number = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot; t = ((t / d) - 1); return (((c * (((t * t) * (((s + 1) * t) + s)) + 1)) + b)); } public static function easeInOutSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ return ((((-(c) / 2) * (Math.cos(((Math.PI * t) / d)) - 1)) + b)); } public static function easeInBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ var s:Number = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot; t = (t / d); return (((((c * t) * t) * (((s + 1) * t) - s)) + b)); } public static function easeInQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / d); return ((((((c * t) * t) * t) * t) + b)); } public static function easeOutInQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutQuint((t * 2), b, (c / 2), d, p_params)); }; return (easeInQuint(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeOutInBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutBounce((t * 2), b, (c / 2), d, p_params)); }; return (easeInBounce(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ return (((t)==d) ? (b + c) : (((c * 1.001) * (-(Math.pow(2, ((-10 * t) / d))) + 1)) + b)); } public static function easeOutInBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutBack((t * 2), b, (c / 2), d, p_params)); }; return (easeInBack(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeInExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ return (((t)==0) ? b : (((c * Math.pow(2, (10 * ((t / d) - 1)))) + b) - (c * 0.001))); } public static function easeInCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / d); return (((((c * t) * t) * t) + b)); } public static function easeInQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / d); return (((((((c * t) * t) * t) * t) * t) + b)); } public static function easeInOutCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / (d / 2)); if (t < 1){ return ((((-(c) / 2) * (Math.sqrt((1 - (t * t))) - 1)) + b)); }; t = (t - 2); return ((((c / 2) * (Math.sqrt((1 - (t * t))) + 1)) + b)); } public static function easeInQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / d); return ((((c * t) * t) + b)); } public static function easeInBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ return (((c - easeOutBounce((d - t), 0, c, d)) + b)); } public static function easeOutInExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutExpo((t * 2), b, (c / 2), d, p_params)); }; return (easeInExpo(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeOutQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = ((t / d) - 1); return (((-(c) * ((((t * t) * t) * t) - 1)) + b)); } public static function easeInSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ return ((((-(c) * Math.cos(((t / d) * (Math.PI / 2)))) + c) + b)); } public static function easeInOutQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / (d / 2)); if (t < 1){ return (((((((c / 2) * t) * t) * t) * t) + b)); }; t = (t - 2); return ((((-(c) / 2) * ((((t * t) * t) * t) - 2)) + b)); } public static function easeOutQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / d); return ((((-(c) * t) * (t - 2)) + b)); } public static function easeOutInElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutElastic((t * 2), b, (c / 2), d, p_params)); }; return (easeInElastic(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeInElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ var s:Number; if (t == 0){ return (b); }; t = (t / d); if (t == 1){ return ((b + c)); }; var p:Number = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * 0.3) : p_params.period; var a:Number = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude; if (((!(Boolean(a))) || ((a < Math.abs(c))))){ a = c; s = (p / 4); } else { s = ((p / (2 * Math.PI)) * Math.asin((c / a))); }; --t; return ((-(((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p)))) + b)); } public static function easeOutCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = ((t / d) - 1); return (((c * (((t * t) * t) + 1)) + b)); } public static function easeOutQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = ((t / d) - 1); return (((c * (((((t * t) * t) * t) * t) + 1)) + b)); } public static function easeOutInQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutQuad((t * 2), b, (c / 2), d, p_params)); }; return (easeInQuad(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeOutSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ return (((c * Math.sin(((t / d) * (Math.PI / 2)))) + b)); } public static function easeInOutCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / (d / 2)); if (t < 1){ return ((((((c / 2) * t) * t) * t) + b)); }; t = (t - 2); return ((((c / 2) * (((t * t) * t) + 2)) + b)); } public static function easeInOutQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / (d / 2)); if (t < 1){ return ((((((((c / 2) * t) * t) * t) * t) * t) + b)); }; t = (t - 2); return ((((c / 2) * (((((t * t) * t) * t) * t) + 2)) + b)); } public static function easeInCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = (t / d); return (((-(c) * (Math.sqrt((1 - (t * t))) - 1)) + b)); } public static function easeOutInSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutSine((t * 2), b, (c / 2), d, p_params)); }; return (easeInSine(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeInOutExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t == 0){ return (b); }; if (t == d){ return ((b + c)); }; t = (t / (d / 2)); if (t < 1){ return (((((c / 2) * Math.pow(2, (10 * (t - 1)))) + b) - (c * 0.0005))); }; --t; return (((((c / 2) * 1.0005) * (-(Math.pow(2, (-10 * t))) + 2)) + b)); } public static function easeOutElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ var s:Number; if (t == 0){ return (b); }; t = (t / d); if (t == 1){ return ((b + c)); }; var p:Number = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * 0.3) : p_params.period; var a:Number = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude; if (((!(Boolean(a))) || ((a < Math.abs(c))))){ a = c; s = (p / 4); } else { s = ((p / (2 * Math.PI)) * Math.asin((c / a))); }; return (((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p))) + c) + b)); } public static function easeOutCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ t = ((t / d) - 1); return (((c * Math.sqrt((1 - (t * t)))) + b)); } public static function easeOutInQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutQuart((t * 2), b, (c / 2), d, p_params)); }; return (easeInQuart(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } public static function easeOutInCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{ if (t < (d / 2)){ return (easeOutCirc((t * 2), b, (c / 2), d, p_params)); }; return (easeInCirc(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params)); } } }//package caurina.transitions
Section 4
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var valueComplete:Number; public var modifierFunction:Function; public var extra:Object; public var valueStart:Number; public var hasModifier:Boolean; public var arrayIndex:Number; public var originalValueComplete:Object; public function PropertyInfoObj(p_valueStart:Number, p_valueComplete:Number, p_originalValueComplete:Object, p_arrayIndex:Number, p_extra:Object, p_isSpecialProperty:Boolean, p_modifierFunction:Function, p_modifierParameters:Array){ super(); valueStart = p_valueStart; valueComplete = p_valueComplete; originalValueComplete = p_originalValueComplete; arrayIndex = p_arrayIndex; extra = p_extra; isSpecialProperty = p_isSpecialProperty; hasModifier = Boolean(p_modifierFunction); modifierFunction = p_modifierFunction; modifierParameters = p_modifierParameters; } public function toString():String{ var returnStr:String = "\n[PropertyInfoObj "; returnStr = (returnStr + ("valueStart:" + String(valueStart))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("valueComplete:" + String(valueComplete))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("originalValueComplete:" + String(originalValueComplete))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("arrayIndex:" + String(arrayIndex))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("extra:" + String(extra))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("isSpecialProperty:" + String(isSpecialProperty))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("hasModifier:" + String(hasModifier))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("modifierFunction:" + String(modifierFunction))); returnStr = (returnStr + ", "); returnStr = (returnStr + ("modifierParameters:" + String(modifierParameters))); returnStr = (returnStr + "]\n"); return (returnStr); } public function clone():PropertyInfoObj{ var nProperty:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (nProperty); } } }//package caurina.transitions
Section 5
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var preProcess:Function; public var setValue:Function; public function SpecialProperty(p_getFunction:Function, p_setFunction:Function, p_parameters:Array=null, p_preProcessFunction:Function=null){ super(); getValue = p_getFunction; setValue = p_setFunction; parameters = p_parameters; preProcess = p_preProcessFunction; } public function toString():String{ var value:String = ""; value = (value + "[SpecialProperty "); value = (value + ("getValue:" + String(getValue))); value = (value + ", "); value = (value + ("setValue:" + String(setValue))); value = (value + ", "); value = (value + ("parameters:" + String(parameters))); value = (value + ", "); value = (value + ("preProcess:" + String(preProcess))); value = (value + "]"); return (value); } } }//package caurina.transitions
Section 6
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(p_modifyFunction:Function, p_getFunction:Function){ super(); modifyValues = p_modifyFunction; getValue = p_getFunction; } public function toString():String{ var value:String = ""; value = (value + "[SpecialPropertyModifier "); value = (value + ("modifyValues:" + String(modifyValues))); value = (value + ", "); value = (value + ("getValue:" + String(getValue))); value = (value + "]"); return (value); } } }//package caurina.transitions
Section 7
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(p_splitFunction:Function, p_parameters:Array){ super(); splitValues = p_splitFunction; parameters = p_parameters; } public function toString():String{ var value:String = ""; value = (value + "[SpecialPropertySplitter "); value = (value + ("splitValues:" + String(splitValues))); value = (value + ", "); value = (value + ("parameters:" + String(parameters))); value = (value + "]"); return (value); } } }//package caurina.transitions
Section 8
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ super(); trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(p_name:String, p_modifyFunction:Function, p_getFunction:Function):void{ if (!_inited){ init(); }; var spm:SpecialPropertyModifier = new SpecialPropertyModifier(p_modifyFunction, p_getFunction); _specialPropertyModifierList[p_name] = spm; } public static function registerSpecialProperty(p_name:String, p_getFunction:Function, p_setFunction:Function, p_parameters:Array=null, p_preProcessFunction:Function=null):void{ if (!_inited){ init(); }; var sp:SpecialProperty = new SpecialProperty(p_getFunction, p_setFunction, p_parameters, p_preProcessFunction); _specialPropertyList[p_name] = sp; } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } private static function updateTweens():Boolean{ var i:int; if (_tweenList.length == 0){ return (false); }; i = 0; while (i < _tweenList.length) { if ((((_tweenList[i] == undefined)) || (!(_tweenList[i].isPaused)))){ if (!updateTweenByIndex(i)){ removeTweenByIndex(i); }; if (_tweenList[i] == null){ removeTweenByIndex(i, true); i--; }; }; i++; }; return (true); } public static function addCaller(p_scopes:Object=null, p_parameters:Object=null):Boolean{ var i:Number; var rScopes:Array; var rTransition:Function; var nTween:TweenListObj; var myT:Number; var trans:String; if (!Boolean(p_scopes)){ return (false); }; if ((p_scopes is Array)){ rScopes = p_scopes.concat(); } else { rScopes = [p_scopes]; }; var p_obj:Object = p_parameters; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var rTime:Number = (isNaN(p_obj.time)) ? 0 : p_obj.time; var rDelay:Number = (isNaN(p_obj.delay)) ? 0 : p_obj.delay; if (typeof(p_obj.transition) == "string"){ trans = p_obj.transition.toLowerCase(); rTransition = _transitionList[trans]; } else { rTransition = p_obj.transition; }; if (!Boolean(rTransition)){ rTransition = _transitionList["easeoutexpo"]; }; i = 0; while (i < rScopes.length) { if (p_obj.useFrames == true){ nTween = new TweenListObj(rScopes[i], (_currentTimeFrame + (rDelay / _timeScale)), (_currentTimeFrame + ((rDelay + rTime) / _timeScale)), true, rTransition, p_obj.transitionParams); } else { nTween = new TweenListObj(rScopes[i], (_currentTime + ((rDelay * 1000) / _timeScale)), (_currentTime + (((rDelay * 1000) + (rTime * 1000)) / _timeScale)), false, rTransition, p_obj.transitionParams); }; nTween.properties = null; nTween.onStart = p_obj.onStart; nTween.onUpdate = p_obj.onUpdate; nTween.onComplete = p_obj.onComplete; nTween.onOverwrite = p_obj.onOverwrite; nTween.onStartParams = p_obj.onStartParams; nTween.onUpdateParams = p_obj.onUpdateParams; nTween.onCompleteParams = p_obj.onCompleteParams; nTween.onOverwriteParams = p_obj.onOverwriteParams; nTween.onStartScope = p_obj.onStartScope; nTween.onUpdateScope = p_obj.onUpdateScope; nTween.onCompleteScope = p_obj.onCompleteScope; nTween.onOverwriteScope = p_obj.onOverwriteScope; nTween.onErrorScope = p_obj.onErrorScope; nTween.isCaller = true; nTween.count = p_obj.count; nTween.waitFrames = p_obj.waitFrames; _tweenList.push(nTween); if ((((rTime == 0)) && ((rDelay == 0)))){ myT = (_tweenList.length - 1); updateTweenByIndex(myT); removeTweenByIndex(myT); }; i++; }; return (true); } public static function pauseAllTweens():Boolean{ var i:uint; if (!Boolean(_tweenList)){ return (false); }; var paused:Boolean; i = 0; while (i < _tweenList.length) { pauseTweenByIndex(i); paused = true; i++; }; return (paused); } public static function removeTweens(p_scope:Object, ... _args):Boolean{ var i:uint; var sps:SpecialPropertySplitter; var specialProps:Array; var j:uint; var properties:Array = new Array(); i = 0; while (i < _args.length) { if ((((typeof(_args[i]) == "string")) && ((properties.indexOf(_args[i]) == -1)))){ if (_specialPropertySplitterList[_args[i]]){ sps = _specialPropertySplitterList[_args[i]]; specialProps = sps.splitValues(p_scope, null); j = 0; while (j < specialProps.length) { properties.push(specialProps[j].name); j++; }; } else { properties.push(_args[i]); }; }; i++; }; return (affectTweens(removeTweenByIndex, p_scope, properties)); } public static function splitTweens(p_tween:Number, p_properties:Array):uint{ var i:uint; var pName:String; var found:Boolean; var originalTween:TweenListObj = _tweenList[p_tween]; var newTween:TweenListObj = originalTween.clone(false); i = 0; while (i < p_properties.length) { pName = p_properties[i]; if (Boolean(originalTween.properties[pName])){ originalTween.properties[pName] = undefined; delete originalTween.properties[pName]; }; i++; }; for (pName in newTween.properties) { found = false; i = 0; while (i < p_properties.length) { if (p_properties[i] == pName){ found = true; break; }; i++; }; if (!found){ newTween.properties[pName] = undefined; delete newTween.properties[pName]; }; }; _tweenList.push(newTween); return ((_tweenList.length - 1)); } public static function updateFrame():void{ _currentTimeFrame++; } public static function resumeTweenByIndex(p_tween:Number):Boolean{ var tTweening:TweenListObj = _tweenList[p_tween]; if ((((tTweening == null)) || (!(tTweening.isPaused)))){ return (false); }; var cTime:Number = getCurrentTweeningTime(tTweening); tTweening.timeStart = (tTweening.timeStart + (cTime - tTweening.timePaused)); tTweening.timeComplete = (tTweening.timeComplete + (cTime - tTweening.timePaused)); tTweening.timePaused = undefined; tTweening.isPaused = false; return (true); } public static function getVersion():String{ return ("AS3 1.31.74"); } public static function onEnterFrame(e:Event):void{ updateTime(); updateFrame(); var hasUpdated:Boolean; hasUpdated = updateTweens(); if (!hasUpdated){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(i:Number):Boolean{ var tTweening:TweenListObj; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var tProperty:Object; var pv:Number; var i = i; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); //unresolved if if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); continue; var _slot1 = e1; handleError(tTweening, _slot1, "onUpdate"); }; } while (tTweening.timesCalled++, !(tTweening.timesCalled >= tTweening.count)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; tTweening.onStart.apply(eventScope, tTweening.onStartParams); //unresolved jump var _slot1 = e2; handleError(tTweening, _slot1, "onStart"); }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); //unresolved jump var _slot1 = e3; handleError(tTweening, _slot1, "onUpdate"); }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); //unresolved jump var _slot1 = e4; handleError(tTweening, _slot1, "onComplete"); }; return (!(isOver)); }; return (true); } public static function setTimeScale(p_time:Number):void{ var i:Number; var cTime:Number; if (isNaN(p_time)){ p_time = 1; }; if (p_time < 1E-5){ p_time = 1E-5; }; if (p_time != _timeScale){ if (_tweenList != null){ i = 0; while (i < _tweenList.length) { cTime = getCurrentTweeningTime(_tweenList[i]); _tweenList[i].timeStart = (cTime - (((cTime - _tweenList[i].timeStart) * _timeScale) / p_time)); _tweenList[i].timeComplete = (cTime - (((cTime - _tweenList[i].timeComplete) * _timeScale) / p_time)); if (_tweenList[i].timePaused != undefined){ _tweenList[i].timePaused = (cTime - (((cTime - _tweenList[i].timePaused) * _timeScale) / p_time)); }; i++; }; }; _timeScale = p_time; }; } public static function resumeAllTweens():Boolean{ var i:uint; if (!Boolean(_tweenList)){ return (false); }; var resumed:Boolean; i = 0; while (i < _tweenList.length) { resumeTweenByIndex(i); resumed = true; i++; }; return (resumed); } private static function handleError(pTweening:TweenListObj, pError:Error, pCallBackName:String):void{ var eventScope:Object; var pTweening = pTweening; var pError = pError; var pCallBackName = pCallBackName; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; pTweening.onError.apply(eventScope, [pTweening.scope, pError]); //unresolved jump var _slot1 = metaError; printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + _slot1.getStackTrace())); } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } public static function removeAllTweens():Boolean{ var i:uint; if (!Boolean(_tweenList)){ return (false); }; var removed:Boolean; i = 0; while (i < _tweenList.length) { removeTweenByIndex(i); removed = true; i++; }; return (removed); } public static function addTween(p_scopes:Object=null, p_parameters:Object=null):Boolean{ var i:Number; var j:Number; var istr:String; var rScopes:Array; var rTransition:Function; var nProperties:Object; var nTween:TweenListObj; var myT:Number; var splitProperties:Array; var splitProperties2:Array; var tempModifiedProperties:Array; var trans:String; if (!Boolean(p_scopes)){ return (false); }; if ((p_scopes is Array)){ rScopes = p_scopes.concat(); } else { rScopes = [p_scopes]; }; var p_obj:Object = TweenListObj.makePropertiesChain(p_parameters); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var rTime:Number = (isNaN(p_obj.time)) ? 0 : p_obj.time; var rDelay:Number = (isNaN(p_obj.delay)) ? 0 : p_obj.delay; var rProperties:Array = new Array(); var restrictedWords:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; var modifiedProperties:Object = new Object(); for (istr in p_obj) { if (!restrictedWords[istr]){ if (_specialPropertySplitterList[istr]){ splitProperties = _specialPropertySplitterList[istr].splitValues(p_obj[istr], _specialPropertySplitterList[istr].parameters); i = 0; while (i < splitProperties.length) { if (_specialPropertySplitterList[splitProperties[i].name]){ splitProperties2 = _specialPropertySplitterList[splitProperties[i].name].splitValues(splitProperties[i].value, _specialPropertySplitterList[splitProperties[i].name].parameters); j = 0; while (j < splitProperties2.length) { rProperties[splitProperties2[j].name] = {valueStart:undefined, valueComplete:splitProperties2[j].value, arrayIndex:splitProperties2[j].arrayIndex, isSpecialProperty:false}; j++; }; } else { rProperties[splitProperties[i].name] = {valueStart:undefined, valueComplete:splitProperties[i].value, arrayIndex:splitProperties[i].arrayIndex, isSpecialProperty:false}; }; i++; }; } else { if (_specialPropertyModifierList[istr] != undefined){ tempModifiedProperties = _specialPropertyModifierList[istr].modifyValues(p_obj[istr]); i = 0; while (i < tempModifiedProperties.length) { modifiedProperties[tempModifiedProperties[i].name] = {modifierParameters:tempModifiedProperties[i].parameters, modifierFunction:_specialPropertyModifierList[istr].getValue}; i++; }; } else { rProperties[istr] = {valueStart:undefined, valueComplete:p_obj[istr]}; }; }; }; }; for (istr in rProperties) { if (_specialPropertyList[istr] != undefined){ rProperties[istr].isSpecialProperty = true; } else { if (rScopes[0][istr] == undefined){ printError((((("The property '" + istr) + "' doesn't seem to be a normal object property of ") + String(rScopes[0])) + " or a registered special property.")); }; }; }; for (istr in modifiedProperties) { if (rProperties[istr] != undefined){ rProperties[istr].modifierParameters = modifiedProperties[istr].modifierParameters; rProperties[istr].modifierFunction = modifiedProperties[istr].modifierFunction; }; }; if (typeof(p_obj.transition) == "string"){ trans = p_obj.transition.toLowerCase(); rTransition = _transitionList[trans]; } else { rTransition = p_obj.transition; }; if (!Boolean(rTransition)){ rTransition = _transitionList["easeoutexpo"]; }; i = 0; while (i < rScopes.length) { nProperties = new Object(); for (istr in rProperties) { nProperties[istr] = new PropertyInfoObj(rProperties[istr].valueStart, rProperties[istr].valueComplete, rProperties[istr].valueComplete, rProperties[istr].arrayIndex, {}, rProperties[istr].isSpecialProperty, rProperties[istr].modifierFunction, rProperties[istr].modifierParameters); }; if (p_obj.useFrames == true){ nTween = new TweenListObj(rScopes[i], (_currentTimeFrame + (rDelay / _timeScale)), (_currentTimeFrame + ((rDelay + rTime) / _timeScale)), true, rTransition, p_obj.transitionParams); } else { nTween = new TweenListObj(rScopes[i], (_currentTime + ((rDelay * 1000) / _timeScale)), (_currentTime + (((rDelay * 1000) + (rTime * 1000)) / _timeScale)), false, rTransition, p_obj.transitionParams); }; nTween.properties = nProperties; nTween.onStart = p_obj.onStart; nTween.onUpdate = p_obj.onUpdate; nTween.onComplete = p_obj.onComplete; nTween.onOverwrite = p_obj.onOverwrite; nTween.onError = p_obj.onError; nTween.onStartParams = p_obj.onStartParams; nTween.onUpdateParams = p_obj.onUpdateParams; nTween.onCompleteParams = p_obj.onCompleteParams; nTween.onOverwriteParams = p_obj.onOverwriteParams; nTween.onStartScope = p_obj.onStartScope; nTween.onUpdateScope = p_obj.onUpdateScope; nTween.onCompleteScope = p_obj.onCompleteScope; nTween.onOverwriteScope = p_obj.onOverwriteScope; nTween.onErrorScope = p_obj.onErrorScope; nTween.rounded = p_obj.rounded; nTween.skipUpdates = p_obj.skipUpdates; removeTweensByTime(nTween.scope, nTween.properties, nTween.timeStart, nTween.timeComplete); _tweenList.push(nTween); if ((((rTime == 0)) && ((rDelay == 0)))){ myT = (_tweenList.length - 1); updateTweenByIndex(myT); removeTweenByIndex(myT); }; i++; }; return (true); } public static function registerTransition(p_name:String, p_function:Function):void{ if (!_inited){ init(); }; _transitionList[p_name] = p_function; } public static function printError(p_message:String):void{ trace(("## [Tweener] Error: " + p_message)); } private static function affectTweens(p_affectFunction:Function, p_scope:Object, p_properties:Array):Boolean{ var i:uint; var affectedProperties:Array; var j:uint; var objectProperties:uint; var slicedTweenIndex:uint; var affected:Boolean; if (!Boolean(_tweenList)){ return (false); }; i = 0; while (i < _tweenList.length) { if (((_tweenList[i]) && ((_tweenList[i].scope == p_scope)))){ if (p_properties.length == 0){ p_affectFunction(i); affected = true; } else { affectedProperties = new Array(); j = 0; while (j < p_properties.length) { if (Boolean(_tweenList[i].properties[p_properties[j]])){ affectedProperties.push(p_properties[j]); }; j++; }; if (affectedProperties.length > 0){ objectProperties = AuxFunctions.getObjectLength(_tweenList[i].properties); if (objectProperties == affectedProperties.length){ p_affectFunction(i); affected = true; } else { slicedTweenIndex = splitTweens(i, affectedProperties); p_affectFunction(slicedTweenIndex); affected = true; }; }; }; }; i++; }; return (affected); } public static function getTweens(p_scope:Object):Array{ var i:uint; var pName:String; if (!Boolean(_tweenList)){ return ([]); }; var tList:Array = new Array(); i = 0; while (i < _tweenList.length) { if (((Boolean(_tweenList[i])) && ((_tweenList[i].scope == p_scope)))){ for (pName in _tweenList[i].properties) { tList.push(pName); }; }; i++; }; return (tList); } public static function isTweening(p_scope:Object):Boolean{ var i:uint; if (!Boolean(_tweenList)){ return (false); }; i = 0; while (i < _tweenList.length) { if (((Boolean(_tweenList[i])) && ((_tweenList[i].scope == p_scope)))){ return (true); }; i++; }; return (false); } public static function pauseTweenByIndex(p_tween:Number):Boolean{ var tTweening:TweenListObj = _tweenList[p_tween]; if ((((tTweening == null)) || (tTweening.isPaused))){ return (false); }; tTweening.timePaused = getCurrentTweeningTime(tTweening); tTweening.isPaused = true; return (true); } public static function getCurrentTweeningTime(p_tweening:Object):Number{ return ((p_tweening.useFrames) ? _currentTimeFrame : _currentTime); } public static function getTweenCount(p_scope:Object):Number{ var i:uint; if (!Boolean(_tweenList)){ return (0); }; var c:Number = 0; i = 0; while (i < _tweenList.length) { if (((Boolean(_tweenList[i])) && ((_tweenList[i].scope == p_scope)))){ c = (c + AuxFunctions.getObjectLength(_tweenList[i].properties)); }; i++; }; return (c); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function removeTweensByTime(p_scope:Object, p_properties:Object, p_timeStart:Number, p_timeComplete:Number):Boolean{ var removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = p_scope; var p_properties = p_properties; var p_timeStart = p_timeStart; var p_timeComplete = p_timeComplete; var removed:Boolean; var tl:uint = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); //unresolved jump var _slot1 = e; handleError(_tweenList[i], _slot1, "onOverwrite"); }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(p_name:String, p_splitFunction:Function, p_parameters:Array=null):void{ if (!_inited){ init(); }; var sps:SpecialPropertySplitter = new SpecialPropertySplitter(p_splitFunction, p_parameters); _specialPropertySplitterList[p_name] = sps; } public static function removeTweenByIndex(i:Number, p_finalRemoval:Boolean=false):Boolean{ _tweenList[i] = null; if (p_finalRemoval){ _tweenList.splice(i, 1); }; return (true); } public static function resumeTweens(p_scope:Object, ... _args):Boolean{ var i:uint; var properties:Array = new Array(); i = 0; while (i < _args.length) { if ((((typeof(_args[i]) == "string")) && ((properties.indexOf(_args[i]) == -1)))){ properties.push(_args[i]); }; i++; }; return (affectTweens(resumeTweenByIndex, p_scope, properties)); } public static function pauseTweens(p_scope:Object, ... _args):Boolean{ var i:uint; var properties:Array = new Array(); i = 0; while (i < _args.length) { if ((((typeof(_args[i]) == "string")) && ((properties.indexOf(_args[i]) == -1)))){ properties.push(_args[i]); }; i++; }; return (affectTweens(pauseTweenByIndex, p_scope, properties)); } } }//package caurina.transitions
Section 9
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var hasStarted:Boolean; public var onUpdate:Function; public var useFrames:Boolean; public var count:Number; public var onOverwriteParams:Array; public var timeStart:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var onError:Function; public var timesCalled:Number; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; public function TweenListObj(p_scope:Object, p_timeStart:Number, p_timeComplete:Number, p_useFrames:Boolean, p_transition:Function, p_transitionParams:Object){ super(); scope = p_scope; timeStart = p_timeStart; timeComplete = p_timeComplete; useFrames = p_useFrames; transition = p_transition; transitionParams = p_transitionParams; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(omitEvents:Boolean):TweenListObj{ var pName:String; var nTween:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); nTween.properties = new Array(); for (pName in properties) { nTween.properties[pName] = properties[pName].clone(); }; nTween.skipUpdates = skipUpdates; nTween.updatesSkipped = updatesSkipped; if (!omitEvents){ nTween.onStart = onStart; nTween.onUpdate = onUpdate; nTween.onComplete = onComplete; nTween.onOverwrite = onOverwrite; nTween.onError = onError; nTween.onStartParams = onStartParams; nTween.onUpdateParams = onUpdateParams; nTween.onCompleteParams = onCompleteParams; nTween.onOverwriteParams = onOverwriteParams; nTween.onStartScope = onStartScope; nTween.onUpdateScope = onUpdateScope; nTween.onCompleteScope = onCompleteScope; nTween.onOverwriteScope = onOverwriteScope; nTween.onErrorScope = onErrorScope; }; nTween.rounded = rounded; nTween.isPaused = isPaused; nTween.timePaused = timePaused; nTween.isCaller = isCaller; nTween.count = count; nTween.timesCalled = timesCalled; nTween.waitFrames = waitFrames; nTween.hasStarted = hasStarted; return (nTween); } public function toString():String{ var i:String; var returnStr:String = "\n[TweenListObj "; returnStr = (returnStr + ("scope:" + String(scope))); returnStr = (returnStr + ", properties:"); var isFirst:Boolean; for (i in properties) { if (!isFirst){ returnStr = (returnStr + ","); }; returnStr = (returnStr + ("[name:" + properties[i].name)); returnStr = (returnStr + (",valueStart:" + properties[i].valueStart)); returnStr = (returnStr + (",valueComplete:" + properties[i].valueComplete)); returnStr = (returnStr + "]"); isFirst = false; }; returnStr = (returnStr + (", timeStart:" + String(timeStart))); returnStr = (returnStr + (", timeComplete:" + String(timeComplete))); returnStr = (returnStr + (", useFrames:" + String(useFrames))); returnStr = (returnStr + (", transition:" + String(transition))); returnStr = (returnStr + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ returnStr = (returnStr + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ returnStr = (returnStr + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ returnStr = (returnStr + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ returnStr = (returnStr + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ returnStr = (returnStr + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ returnStr = (returnStr + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ returnStr = (returnStr + (", onError:" + String(onError))); }; if (onStartParams){ returnStr = (returnStr + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ returnStr = (returnStr + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ returnStr = (returnStr + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ returnStr = (returnStr + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ returnStr = (returnStr + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ returnStr = (returnStr + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ returnStr = (returnStr + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ returnStr = (returnStr + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ returnStr = (returnStr + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ returnStr = (returnStr + (", rounded:" + String(rounded))); }; if (isPaused){ returnStr = (returnStr + (", isPaused:" + String(isPaused))); }; if (timePaused){ returnStr = (returnStr + (", timePaused:" + String(timePaused))); }; if (isCaller){ returnStr = (returnStr + (", isCaller:" + String(isCaller))); }; if (count){ returnStr = (returnStr + (", count:" + String(count))); }; if (timesCalled){ returnStr = (returnStr + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ returnStr = (returnStr + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ returnStr = (returnStr + (", hasStarted:" + String(hasStarted))); }; returnStr = (returnStr + "]\n"); return (returnStr); } public static function makePropertiesChain(p_obj:Object):Object{ var chainedObject:Object; var chain:Object; var currChainObj:Object; var len:Number; var i:Number; var k:Number; var baseObject:Object = p_obj.base; if (baseObject){ chainedObject = {}; if ((baseObject is Array)){ chain = []; k = 0; while (k < baseObject.length) { chain.push(baseObject[k]); k++; }; } else { chain = [baseObject]; }; chain.push(p_obj); len = chain.length; i = 0; while (i < len) { if (chain[i]["base"]){ currChainObj = AuxFunctions.concatObjects(makePropertiesChain(chain[i]["base"]), chain[i]); } else { currChainObj = chain[i]; }; chainedObject = AuxFunctions.concatObjects(chainedObject, currChainObj); i++; }; if (chainedObject["base"]){ delete chainedObject["base"]; }; return (chainedObject); //unresolved jump }; return (p_obj); } } }//package caurina.transitions
Section 10
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent) package com.kongregate.as3.client.events { import flash.events.*; public class KongregateEvent extends Event { public static const COMPLETE:String = "component_api_available"; public function KongregateEvent(_arg1:String){ super(_arg1); } } }//package com.kongregate.as3.client.events
Section 11
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService) package com.kongregate.as3.client.services { import flash.events.*; public class AbstractShadowService extends EventDispatcher { protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{ trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4)); } } }//package com.kongregate.as3.client.services
Section 12
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow) package com.kongregate.as3.client.services { public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices { private var mode:String; public function HighScoreServiceShadow(){ mode = ""; } public function submit(_arg1:Number, _arg2:String=null):void{ alert("IHighScoreServices", "submit", arguments); } public function connect():Boolean{ alert("IKongregateServices", "connect"); return (true); } public function requestList(_arg1:Function):void{ alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]")); _arg1({success:false}); } public function setMode(_arg1:String):void{ alert("IHighScoreServices", "setMode", arguments); this.mode = _arg1; } } }//package com.kongregate.as3.client.services
Section 13
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices) package com.kongregate.as3.client.services { public interface IHighScoreServices { function setMode(_arg1:String):void; function submit(_arg1:Number, _arg2:String=null):void; function requestList(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 14
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices) package com.kongregate.as3.client.services { import flash.events.*; public interface IKongregateServices extends IEventDispatcher { function getPlayerInfo(_arg1:Function):void; function connect(_arg1:Number=-1):Boolean; } }//package com.kongregate.as3.client.services
Section 15
//IStatServices (com.kongregate.as3.client.services.IStatServices) package com.kongregate.as3.client.services { public interface IStatServices { function submitArray(_arg1:Array):void; function submit(_arg1:String, _arg2:Number):void; } }//package com.kongregate.as3.client.services
Section 16
//IUserServices (com.kongregate.as3.client.services.IUserServices) package com.kongregate.as3.client.services { public interface IUserServices { function getName():String; function getPlayerInfo(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 17
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow) package com.kongregate.as3.client.services { public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices { public function getName():String{ alert("IKongregateServices", "getName"); return ("Guest"); } public function connect(_arg1:Number=-1):Boolean{ alert("IKongregateServices", "connect", arguments); return (true); } public function getPlayerInfo(_arg1:Function):void{ alert("IKongregateServices", "getPlayerInfo"); _arg1(new Object()); } } }//package com.kongregate.as3.client.services
Section 18
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow) package com.kongregate.as3.client.services { public class StatServiceShadow extends AbstractShadowService implements IStatServices { public function submitArray(_arg1:Array):void{ alert("IStatServices", "submitArray", arguments); } public function submit(_arg1:String, _arg2:Number):void{ alert("IStatServices", "submitStat", arguments); } } }//package com.kongregate.as3.client.services
Section 19
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow) package com.kongregate.as3.client.services { public class UserServiceShadow extends AbstractShadowService implements IUserServices { public function getName():String{ alert("UserService", "getName"); return ("Guest"); } public function getPlayerInfo(_arg1:Function):void{ alert("UserService", "getPlayerInfo"); _arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""}); } } }//package com.kongregate.as3.client.services
Section 20
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; public interface IAPIBootstrap { function init(_arg1:Event=null, _arg2:Stage=null):void; function hideLog():void; function showLog(_arg1:int=0):void; } }//package com.kongregate.as3.client
Section 21
//KongregateAPI (com.kongregate.as3.client.KongregateAPI) package com.kongregate.as3.client { import flash.events.*; import com.kongregate.as3.client.services.*; import flash.display.*; import flash.system.*; import com.kongregate.as3.client.events.*; import flash.utils.*; import flash.net.*; import flash.errors.*; public class KongregateAPI extends Sprite { private const VERSION:Number = 1; private var loader:Loader; private var loadedDomain:ApplicationDomain; private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices"; private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices"; private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices"; private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices"; private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf"; private static var _connected:Boolean; private static var kUser:IUserServices; private static var _loaded:Boolean; private static var kServices:IKongregateServices; private static var kScores:IHighScoreServices; private static var mInstance:KongregateAPI; private static var kStats:IStatServices; private static var kAPI:IAPIBootstrap; public function KongregateAPI(){ if (mInstance != null){ throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access.")); }; mInstance = this; this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); } public function get loaded():Boolean{ return (_loaded); } public function get connected():Boolean{ return (_connected); } private function alertConnected(_arg1:TimerEvent=null):void{ var _local2:KongregateEvent; var _local3:Boolean; _local2 = new KongregateEvent(KongregateEvent.COMPLETE); _local3 = this.dispatchEvent(_local2); } private function init(_arg1:Event):void{ var _local2:Object; var _local3:String; var _local4:URLRequest; var _local5:LoaderContext; this.removeEventListener(Event.ADDED_TO_STAGE, init); _loaded = false; _connected = false; _local2 = LoaderInfo(root.loaderInfo).parameters; _local3 = _local2.api_path; if (_local3 == null){ trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded."); createShadowServices(); return; }; Security.allowDomain("*.kongregate.com"); Security.allowDomain("kongregatetrunk.com"); _local4 = new URLRequest(_local3); _local5 = new LoaderContext(false); _local5.applicationDomain = ApplicationDomain.currentDomain; _local5.securityDomain = SecurityDomain.currentDomain; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); loader.load(_local4, _local5); } public function get api():IAPIBootstrap{ return (kAPI); } private function loadComplete(_arg1:Event):void{ getServices(); } public function get scores():IHighScoreServices{ return (kScores); } private function ioErrorHandler(_arg1:IOErrorEvent):void{ throw (new IOError(("API file not found. " + _arg1))); } public function get services():IKongregateServices{ return (kServices); } public function get stats():IStatServices{ return (kStats); } private function createShadowServices():void{ var _local1:Timer; trace(">>> Kongregate Shadow Services instantiated for local development.."); kServices = new KongregateServiceShadow(); kScores = new HighScoreServiceShadow(); kStats = new StatServiceShadow(); kUser = new UserServiceShadow(); _local1 = new Timer(200, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected); _local1.start(); _connected = true; } public function get user():IUserServices{ return (kUser); } private function getServices():void{ var _local1:ApplicationDomain; var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local1 = ApplicationDomain.currentDomain; kAPI = IAPIBootstrap(loader.getChildAt(0)); this.addChild(loader); _local2 = _local1.getDefinition(CLASS_SERVICES); trace(_local2); kServices = _local2.getInstance(); _local3 = _local1.getDefinition(CLASS_SCORES); kScores = _local3.getInstance(); _local4 = _local1.getDefinition(CLASS_STATS); kStats = _local4.getInstance(); _local5 = _local1.getDefinition(CLASS_USER); kUser = _local5.getInstance(); kServices.connect(VERSION); _loaded = true; _connected = true; alertConnected(); } public static function getInstance():KongregateAPI{ if (!mInstance){ throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it.")); }; return (mInstance); } } }//package com.kongregate.as3.client
Section 22
//compareStringCaseInSensitive (de.polygonal.ds.sort.compare.compareStringCaseInSensitive) package de.polygonal.ds.sort.compare { public function compareStringCaseInSensitive(a:String, b:String):int{ var r:int; var k:int; var i:int; a = a.toLowerCase(); b = b.toLowerCase(); if ((a.length + b.length) > 2){ r = 0; k = ((a.length > b.length)) ? a.length : b.length; i = 0; while (i < k) { r = (a.charCodeAt(i) - b.charCodeAt(i)); if (r != 0){ break; }; i++; }; return (r); } else { }; return ((!NULL! - !NULL!)); } }//package de.polygonal.ds.sort.compare
Section 23
//compareStringCaseInSensitiveDesc (de.polygonal.ds.sort.compare.compareStringCaseInSensitiveDesc) package de.polygonal.ds.sort.compare { public function compareStringCaseInSensitiveDesc(a:String, b:String):int{ var r:int; var k:int; var i:int; a = a.toLowerCase(); b = b.toLowerCase(); if ((a.length + b.length) > 2){ r = 0; k = ((a.length > b.length)) ? a.length : b.length; i = 0; while (i < k) { r = (b.charCodeAt(i) - a.charCodeAt(i)); if (r != 0){ break; }; i++; }; return (r); } else { }; return ((!NULL! - !NULL!)); } }//package de.polygonal.ds.sort.compare
Section 24
//compareStringCaseSensitive (de.polygonal.ds.sort.compare.compareStringCaseSensitive) package de.polygonal.ds.sort.compare { public function compareStringCaseSensitive(a:String, b:String):int{ var r:int; var k:int; var i:int; if ((a.length + b.length) > 2){ r = 0; k = ((a.length > b.length)) ? a.length : b.length; i = 0; while (i < k) { r = (a.charCodeAt(i) - b.charCodeAt(i)); if (r != 0){ break; }; i++; }; return (r); } else { }; return ((!NULL! - !NULL!)); } }//package de.polygonal.ds.sort.compare
Section 25
//compareStringCaseSensitiveDesc (de.polygonal.ds.sort.compare.compareStringCaseSensitiveDesc) package de.polygonal.ds.sort.compare { public function compareStringCaseSensitiveDesc(a:String, b:String):int{ var r:int; var k:int; var i:int; if ((a.length + b.length) > 2){ r = 0; k = ((a.length > b.length)) ? a.length : b.length; i = 0; while (i < k) { r = (b.charCodeAt(i) - a.charCodeAt(i)); if (r != 0){ break; }; i++; }; return (r); } else { }; return ((!NULL! - !NULL!)); } }//package de.polygonal.ds.sort.compare
Section 26
//dLinkedInsertionSort (de.polygonal.ds.sort.dLinkedInsertionSort) package de.polygonal.ds.sort { import de.polygonal.ds.*; public function dLinkedInsertionSort(node:DListNode, descending:Boolean=false):DListNode{ var p:DListNode; var n:DListNode; var m:DListNode; var i:DListNode; var val:*; if (!node){ return (null); }; var h:DListNode = node; if (descending){ n = h.next; while (n) { m = n.next; p = n.prev; if (p.data < n.data){ i = p; while (i.prev) { if (i.prev.data < n.data){ i = i.prev; } else { break; }; }; if (m){ p.next = m; m.prev = p; } else { p.next = null; }; if (i == h){ n.prev = null; n.next = i; i.prev = n; h = n; } else { n.prev = i.prev; i.prev.next = n; n.next = i; i.prev = n; }; }; n = m; }; return (h); //unresolved jump }; n = h.next; while (n) { m = n.next; p = n.prev; if (p.data > n.data){ i = p; while (i.prev) { if (i.prev.data > n.data){ i = i.prev; } else { break; }; }; if (m){ p.next = m; m.prev = p; } else { p.next = null; }; if (i == h){ n.prev = null; n.next = i; i.prev = n; h = n; } else { n.prev = i.prev; i.prev.next = n; n.next = i; i.prev = n; }; }; n = m; }; return (h); } }//package de.polygonal.ds.sort
Section 27
//dLinkedInsertionSortCmp (de.polygonal.ds.sort.dLinkedInsertionSortCmp) package de.polygonal.ds.sort { import de.polygonal.ds.*; public function dLinkedInsertionSortCmp(node:DListNode, cmp:Function, descending:Boolean=false):DListNode{ var p:DListNode; var n:DListNode; var m:DListNode; var i:DListNode; var val:*; if (((!(node)) || ((cmp == null)))){ return (null); }; var h:DListNode = node; if (descending){ n = h.next; while (n) { m = n.next; p = n.prev; if (cmp(p.data, n.data) < 0){ i = p; while (i.prev) { if (cmp(i.prev.data, n.data) < 0){ i = i.prev; } else { break; }; }; if (m){ p.next = m; m.prev = p; } else { p.next = null; }; if (i == h){ n.prev = null; n.next = i; i.prev = n; h = n; } else { n.prev = i.prev; i.prev.next = n; n.next = i; i.prev = n; }; }; n = m; }; } else { n = h.next; while (n) { m = n.next; p = n.prev; if (cmp(p.data, n.data) > 0){ i = p; while (i.prev) { if (cmp(i.prev.data, n.data) > 0){ i = i.prev; } else { break; }; }; if (m){ p.next = m; m.prev = p; } else { p.next = null; }; if (i == h){ n.prev = null; n.next = i; i.prev = n; h = n; } else { n.prev = i.prev; i.prev.next = n; n.next = i; i.prev = n; }; }; n = m; }; }; return (h); } }//package de.polygonal.ds.sort
Section 28
//dLinkedMergeSort (de.polygonal.ds.sort.dLinkedMergeSort) package de.polygonal.ds.sort { import de.polygonal.ds.*; public function dLinkedMergeSort(node:DListNode, descending:Boolean=false):DListNode{ var p:DListNode; var q:DListNode; var e:DListNode; var tail:DListNode; var nmerges:int; var psize:int; var qsize:int; var i:int; if (!node){ return (null); }; var h:DListNode = node; var insize = 1; if (descending){ while (true) { p = h; tail = null; h = tail; nmerges = 0; while (p) { nmerges++; i = 0; psize = 0; q = p; while (i < insize) { psize++; q = q.next; if (!q){ break; }; i++; }; qsize = insize; while ((((psize > 0)) || ((((qsize > 0)) && (q))))) { if (psize == 0){ e = q; q = q.next; qsize--; } else { if ((((qsize == 0)) || (!(q)))){ e = p; p = p.next; psize--; } else { if ((p.data - q.data) >= 0){ e = p; p = p.next; psize--; } else { e = q; q = q.next; qsize--; }; }; }; if (tail){ tail.next = e; } else { h = e; }; e.prev = tail; tail = e; }; p = q; }; tail.next = null; if (nmerges <= 1){ return (h); }; insize = (insize << 1); }; } else { while (true) { p = h; tail = null; h = tail; nmerges = 0; while (p) { nmerges++; i = 0; psize = 0; q = p; while (i < insize) { psize++; q = q.next; if (!q){ break; }; i++; }; qsize = insize; while ((((psize > 0)) || ((((qsize > 0)) && (q))))) { if (psize == 0){ e = q; q = q.next; qsize--; } else { if ((((qsize == 0)) || (!(q)))){ e = p; p = p.next; psize--; } else { if ((p.data - q.data) <= 0){ e = p; p = p.next; psize--; } else { e = q; q = q.next; qsize--; }; }; }; if (tail){ tail.next = e; } else { h = e; }; e.prev = tail; tail = e; }; p = q; }; tail.next = null; if (nmerges <= 1){ return (h); }; insize = (insize << 1); }; }; return (null); } }//package de.polygonal.ds.sort
Section 29
//dLinkedMergeSortCmp (de.polygonal.ds.sort.dLinkedMergeSortCmp) package de.polygonal.ds.sort { import de.polygonal.ds.*; public function dLinkedMergeSortCmp(node:DListNode, cmp:Function, descending:Boolean=false):DListNode{ var p:DListNode; var q:DListNode; var e:DListNode; var tail:DListNode; var nmerges:int; var psize:int; var qsize:int; var i:int; if (((!(node)) || ((cmp == null)))){ return (null); }; var h:DListNode = node; var insize = 1; if (descending){ while (true) { p = h; tail = null; h = tail; nmerges = 0; while (p) { nmerges++; i = 0; psize = 0; q = p; while (i < insize) { psize++; q = q.next; if (!q){ break; }; i++; }; qsize = insize; while ((((psize > 0)) || ((((qsize > 0)) && (q))))) { if (psize == 0){ e = q; q = q.next; qsize--; } else { if ((((qsize == 0)) || (!(q)))){ e = p; p = p.next; psize--; } else { if (cmp(p.data, q.data) >= 0){ e = p; p = p.next; psize--; } else { e = q; q = q.next; qsize--; }; }; }; if (tail){ tail.next = e; } else { h = e; }; e.prev = tail; tail = e; }; p = q; }; node.prev = tail; tail.next = null; if (nmerges <= 1){ return (h); }; insize = (insize << 1); }; } else { while (true) { p = h; tail = null; h = tail; nmerges = 0; while (p) { nmerges++; i = 0; psize = 0; q = p; while (i < insize) { psize++; q = q.next; if (!q){ break; }; i++; }; qsize = insize; while ((((psize > 0)) || ((((qsize > 0)) && (q))))) { if (psize == 0){ e = q; q = q.next; qsize--; } else { if ((((qsize == 0)) || (!(q)))){ e = p; p = p.next; psize--; } else { if (cmp(p.data, q.data) <= 0){ e = p; p = p.next; psize--; } else { e = q; q = q.next; qsize--; }; }; }; if (tail){ tail.next = e; } else { h = e; }; e.prev = tail; tail = e; }; p = q; }; node.prev = tail; tail.next = null; if (nmerges <= 1){ return (h); }; insize = (insize << 1); }; }; return (null); } }//package de.polygonal.ds.sort
Section 30
//Collection (de.polygonal.ds.Collection) package de.polygonal.ds { public interface Collection { function get size():int; function isEmpty():Boolean; function getIterator():Iterator; function clear():void; function toArray():Array; function contains():Boolean; } }//package de.polygonal.ds
Section 31
//DLinkedList (de.polygonal.ds.DLinkedList) package de.polygonal.ds { import de.polygonal.ds.sort.*; import de.polygonal.ds.sort.compare.*; public class DLinkedList implements Collection { private var _count:int; public var tail:DListNode; public var head:DListNode; public function DLinkedList(... _args){ super(); head = (tail = null); _count = 0; if (_args.length > 0){ append.apply(this, _args); }; } public function get size():int{ return (_count); } public function isEmpty():Boolean{ return ((_count == 0)); } public function remove(itr:DListIterator):Boolean{ if (((!((itr.list == this))) || (!(itr.node)))){ return (false); }; var node:DListNode = itr.node; if (node == head){ head = head.next; } else { if (node == tail){ tail = tail.prev; }; }; if (itr.node){ itr.node = itr.node.next; }; if (node.prev){ node.prev.next = node.next; }; if (node.next){ node.next.prev = node.prev; }; node.next = (node.prev = null); if (head == null){ tail = null; }; _count--; return (true); } public function removeHead(){ var obj:*; if (head){ obj = head.data; head = head.next; if (head){ head.prev = null; } else { tail = null; }; _count--; return (obj); }; return (null); } public function clear():void{ var next:DListNode; var node:DListNode = head; head = null; while (node) { next = node.next; node.next = (node.prev = null); node = next; }; _count = 0; } public function prepend(... _args):DListNode{ var t:DListNode; var i:int; var k:int = _args.length; var node:DListNode = new DListNode(_args[int((k - 1))]); if (head){ head.insertBefore(node); head = head.prev; } else { head = (tail = node); }; if (k > 1){ t = node; i = (k - 2); while (i >= 0) { node = new DListNode(_args[i]); head.insertBefore(node); head = head.prev; i--; }; _count = (_count + k); return (t); }; _count++; return (node); } public function popDown():void{ var t:DListNode = tail; if (tail.prev == head){ tail = head; tail.next = null; head = t; head.prev = null; head.next = tail; tail.prev = head; } else { tail = tail.prev; tail.next = null; head.prev = t; t.prev = null; t.next = head; head = t; }; } public function concat(... _args):DLinkedList{ var a:DLinkedList; var n:DListNode; var c:DLinkedList = new DLinkedList(); n = head; while (n) { c.append(n.data); n = n.next; }; var k:int = _args.length; var i:int; while (i < k) { a = _args[i]; n = a.head; while (n) { c.append(n.data); n = n.next; }; i++; }; return (c); } public function insertBefore(itr:DListIterator, obj):DListNode{ var node:DListNode; if (itr.list != this){ return (null); }; if (itr.node){ node = new DListNode(obj); itr.node.insertBefore(node); if (itr.node == head){ head = head.prev; }; _count++; return (node); //unresolved jump }; return (prepend(obj)); } public function append(... _args):DListNode{ var t:DListNode; var i:int; var k:int = _args.length; var node:DListNode = new DListNode(_args[0]); if (head){ tail.insertAfter(node); tail = tail.next; } else { head = (tail = node); }; if (k > 1){ t = node; i = 1; while (i < k) { node = new DListNode(_args[i]); tail.insertAfter(node); tail = tail.next; i++; }; _count = (_count + k); return (t); }; _count++; return (node); } public function sort(... _args):void{ var b:int; var cmp:Function; var o:*; if (_count <= 1){ return; }; if (_args.length > 0){ b = 0; cmp = null; o = _args[0]; if ((o is Function)){ cmp = o; if (_args.length > 1){ o = _args[1]; if ((o is int)){ b = o; }; }; } else { if ((o is int)){ b = o; }; }; if (Boolean(cmp)){ if ((b & 2)){ head = dLinkedInsertionSortCmp(head, cmp, (b == 18)); } else { head = dLinkedMergeSortCmp(head, cmp, (b == 16)); }; } else { if ((b & 2)){ if ((b & 4)){ if (b == 22){ head = dLinkedInsertionSortCmp(head, compareStringCaseSensitiveDesc); } else { if (b == 14){ head = dLinkedInsertionSortCmp(head, compareStringCaseInSensitive); } else { if (b == 30){ head = dLinkedInsertionSortCmp(head, compareStringCaseInSensitiveDesc); } else { head = dLinkedInsertionSortCmp(head, compareStringCaseSensitive); }; }; }; } else { head = dLinkedInsertionSort(head, (b == 18)); }; } else { if ((b & 4)){ if (b == 20){ head = dLinkedMergeSortCmp(head, compareStringCaseSensitiveDesc); } else { if (b == 12){ head = dLinkedMergeSortCmp(head, compareStringCaseInSensitive); } else { if (b == 28){ head = dLinkedMergeSortCmp(head, compareStringCaseInSensitiveDesc); } else { head = dLinkedMergeSortCmp(head, compareStringCaseSensitive); }; }; }; } else { if ((b & 16)){ head = dLinkedMergeSort(head, true); }; }; }; }; } else { head = dLinkedMergeSort(head); }; } public function contains(obj):Boolean{ var node:DListNode = head; while (node) { if (node.data == obj){ return (true); }; node = node.next; }; return (false); } public function reverse():void{ var mark:DListNode; var next:DListNode; if (_count == 0){ return; }; var node:DListNode = tail; while (node) { mark = node.prev; if (!node.next){ node.next = node.prev; node.prev = null; head = node; } else { if (!node.prev){ node.prev = node.next; node.next = null; tail = node; } else { next = node.next; node.next = node.prev; node.prev = next; }; }; node = mark; }; } public function insertAfter(itr:DListIterator, obj):DListNode{ var node:DListNode; if (itr.list != this){ return (null); }; if (itr.node){ node = new DListNode(obj); itr.node.insertAfter(node); if (itr.node == tail){ tail = itr.node.next; }; _count++; return (node); //unresolved jump }; return (append(obj)); } public function getIterator():Iterator{ return (new DListIterator(this, head)); } public function toArray():Array{ var a:Array = []; var node:DListNode = head; while (node) { a.push(node.data); node = node.next; }; return (a); } public function getListIterator():DListIterator{ return (new DListIterator(this, head)); } public function join(sep):String{ if (_count == 0){ return (""); }; var s:String = ""; var node:DListNode = head; while (node.next) { s = (s + (node.data + sep)); node = node.next; }; s = (s + node.data); return (s); } public function toString():String{ return ((("[DLinkedList > has " + size) + " nodes]")); } public function removeTail(){ var obj:*; if (tail){ obj = tail.data; tail = tail.prev; if (tail){ tail.next = null; } else { head = null; }; _count--; return (obj); }; return (null); } public function lastNodeOf(obj, from:DListIterator=null):DListIterator{ if (from != null){ if (from.list != this){ return (null); }; }; var node:DListNode = ((from)==null) ? tail : from.node; while (node) { if (node.data === obj){ return (new DListIterator(this, node)); }; node = node.prev; }; return (null); } public function merge(... _args):void{ var a:DLinkedList; a = _args[0]; if (a.head){ if (head){ tail.next = a.head; a.head.prev = tail; tail = a.tail; } else { head = a.head; tail = a.tail; }; _count = (_count + a.size); }; var k:int = _args.length; var i = 1; while (i < k) { a = _args[i]; if (a.head){ tail.next = a.head; a.head.prev = tail; tail = a.tail; _count = (_count + a.size); }; i++; }; } public function nodeOf(obj, from:DListIterator=null):DListIterator{ if (from != null){ if (from.list != this){ return (null); }; }; var node:DListNode = ((from)==null) ? head : from.node; while (node) { if (node.data === obj){ return (new DListIterator(this, node)); }; node = node.next; }; return (null); } public function dump():String{ if (head == null){ return ("DLinkedList, empty"); }; var s = (((("DLinkedList, has " + _count) + " node") + ((_count == 1)) ? "" : "s") + "\n|< Head\n"); var itr:DListIterator = getListIterator(); while (itr.valid()) { s = (s + (("\t" + itr.data) + "\n")); itr.forth(); }; s = (s + "Tail >|"); return (s); } public function splice(start:DListIterator, deleteCount:uint=4294967295, ... _args):DLinkedList{ var s:DListNode; var t:DListNode; var c:DLinkedList; var i:int; var k:int; var n:DListNode; if (start){ if (start.list != this){ return (null); }; }; if (start.node){ s = start.node; t = start.node.prev; c = new DLinkedList(); if (deleteCount == 4294967295){ if (start.node == tail){ return (c); }; while (start.node) { c.append(start.node.data); start.remove(); }; start.list = c; start.node = s; return (c); } else { i = 0; while (i < deleteCount) { if (start.node){ c.append(start.node.data); start.remove(); } else { break; }; i++; }; }; k = _args.length; if (k > 0){ if (_count == 0){ i = 0; while (i < k) { append(_args[i]); i++; }; } else { if (t == null){ n = prepend(_args[0]); i = 1; while (i < k) { n.insertAfter(new DListNode(_args[i])); if (n == tail){ tail = n.next; }; n = n.next; _count++; i++; }; } else { n = t; i = 0; while (i < k) { n.insertAfter(new DListNode(_args[i])); if (n == tail){ tail = n.next; }; n = n.next; _count++; i++; }; }; }; start.node = n; } else { start.node = s; }; start.list = c; return (c); }; return (null); } public function shiftUp():void{ var t:DListNode = head; if (head.next == tail){ head = tail; head.prev = null; tail = t; tail.next = null; head.next = tail; tail.prev = head; } else { head = head.next; head.prev = null; tail.next = t; t.next = null; t.prev = tail; tail = t; }; } } }//package de.polygonal.ds
Section 32
//DListIterator (de.polygonal.ds.DListIterator) package de.polygonal.ds { public class DListIterator implements Iterator { public var node:DListNode; public var list:DLinkedList; public function DListIterator(list:DLinkedList, node:DListNode=null){ super(); this.list = list; this.node = node; } public function remove():Boolean{ return (list.remove(this)); } public function back():void{ if (node){ node = node.prev; }; } public function start():void{ node = list.head; } public function get data(){ if (node){ return (node.data); }; return (null); } public function forth():void{ if (node){ node = node.next; }; } public function toString():String{ return ((("{DListIterator, data=" + (node) ? node.data : "null") + "}")); } public function hasNext():Boolean{ return (Boolean(node)); } public function valid():Boolean{ return (Boolean(node)); } public function next(){ var obj:*; if (hasNext()){ obj = node.data; node = node.next; return (obj); }; return (null); } public function set data(obj):void{ node.data = obj; } public function end():void{ node = list.tail; } } }//package de.polygonal.ds
Section 33
//DListNode (de.polygonal.ds.DListNode) package de.polygonal.ds { public class DListNode implements LinkedListNode { public var prev:DListNode; public var next:DListNode; public var data; public function DListNode(obj){ super(); next = (prev = null); data = obj; } public function unlink():void{ if (prev){ prev.next = next; }; if (next){ next.prev = prev; }; next = (prev = null); } public function insertAfter(node:DListNode):void{ node.next = next; node.prev = this; if (next){ next.prev = node; }; next = node; } public function insertBefore(node:DListNode):void{ node.next = this; node.prev = prev; if (prev){ prev.next = node; }; prev = node; } public function toString():String{ return ((("[DListNode, data=" + data) + "]")); } } }//package de.polygonal.ds
Section 34
//Iterator (de.polygonal.ds.Iterator) package de.polygonal.ds { public interface Iterator { function start():void; function set data(E:\vds_travaux\rabbitsgame\rabbit\src;de\polygonal\ds;Iterator.as):void; function get data(); function next(); function hasNext():Boolean; } }//package de.polygonal.ds
Section 35
//LinkedListNode (de.polygonal.ds.LinkedListNode) package de.polygonal.ds { public interface LinkedListNode { } }//package de.polygonal.ds
Section 36
//AerialEvent (fr.seraf.rabbits.AerialEvent) package fr.seraf.rabbits { import flash.events.*; public class AerialEvent extends Event { public var sens:int; public function AerialEvent(type:String, sens:int, bubbles:Boolean=false, cancelable:Boolean=false){ super(type, bubbles, cancelable); this.sens = sens; } } }//package fr.seraf.rabbits
Section 37
//AerialIndication (fr.seraf.rabbits.AerialIndication) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; import flash.text.*; public class AerialIndication extends Sprite { private var array:Array; private var aerialSpe:KonataTeteIncre; private var arrow:ArrowAerial; private var _aerialCount:int; private var maxAerial:int;// = 3 private var minAerial:int;// = 0 public function AerialIndication(){ var format:TextFormat; var aerial:KonataTete; super(); BDD.aerial = this; _aerialCount = 3; format = new TextFormat(); format.font = BDD.font.fontName; var jaune:Object = new Object(); jaune.fontFamily = BDD.font.fontName; jaune.fontWeight = "bold"; jaune.color = "#FFFF00"; jaune.letterSpacing = 0; jaune.fontSize = 20; var normal:Object = new Object(); normal.fontFamily = BDD.font.fontName; normal.color = "#FFFFFF"; normal.letterSpacing = 0; normal.fontSize = 20; var style:StyleSheet = new StyleSheet(); style.setStyle(".jaune", jaune); style.setStyle("body", normal); var titleText:TextField = new TextField(); titleText.x = 0; titleText.y = 0; titleText.embedFonts = true; titleText.defaultTextFormat = format; titleText.styleSheet = style; titleText.autoSize = "left"; titleText.selectable = false; titleText.text = "<body>aerial</body>"; addChild(titleText); arrow = new ArrowAerial(); arrow.x = -30; arrow.y = 40; addChild(arrow); arrow.visible = false; array = new Array(); var i:int; while (i < maxAerial) { aerial = new KonataTete(); aerial.x = (30 * i); aerial.y = 40; addChild(aerial); array.push(aerial); aerial.visible = false; i++; }; aerialSpe = new KonataTeteIncre(); aerialSpe.addEventListener(KonataTeteIncre.ON_FULL, addAerial); aerialSpe.x = (30 * i); aerialSpe.y = 40; addChild(aerialSpe); aerialSpe.visible = false; updateAerial(); } public function update():void{ if (BDD.ball != null){ if (BDD.ball.isAerial()){ arrow.gotoAndStop((BDD.ball.isUp) ? 2 : 1); arrow.visible = true; } else { arrow.visible = false; }; }; } public function addAerial(e:Event):void{ _aerialCount++; if (_aerialCount > maxAerial){ _aerialCount = int(maxAerial); }; updateAerial(); } public function get isFull():Boolean{ return ((_aerialCount == 3)); } public function get aerialCount():int{ return (_aerialCount); } public function useAerial():void{ _aerialCount--; if (_aerialCount < minAerial){ _aerialCount = int(minAerial); }; updateAerial(); } private function updateAerial():void{ var aerial:KonataTete; var i:int; while (i < maxAerial) { aerial = array[i]; aerial.visible = false; i++; }; i = 0; while (i < _aerialCount) { aerial = array[i]; aerial.visible = true; aerialSpe.x = ((30 * i) + 30); i++; }; if (!isPossible){ aerialSpe.x = 0; }; aerialSpe.visible = !(isFull); } public function incre():void{ if (!isFull){ aerialSpe.incre(); }; } public function get isPossible():Boolean{ return (!((_aerialCount == 0))); } public function set count(_count:int):void{ _aerialCount = _count; aerialSpe.reset(); updateAerial(); } } }//package fr.seraf.rabbits
Section 38
//Ball (fr.seraf.rabbits.Ball) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class Ball extends Sprite implements IDisposable { private var itvK:int;// = -1 private var lastTime:int; private var ratioMetre:int;// = 30 public var clip:BallMovieClip; private var realPos:Point; private var radius:Number; private var lastPositionY:Number; private var mode:String; public var isUp:Boolean;// = true private var lastPositionX:Number; public var position:Point; private var itv:int;// = -1 private var friction:Number; private var heightMax:Number;// = 0 public var direction:Vector2D; public static const ON_MOVE:String = "ON_MOVE"; public static const ON_FLY:String = "ON_FLY"; public static const ON_GLISSE:String = "ON_GLISSE"; public static const ON_AERIAL1:String = "ON_AERIAL1"; public static const ON_END:String = "ON_END"; public function Ball(){ super(); realPos = new Point(0, 0); scaleX = (scaleY = BDD.scalePerso); direction = new Vector2D(0, 0); position = new Point(0, 0); clip = new BallMovieClip(); addChild(clip); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, setAerial); play(); } public function continueAerial2():void{ var tempSpeed:Number; var v:Vector2D; var sens:int; if (BDD.gameBackground.konata != null){ tempSpeed = (speed + 30); v = new Vector2D(); sens = 1; if (direction.y > 0){ sens = -1; }; v.angleToVector((20 * sens)); v.normalize(); v.multEquals(tempSpeed); direction = new Vector2D(); addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.gameBackground.konata.clearBear(); play(); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, setAerial); }; } public function get meter():int{ return (int((realPos.x / ratioMetre))); } public function show():void{ clip.visible = true; play(); } public function get speed():Number{ return (direction.magnitude()); } private function setAerial(e:MouseEvent):void{ var sens:int; if (isAerial()){ BDD.aerial.useAerial(); Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, setAerial); stop(); sens = 1; if (direction.y > 0){ sens = -1; }; dispatchEvent(new AerialEvent(ON_AERIAL1, sens)); }; } public function move():void{ friction = (1 - (BDD.AIR_FRICTION * BDD.MOTION_SPEED)); direction.scale(friction); direction.y = (direction.y + (BDD.GRAVITY * BDD.MOTION_SPEED)); position.x = (position.x + (direction.x * BDD.MOTION_SPEED)); position.y = (position.y + (direction.y * BDD.MOTION_SPEED)); realPos.x = (realPos.x + (direction.x * BDD.MOTION_SPEED)); realPos.y = (realPos.y + (direction.y * BDD.MOTION_SPEED)); if (mode == "glisse"){ clip.rotation = 0; }; if (mode == "rotation"){ clip.rotation = (clip.rotation + (direction.x * BDD.MOTION_SPEED)); } else { if (mode == "droit"){ clip.rotation = ((Math.atan2((position.y - lastPositionY), (position.x - lastPositionX)) * 180) / Math.PI); }; }; checkCollision(); clip.y = position.y; lastPositionY = position.y; lastPositionX = position.x; if (position.y > -300){ BDD.aerial.incre(); }; var depla:Number = ((direction.x * BDD.MOTION_SPEED) / 2); dispatchEvent(new MoveEvent(ON_MOVE, depla)); dispatchEvent(new MoveEvent(ON_MOVE, depla)); if ((((((((direction.x > 25)) || ((direction.y > 25)))) || ((direction.y < -25)))) && ((position.y > -500)))){ dispatchEvent(new Event(ON_FLY)); }; } public function continueAerial(e:Event):void{ if (BDD.gameBackground.konata != null){ itvK = setTimeout(continueAerial2, 600); }; } public function isAerial():Boolean{ return ((((((position.y < -110)) && ((position.y > -300)))) && (BDD.aerial.isPossible))); } public function end():void{ stop(); dispatchEvent(new Event(ON_END)); } public function addImpulse(__x:Number, __y:Number, type:String="rotation"):void{ if ((((__x > 30)) || ((__y > 30)))){ radius = 0; }; if ("rotation" == type){ radius = -10; }; mode = type; if ("droit" == type){ clip.gotoAndStop(type); } else { clip.gotoAndPlay(type); }; if ((((__x > 80)) || ((__y > 80)))){ BDD.soundFactory.playSound(BDD.soundSpeed, 1); }; direction.addValue(__x, __y); } public function dispose():void{ if (itvK != -1){ clearInterval(itvK); }; itvK = -1; clearInterval(itv); itv = -1; removeChild(clip); clip = null; } public function play():void{ lastTime = getTimer(); if (itv == -1){ itv = setInterval(move, 23); }; } private function checkCollision():void{ if ((((position.y > lastPositionY)) && (isUp))){ heightMax = lastPositionY; }; if (position.y < lastPositionY){ isUp = true; } else { isUp = false; }; if (position.y > radius){ if (direction.x > 1){ dispatchEvent(new Event(ON_GLISSE)); }; if (mode != "rotation"){ if (mode == "droit"){ mode = "rotation"; radius = -10; clip.gotoAndPlay("rotation"); }; }; if ((((((direction.y < 5)) && ((direction.x < 10)))) && (!((mode == "glisse"))))){ radius = 0; mode = "glisse"; clip.gotoAndPlay("glisse"); }; if (direction.x < 0.4){ clearInterval(itv); itv = -1; dispatchEvent(new Event(ON_END)); }; position.y = radius; realPos.y = radius; direction.y = (direction.y * -(BDD.GROUND_REBOUND)); direction.x = (direction.x * 0.98); if ((((((heightMax < -150)) && (!(isUp)))) && (!((mode == "glisse"))))){ BDD.soundFactory.playSound(BDD.pouet, Math.min(0.3, ((0.3 / 1000) * -((heightMax + 150))))); }; }; } public function get hauteur():int{ return (int((realPos.y / ratioMetre))); } public function hide():void{ clip.visible = false; stop(); } public function getPosAt(frame:int):Point{ var tempPos:Point = new Point(0, position.y); var tempVec:Vector2D = new Vector2D(direction.x, direction.y); var _friction:Number = (1 - (BDD.AIR_FRICTION * BDD.MOTION_SPEED)); var i:int; while (i < frame) { tempVec.scale(_friction); tempVec.y = (tempVec.y + (BDD.GRAVITY * BDD.MOTION_SPEED)); tempPos.x = (tempPos.x + (tempVec.x * BDD.MOTION_SPEED)); tempPos.y = (tempPos.y + (tempVec.y * BDD.MOTION_SPEED)); if (tempPos.y > 0){ tempPos.y = 0; tempVec.y = (tempVec.y * -(BDD.GROUND_REBOUND)); tempVec.x = (tempVec.x * 0.97); }; i++; }; return (new Point(tempPos.x, tempPos.y)); } public function isHigh():Boolean{ return ((realPos.y < -350)); } public function stop():void{ clearInterval(itv); itv = -1; } public function love():void{ if ("droit" == mode){ BDD.ball.clip.gotoAndStop("love"); } else { BDD.ball.clip.gotoAndStop("rotLove"); }; } } }//package fr.seraf.rabbits
Section 39
//BDD (fr.seraf.rabbits.BDD) package fr.seraf.rabbits { import flash.display.*; import flash.geom.*; public class BDD { public static const STAGE_WIDTH:int = 600; public static const GRAVITY:Number = 0.85; public static const font:Police = new Police(); public static const GROUND_REBOUND:Number = 0.88; public static const AIR_FRICTION:Number = 0.01; public static const STAGE_HEIGHT:int = 400; public static var valid:Valid = new Valid(); public static var volumeSFX:Number; public static var prout:Prout = new Prout(); public static var scalePerso:Number = 0.7; public static var gameBoard:GameBoard; public static var parapluieSound:ParapluieSound = new ParapluieSound(); public static var raikiriSound:RaikiriSound = new RaikiriSound(); public static var konataAction:KonataAction = new KonataAction(); public static var fail:Fail = new Fail(); public static var volumeMusic:Number; public static var etirement:EtirementSound = new EtirementSound(); public static var murloc:Murloc = new Murloc(); public static var superIndication:SuperIndication; public static var ballReal:Point = new Point(0, 0); public static var kiss:Kiss = new Kiss(); public static var klaxon:Klaxon = new Klaxon(); public static var sub:Sub = new Sub(); public static var MOTION_SPEED:Number = 1; public static var konataGoodJob:KonataGoodJob = new KonataGoodJob(); public static var electricite:Electricite = new Electricite(); public static var gameInterface:GameInterface; public static var saut:Saut = new Saut(); public static var love:Boolean = false; public static var soundSpeed:SpeedSound = new SpeedSound(); public static var pouet:Pouet = new Pouet(); public static var elico:Elico = new Elico(); public static var ohyeah:OhYeah = new OhYeah(); public static var tir:Tir = new Tir(); public static var wow:Wow = new Wow(); public static var isPlaying:Boolean = false; public static var boum:Boum = new Boum(); public static var klakson2:Klakson2 = new Klakson2(); public static var kiss2:Kiss2 = new Kiss2(); public static var gameBackground:GameBackground; public static var tututu:Tututu = new Tututu(); public static var aerial:AerialIndication; public static var tire1:Tire1 = new Tire1(); public static var tire2:Tire2 = new Tire2(); public static var gatling:Gatling = new Gatling(); public static var advertOn:Boolean = true; public static var elastic:ElasticSound = new ElasticSound(); public static var kongregateEnabled:Boolean = false; public static var grr:Grr = new Grr(); public static var menuGame:MenuGame; public static var soundFactory:SoundFactory; public static var stage:Stage; public static var ball:Ball; public function BDD(){ super(); } } }//package fr.seraf.rabbits
Section 40
//BearBatman (fr.seraf.rabbits.BearBatman) package fr.seraf.rabbits { import flash.geom.*; import flash.text.*; public class BearBatman extends Perso { private var roue1:RoueBatmobile; private var roue2:RoueBatmobile; private var clip:Batman; private var direction2:Vector2D; private var direction3:Vector2D; private var realPos:Point; private var radius:Number; private var titleText:TextField; private var position:Point; private var friction:Number; private var bear:BearSpider; private var direction:Vector2D; public function BearBatman(bear:BearSpider){ this.bear = bear; super(0); var format:TextFormat = new TextFormat(); format.font = BDD.font.fontName; scaleX = (scaleY = BDD.scalePerso); realPos = new Point(0, 0); direction = new Vector2D((BDD.ball.direction.x * 0.55), -15); direction2 = new Vector2D(((Math.random() * 40) + 20), ((Math.random() * -20) - 5)); direction3 = new Vector2D(((Math.random() * 40) + 20), ((Math.random() * -20) - 5)); position = new Point(0, 0); clip = new Batman(); clip.x = (BDD.ball.x + BDD.ball.clip.x); clip.y = ((BDD.ball.y + BDD.ball.clip.y) + 45); addChild(clip); roue1 = new RoueBatmobile(); roue1.x = (bear.x - 103); roue1.y = (bear.y - 11); addChild(roue1); roue2 = new RoueBatmobile(); roue2.x = (bear.x - 271); roue2.y = (bear.y - 11); addChild(roue2); } override public function move(_x:Number):void{ roue2.x = (roue2.x - _x); roue1.x = (roue1.x - _x); clip.x = (clip.x - _x); if ((((((clip.x < -200)) && ((roue1.x < -200)))) && ((roue2.x < -200)))){ dispatchEvent(new OutScreenEvent(ON_OUT_OF_VIEW, clip.x)); return; }; friction = (1 - (BDD.AIR_FRICTION * BDD.MOTION_SPEED)); direction.scale(friction); direction.y = (direction.y + ((BDD.GRAVITY * BDD.MOTION_SPEED) / 3)); clip.x = (clip.x + (direction.x * BDD.MOTION_SPEED)); clip.y = (clip.y + (direction.y * BDD.MOTION_SPEED)); direction2.scale(friction); direction2.y = (direction2.y + ((BDD.GRAVITY * BDD.MOTION_SPEED) / 3)); roue1.x = (roue1.x + (direction2.x * BDD.MOTION_SPEED)); roue1.y = (roue1.y + (direction2.y * BDD.MOTION_SPEED)); direction3.scale(friction); direction3.y = (direction3.y + ((BDD.GRAVITY * BDD.MOTION_SPEED) / 3)); roue2.x = (roue2.x + (direction3.x * BDD.MOTION_SPEED)); roue2.y = (roue2.y + (direction3.y * BDD.MOTION_SPEED)); clip.rotation = (clip.rotation + 3); roue1.rotation = (roue1.rotation + 5); roue2.rotation = (roue2.rotation + 4); checkCollision(); } override public function dispose():void{ removeChild(clip); clip = null; removeChild(roue1); roue1 = null; removeChild(roue2); roue2 = null; } private function checkCollision():void{ if (clip.y > 50){ direction.y = (direction.y * -(BDD.GROUND_REBOUND)); direction.x = (direction.x * 0.95); }; if (roue1.y > 50){ direction2.y = (direction2.y * -(BDD.GROUND_REBOUND)); direction2.x = (direction2.x * 0.95); }; if (roue2.y > 50){ direction3.y = (direction3.y * -(BDD.GROUND_REBOUND)); direction3.x = (direction3.x * 0.95); }; } } }//package fr.seraf.rabbits
Section 41
//BearKakashi (fr.seraf.rabbits.BearKakashi) package fr.seraf.rabbits { import flash.events.*; import flash.geom.*; import caurina.transitions.*; import flash.utils.*; public class BearKakashi extends Perso { private var sprite:Kakashi; private var frameHit:int;// = 1 private var itv:int;// = -1 private var frameTarget:int; private var collide:Boolean; public static const EFFECT:String = "Speed down"; public static const ON_HIT:String = "ON_HIT"; public function BearKakashi(_x:Number){ super(_x, "kakashi"); scaleX = (scaleY = BDD.scalePerso); frameTarget = 0; collide = false; sprite = new Kakashi(); addChild(sprite); } private function clearItv(e:MouseEvent):void{ if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); } override public function dispose():void{ sprite.stop(); removeChild(sprite); sprite = null; } override public function move(_x:Number):void{ super.move(_x); if (!collide){ anticipeCollision(); }; if (collide){ frameTarget++; if (frameTarget == frameHit){ checkSpecial(); }; }; } private function clearItv2():void{ BDD.soundFactory.playSound(BDD.fail, 1); showSpecialWordUnvalid(); if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); BDD.MOTION_SPEED = 1; BDD.ball.play(); if (sprite != null){ sprite.gotoAndPlay("buche"); }; Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); } public function anticipeCollision():void{ var truc:Point = BDD.ball.getPosAt(frameHit); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 10))) && ((truc.x > (x - 15))))) && ((truc.y > -60)))){ collide = true; }; } private function setSpecial():void{ showSpecialWord(); BDD.MOTION_SPEED = 0; BDD.ball.stop(); BDD.soundFactory.playSound(BDD.tututu, 1); checkClickSpecial(); } private function checkSpecial():void{ if (BDD.superIndication.isActiv(type)){ setSpecial(); } else { BDD.soundFactory.playSound(BDD.sub, 1); if (sprite != null){ sprite.gotoAndPlay("buche"); }; }; } private function checkClickSpecial():void{ Tweener.addTween(BDD.gameBackground, {x:((BDD.STAGE_WIDTH / 3) * 2), time:1, transition:"easeOutQuart"}); itv = setTimeout(clearItv2, 1000); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, validSpecial); } private function validSpecial(e:MouseEvent):void{ showSpecialWordValid(); clearItv(null); sprite.gotoAndPlay("special"); setTimeout(BDD.soundFactory.playSound, 500, BDD.electricite, 1); setTimeout(BDD.soundFactory.playSound, 1800, BDD.boum, 1); BDD.soundFactory.playSound(BDD.valid, 1); sprite.addFrameScript(92, specialKick); } private function specialKick():void{ var tempSpeed:Number = (BDD.ball.speed + 130); var v:Vector2D = new Vector2D(); v.angleToVector(-35); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.ball.play(); Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); } } }//package fr.seraf.rabbits
Section 42
//BearKonata (fr.seraf.rabbits.BearKonata) package fr.seraf.rabbits { import flash.events.*; import caurina.transitions.*; public class BearKonata extends Perso { private var sprite:Konata; private var sens:int; private var collide:Boolean; public static const EFFECT:String = "Game over"; public static const ON_HIT:String = "ON_HIT"; public static const ON_KICK:String = "ON_KICK"; public function BearKonata(_x:Number, _y:Number, sens:int){ this.sens = sens; super(0); scaleX = (scaleY = BDD.scalePerso); collide = false; if (Math.random() > 0.5){ BDD.soundFactory.playSound(BDD.konataAction, 0.3); } else { BDD.soundFactory.playSound(BDD.konataGoodJob, 0.4); }; sprite = new Konata(); if (sens == -1){ sprite.y = 0; sprite.x = -350; sprite.gotoAndStop("bas"); } else { sprite.y = (_y - 200); sprite.x = -250; }; addChild(sprite); Tweener.addTween(sprite, {x:0, y:_y, time:0.15, delay:0.4, transition:"easeOutQuart", onComplete:continu}); } public function clearBear():void{ if (sens == -1){ sprite.gotoAndStop("ferme22"); } else { sprite.gotoAndStop("ferme3"); }; } override public function move(_x:Number):void{ super.move(_x); } public function continu():void{ if (sens == -1){ sprite.gotoAndStop("ferme2"); } else { sprite.gotoAndStop("ferme"); }; if (sprite != null){ dispatchEvent(new Event(ON_KICK)); }; } override public function dispose():void{ removeChild(sprite); sprite = null; } } }//package fr.seraf.rabbits
Section 43
//BearLara (fr.seraf.rabbits.BearLara) package fr.seraf.rabbits { import flash.events.*; import flash.geom.*; import caurina.transitions.*; import flash.utils.*; public class BearLara extends Perso { private var sprite:Lara; private var frameHit:int;// = 19 private var itv2:int;// = -1 private var itv:int;// = -1 private var frameTarget:int; private var collide:Boolean; public static const EFFECT:String = "Speed down"; public static const ON_HIT:String = "ON_HIT"; public function BearLara(_x:Number){ super(_x); frameTarget = 0; collide = false; sprite = new Lara(); addChild(sprite); scaleX = (scaleY = (BDD.scalePerso + 0.1)); } private function clearItv(e:MouseEvent):void{ if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); } override public function dispose():void{ sprite.stop(); removeChild(sprite); sprite = null; } private function normalKick():void{ BDD.soundFactory.playSound(BDD.elastic, 1); var tempSpeed:Number = (BDD.ball.speed + 50); var v:Vector2D = new Vector2D(); v.angleToVector(-45); v.normalize(); v.multEquals(tempSpeed); if (BDD.ball != null){ BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); }; } private function checkSpecial():void{ var truc:Point = BDD.ball.getPosAt(1); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 55))) && ((truc.x > (x - 60))))) && ((truc.y > -100)))){ if (BDD.superIndication.isActiv(type)){ setSpecial(); } else { if (sprite != null){ sprite.play(); sprite.addFrameScript(54, normalKick); }; }; } else { frameTarget = 0; collide = false; }; } private function clearItv2():void{ BDD.soundFactory.playSound(BDD.fail, 1); showSpecialWordUnvalid(); if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); BDD.MOTION_SPEED = 1; BDD.ball.play(); if (sprite != null){ sprite.play(); sprite.addFrameScript(54, normalKick); }; Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); } public function anticipeCollision():void{ var truc:Point = BDD.ball.getPosAt(frameHit); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 25))) && ((truc.x > (x - 25))))) && ((truc.y > -60)))){ collide = true; if (sprite != null){ BDD.soundFactory.playSound(BDD.tir, 0.5); itv2 = setTimeout(BDD.soundFactory.playSound, 500, BDD.saut, 1); if (BDD.ball.position.y > -100){ sprite.gotoAndPlay("tire_droit"); } else { sprite.gotoAndPlay("tire_haut"); }; collide = true; }; }; } private function setSpecial():void{ showSpecialWord(); BDD.MOTION_SPEED = 0; BDD.ball.stop(); BDD.soundFactory.playSound(BDD.tututu, 1); checkClickSpecial(); } override public function move(_x:Number):void{ super.move(_x); if (!collide){ anticipeCollision(); }; if (collide){ frameTarget++; if (frameTarget == (frameHit * 2)){ checkSpecial(); }; }; } private function checkClickSpecial():void{ Tweener.addTween(BDD.gameBackground, {x:((BDD.STAGE_WIDTH / 3) * 2), time:1, transition:"easeOutQuart"}); sprite.stop(); itv = setTimeout(clearItv2, 1000); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, validSpecial); } private function validSpecial(e:MouseEvent):void{ BDD.soundFactory.playSound(BDD.valid, 1); showSpecialWordValid(); clearItv(null); sprite.addFrameScript(90, specialKick); sprite.gotoAndPlay("special"); setTimeout(BDD.soundFactory.playSound, 400, BDD.boum, 1); BDD.soundFactory.playSound(BDD.murloc, 2); } private function specialKick():void{ var tempSpeed:Number = (BDD.ball.speed + 80); var v:Vector2D = new Vector2D(); v.angleToVector(-45); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.ball.play(); Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); } } }//package fr.seraf.rabbits
Section 44
//BearLuffy (fr.seraf.rabbits.BearLuffy) package fr.seraf.rabbits { import flash.events.*; import flash.geom.*; import flash.utils.*; public class BearLuffy extends Perso { private var sprite:Luffy; private var frameHit:int;// = 4 private var itv:int;// = -1 private var frameTarget:int; private var soundCopunt:int;// = 0 private var collide:Boolean; public static const EFFECT:String = "Speed down"; public static const ON_HIT:String = "ON_HIT"; public function BearLuffy(_x:Number){ super(_x, "luffy"); frameTarget = 0; collide = false; sprite = new Luffy(); addChild(sprite); scaleX = (scaleY = BDD.scalePerso); } private function clearItv(e:MouseEvent):void{ if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); } public function anticipeCollision():void{ var truc:Point = BDD.ball.getPosAt(frameHit); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 50))) && ((truc.x > (x - 10))))) && ((truc.y > -60)))){ BDD.soundFactory.playSound(BDD.etirement, 1); sprite.gotoAndPlay("shoot"); collide = true; }; } override public function dispose():void{ sprite.stop(); removeChild(sprite); sprite = null; } override public function move(_x:Number):void{ super.move(_x); if (!collide){ anticipeCollision(); }; if (collide){ frameTarget++; if (frameTarget == (frameHit * 2)){ checkSpecial(); }; }; } private function normalKick():void{ BDD.soundFactory.playSound(BDD.elastic, 1); var tempSpeed:Number = (BDD.ball.speed + 50); var v:Vector2D = new Vector2D(); v.angleToVector(-45); v.normalize(); v.multEquals(tempSpeed); if (BDD.ball != null){ BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); }; } private function setSpecial():void{ showSpecialWord(); BDD.MOTION_SPEED = 0; BDD.ball.stop(); BDD.soundFactory.playSound(BDD.tututu, 1); checkClickSpecial(); } private function checkSpecial():void{ var truc:Point = BDD.ball.getPosAt(1); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 100))) && ((truc.x > (x - 50))))) && ((truc.y > -80)))){ if (BDD.superIndication.isActiv(type)){ setSpecial(); } else { if (sprite != null){ sprite.addFrameScript(44, normalKick); }; }; } else { frameTarget = 0; if (sprite != null){ sprite.gotoAndStop(1); }; collide = false; }; } private function checkClickSpecial():void{ sprite.stop(); itv = setTimeout(clearItv2, 1000); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, validSpecial); } private function clearItv2():void{ BDD.soundFactory.playSound(BDD.fail, 1); showSpecialWordUnvalid(); if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); BDD.MOTION_SPEED = 1; BDD.ball.play(); if (sprite != null){ sprite.play(); sprite.addFrameScript(44, normalKick); }; } private function validSpecial(e:MouseEvent):void{ BDD.soundFactory.playSound(BDD.valid, 1); showSpecialWordValid(); clearItv(null); sprite.addFrameScript(28, specialKick); sprite.gotoAndPlay("special"); BDD.soundFactory.playSound(BDD.gatling, 0.5); } private function specialKick():void{ sprite.stop(); var tempSpeed:Number = (BDD.ball.speed + 150); var v:Vector2D = new Vector2D(); v.angleToVector(-35); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.ball.play(); } } }//package fr.seraf.rabbits
Section 45
//BearOld (fr.seraf.rabbits.BearOld) package fr.seraf.rabbits { import flash.events.*; import flash.geom.*; import flash.utils.*; public class BearOld extends Perso { private var sprite:Vieille; private var frameHit:int;// = 1 private var itv:int;// = -1 private var tempSpeed:Number; private var frameTarget:int; private var collide:Boolean; public static const EFFECT:String = "Angle up"; public static const ON_HIT:String = "ON_HIT"; public function BearOld(_x:Number){ super(_x, "vielle"); frameTarget = 0; collide = false; sprite = new Vieille(); addChild(sprite); scaleX = (scaleY = BDD.scalePerso); } private function clearItv(e:MouseEvent):void{ if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); } private function validSpecial(e:MouseEvent):void{ BDD.soundFactory.playSound(BDD.valid, 1); showSpecialWordValid(); clearItv(null); sprite.gotoAndPlay("special"); setTimeout(specialKick, 2000); } override public function dispose():void{ sprite.stop(); removeChild(sprite); sprite = null; } override public function move(_x:Number):void{ super.move(_x); if (!collide){ anticipeCollision(); }; if (collide){ frameTarget++; if (frameTarget == frameHit){ checkSpecial(); }; }; } private function clearItv2():void{ var v:Vector2D; BDD.soundFactory.playSound(BDD.fail, 1); showSpecialWordUnvalid(); if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); BDD.MOTION_SPEED = 1; BDD.ball.play(); if (sprite != null){ BDD.soundFactory.playSound(BDD.parapluieSound, 1); tempSpeed = ((BDD.ball as Ball).speed + 5); v = new Vector2D(); v.angleToVector(-45); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y); }; } public function anticipeCollision():void{ var truc:Point = BDD.ball.getPosAt(frameHit); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 15))) && ((truc.x > (x - 40))))) && ((truc.y > -60)))){ if (sprite != null){ sprite.gotoAndPlay("ouvre"); }; collide = true; }; } private function setSpecial():void{ showSpecialWord(); BDD.MOTION_SPEED = 0; BDD.ball.stop(); BDD.soundFactory.playSound(BDD.tututu, 1); checkClickSpecial(); } private function checkSpecial():void{ var v:Vector2D; var truc:Point = BDD.ball.getPosAt(1); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 30))) && ((truc.x > (x - 60))))) && ((truc.y > -60)))){ if (BDD.superIndication.isActiv(type)){ setSpecial(); } else { if (sprite != null){ BDD.soundFactory.playSound(BDD.parapluieSound, 1); tempSpeed = ((BDD.ball as Ball).speed + 5); v = new Vector2D(); v.angleToVector(-45); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y); }; }; } else { frameTarget = 0; if (sprite != null){ sprite.gotoAndStop(1); }; collide = false; }; } private function checkClickSpecial():void{ sprite.stop(); itv = setTimeout(clearItv2, 1000); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, validSpecial); } private function specialKick():void{ BDD.MOTION_SPEED = 1; BDD.ball.play(); } } }//package fr.seraf.rabbits
Section 46
//BearPinup (fr.seraf.rabbits.BearPinup) package fr.seraf.rabbits { import flash.events.*; import flash.geom.*; import caurina.transitions.*; import flash.utils.*; public class BearPinup extends Perso { private var sprite:Grosse; private var frameHit:int;// = 1 private var itv:int;// = -1 private var collide:Boolean; private var frameTarget:int; public static const EFFECT:String = "Game over"; public static const ON_HIT:String = "ON_HIT"; public function BearPinup(_x:Number){ super(_x, "grosse"); scaleX = (scaleY = BDD.scalePerso); collide = false; frameTarget = 0; sprite = new Grosse(); addChild(sprite); } private function kiss():void{ if (Math.random() > 0.5){ BDD.soundFactory.playSound(BDD.kiss, 1); } else { BDD.soundFactory.playSound(BDD.kiss2, 1); }; } private function clearItv(e:MouseEvent):void{ if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); } override public function dispose():void{ sprite.stop(); removeChild(sprite); sprite = null; } private function endLove():void{ BDD.love = false; } override public function move(_x:Number):void{ super.move(_x); if (!collide){ anticipeCollision(); }; if (collide){ frameTarget++; if (frameTarget == frameHit){ checkSpecial(); }; }; } private function clearItv2():void{ BDD.soundFactory.playSound(BDD.fail, 1); showSpecialWordUnvalid(); if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); BDD.MOTION_SPEED = 0; BDD.ball.hide(); sprite.addFrameScript(11, kiss); BDD.ball.end(); if (sprite != null){ sprite.gotoAndPlay("end"); }; Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); } public function anticipeCollision():void{ var truc:Point = BDD.ball.getPosAt(1); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 15))) && ((truc.x > (x - 15))))) && ((truc.y > -55)))){ collide = true; }; } private function setSpecial():void{ showSpecialWord(); BDD.MOTION_SPEED = 0; BDD.ball.stop(); BDD.soundFactory.playSound(BDD.tututu, 1); checkClickSpecial(); } private function checkSpecial():void{ if (BDD.superIndication.isActiv(type)){ setSpecial(); } else { BDD.MOTION_SPEED = 0; BDD.ball.end(); BDD.ball.hide(); sprite.addFrameScript(11, kiss); if (sprite != null){ sprite.gotoAndPlay("end"); }; }; } private function checkClickSpecial():void{ Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 2), time:1, transition:"easeOutQuart"}); itv = setTimeout(clearItv2, 1000); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, validSpecial); } private function setLoveBall():void{ BDD.ball.love(); } private function validSpecial(e:MouseEvent):void{ BDD.soundFactory.playSound(BDD.valid, 1); showSpecialWordValid(); clearItv(null); sprite.gotoAndPlay("special"); setTimeout(BDD.soundFactory.playSound, 600, BDD.ohyeah, 1); sprite.addFrameScript(96, setLoveBall); sprite.addFrameScript(140, specialKick); } private function specialKick():void{ setTimeout(endLove, 3000); BDD.love = true; var tempSpeed:Number = (BDD.ball.speed + 80); var v:Vector2D = new Vector2D(); v.angleToVector(-25); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.ball.play(); BDD.ball.clip.gotoAndStop("love"); BDD.soundFactory.playSound(BDD.wow, 1); Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:3, transition:"easeOutQuart"}); } } }//package fr.seraf.rabbits
Section 47
//BearSelectAngle (fr.seraf.rabbits.BearSelectAngle) package fr.seraf.rabbits { import flash.events.*; import flash.geom.*; import flash.utils.*; public class BearSelectAngle extends Perso { private var sprite:BalezeBear; private var arrow:ArrowBalezeBear; private var tempSpeed:Number; private var sens:Number; private var timeout:int; private var frameTarget:int; private var frameHit:int;// = 1 private var itv2:int;// = -1 private var itv:int;// = -1 private var bitmap:BitmapCache; private var collide:Boolean; public static const EFFECT:String = "Random impulse"; public static const ON_HIT:String = "ON_HIT"; public static const CHOOSE_ANGLE:String = "CHOOSE_ANGLE"; public function BearSelectAngle(_x:Number){ super(_x, "gros"); frameTarget = 0; collide = false; sprite = new BalezeBear(); addChild(sprite); scaleX = (scaleY = BDD.scalePerso); } override public function dispose():void{ if (itv != -1){ clearInterval(itv); Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, selectAngle); }; clearInterval(timeout); if (itv2 != -1){ clearInterval(itv2); }; if (arrow != null){ removeChild(arrow); arrow = null; }; removeChild(sprite); sprite = null; } private function selectAngle(e:MouseEvent):void{ clearInterval(timeout); timeout = -1; clearInterval(itv); itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, selectAngle); sprite.gotoAndStop("leave"); var v:Vector2D = new Vector2D(); v.angleToVector(arrow.rotation); v.normalize(); v.multEquals(tempSpeed); BDD.ball.position.y = -70; BDD.ball.position.x = (x - 10); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.ball.show(); removeChild(arrow); arrow = null; } override public function move(_x:Number):void{ super.move(_x); if (!collide){ anticipeCollision(); }; if (collide){ frameTarget++; if (frameTarget == frameHit){ checkSpecial(); }; }; } private function clearItv2():void{ showSpecialWordUnvalid(); if (itv2 != -1){ clearInterval(itv2); }; itv2 = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); BDD.MOTION_SPEED = 1; BDD.ball.show(); if ((((BDD.ball.direction.x < 10)) && ((BDD.ball.position.y > -50)))){ end(); } else { showArrow(); }; } private function checkSpecial():void{ var truc:Point = BDD.ball.getPosAt(1); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + (30 * BDD.scalePerso)))) && ((truc.x > (x - (25 * BDD.scalePerso)))))) && ((truc.y > -80)))){ if (BDD.superIndication.isActiv(type)){ setSpecial(); } else { if ((((BDD.ball.direction.x < 10)) && ((BDD.ball.position.y > -50)))){ end(); } else { showArrow(); }; }; } else { frameTarget = 0; if (sprite != null){ sprite.gotoAndStop(1); }; collide = false; }; } private function end():void{ BDD.MOTION_SPEED = 0; BDD.ball.hide(); sprite.gotoAndPlay("hit2"); BDD.soundFactory.playSound(BDD.prout, 2); BDD.ball.end(); } private function validSpecial(e:MouseEvent):void{ BDD.soundFactory.playSound(BDD.valid, 1); showSpecialWordValid(); clearItv(null); BDD.soundFactory.playSound(BDD.elico, 1); sprite.gotoAndStop("special"); setTimeout(specialKick, 2000); } private function specialKick():void{ sprite.gotoAndStop("fin"); var tempSpeed:Number = (BDD.ball.speed + 100); var v:Vector2D = new Vector2D(); v.angleToVector(-35); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.ball.show(); } private function showArrow():void{ BDD.soundFactory.playSound(BDD.grr, 1); tempSpeed = ((BDD.ball.speed * 1.3) + 3); BDD.MOTION_SPEED = 0; sprite.gotoAndStop("hit"); BDD.ball.hide(); dispatchEvent(new Event(CHOOSE_ANGLE)); arrow = new ArrowBalezeBear(); arrow.mouseChildren = true; arrow.y = -80; arrow.x = 60; addChild(arrow); sens = -1; if (itv == -1){ itv = setInterval(moveArrow, 20); }; Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, selectAngle); timeout = setTimeout(cancel, 5000); } public function anticipeCollision():void{ var truc:Point = BDD.ball.getPosAt(frameHit); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + (20 * BDD.scalePerso)))) && ((truc.x > (x - (18 * BDD.scalePerso)))))) && ((truc.y > -80)))){ collide = true; }; } private function clearItv(e:MouseEvent):void{ if (itv2 != -1){ clearInterval(itv2); }; itv2 = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); } private function setSpecial():void{ showSpecialWord(); BDD.MOTION_SPEED = 0; BDD.ball.stop(); BDD.ball.hide(); BDD.soundFactory.playSound(BDD.tututu, 1); if ((((BDD.ball.direction.x < 10)) && ((BDD.ball.position.y > -50)))){ sprite.gotoAndStop("hit2"); } else { sprite.gotoAndStop("hit"); }; checkClickSpecial(); } private function moveArrow():void{ arrow.rotation = (arrow.rotation + (10 * sens)); if (arrow.rotation > 45){ sens = -1; }; if (arrow.rotation < -70){ sens = 1; }; } private function checkClickSpecial():void{ sprite.stop(); itv2 = setTimeout(clearItv2, 1000); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, validSpecial); } private function cancel():void{ selectAngle(null); } } }//package fr.seraf.rabbits
Section 48
//BearSpider (fr.seraf.rabbits.BearSpider) package fr.seraf.rabbits { import flash.events.*; import flash.geom.*; import caurina.transitions.*; import flash.utils.*; public class BearSpider extends Perso { private var sprite:Spider; private var frameHit:int;// = 1 private var itv:int;// = -1 private var frameTarget:int; private var collide:Boolean; public static const EFFECT:String = "Speed down"; public static const ON_HIT:String = "ON_HIT"; public function BearSpider(_x:Number){ super(_x, "spider"); scaleX = (scaleY = BDD.scalePerso); frameTarget = 0; collide = false; sprite = new Spider(); addChild(sprite); } private function clearItv(e:MouseEvent):void{ if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); } override public function dispose():void{ sprite.stop(); removeChild(sprite); sprite = null; } override public function move(_x:Number):void{ super.move(_x); if (!collide){ anticipeCollision(); }; if (collide){ frameTarget++; if (frameTarget == frameHit){ checkSpecial(); }; }; } private function clearItv2():void{ showSpecialWordUnvalid(); if (itv != -1){ clearInterval(itv); }; itv = -1; Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, validSpecial); BDD.MOTION_SPEED = 1; BDD.ball.play(); if (sprite != null){ BDD.ball.direction.scale(0.5); }; BDD.soundFactory.playSound(BDD.fail, 1); Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); } public function anticipeCollision():void{ var truc:Point = BDD.ball.getPosAt(frameHit); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 15))) && ((truc.x > (x - 30))))) && ((truc.y > -40)))){ collide = true; }; } private function setSpecial():void{ showSpecialWord(); BDD.MOTION_SPEED = 0; BDD.ball.stop(); checkClickSpecial(); } private function checkSpecial():void{ var truc:Point = BDD.ball.getPosAt(1); truc.x = (truc.x + BDD.ball.x); if ((((((truc.x < (x + 25))) && ((truc.x > (x - 40))))) && ((truc.y > -50)))){ if (BDD.superIndication.isActiv(type)){ setSpecial(); } else { if (sprite != null){ BDD.ball.direction.scale(0.5); }; }; } else { frameTarget = 0; if (sprite != null){ sprite.gotoAndStop(1); }; collide = false; }; } private function checkClickSpecial():void{ Tweener.addTween(BDD.gameBackground, {x:((BDD.STAGE_WIDTH / 3) * 2), time:1, transition:"easeOutQuart"}); sprite.stop(); BDD.soundFactory.playSound(BDD.tututu, 1); itv = setTimeout(clearItv2, 1000); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, validSpecial); } private function validSpecial(e:MouseEvent):void{ showSpecialWordValid(); clearItv(null); sprite.addFrameScript(45, specialKick); setTimeout(BDD.soundFactory.playSound, 400, BDD.boum, 1); setTimeout(BDD.soundFactory.playSound, 600, BDD.klakson2, 1); sprite.gotoAndPlay("special"); BDD.soundFactory.playSound(BDD.valid, 1); } private function specialKick():void{ var tempSpeed:Number = (BDD.ball.speed + 40); var v:Vector2D = new Vector2D(); v.angleToVector(-35); v.normalize(); v.multEquals(tempSpeed); BDD.ball.direction = new Vector2D(); BDD.ball.addImpulse(v.x, v.y, "droit"); BDD.MOTION_SPEED = 1; BDD.ball.play(); BDD.gameBackground.addBatman(this); Tweener.addTween(BDD.gameBackground, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); } } }//package fr.seraf.rabbits
Section 49
//BitmapCache (fr.seraf.rabbits.BitmapCache) package fr.seraf.rabbits { import flash.display.*; import flash.geom.*; public class BitmapCache extends Bitmap { public function BitmapCache(source:DisplayObject, lise:Boolean=false, rect:Rectangle=null){ if (rect != null){ bitmapData = new BitmapData(rect.width, rect.height, true, 0); bitmapData.draw(source, new Matrix(), new ColorTransform(), null, rect); } else { bitmapData = new BitmapData(source.width, source.height, true, 0); bitmapData.draw(source); }; super(bitmapData, "auto", lise); } } }//package fr.seraf.rabbits
Section 50
//BtnText (fr.seraf.rabbits.BtnText) package fr.seraf.rabbits { import flash.display.*; import flash.text.*; public class BtnText extends Sprite { private var titleText:TextField; public function BtnText(label:String, size:int){ super(); var format:TextFormat = new TextFormat(); format.font = BDD.font.fontName; var normal:Object = new Object(); normal.fontFamily = BDD.font.fontName; normal.color = "#FFFFFF"; normal.letterSpacing = 0; normal.fontSize = size; var style:StyleSheet = new StyleSheet(); style.setStyle("body", normal); titleText = new TextField(); titleText.embedFonts = true; titleText.defaultTextFormat = format; titleText.styleSheet = style; titleText.autoSize = "left"; titleText.selectable = false; titleText.text = (("<body>" + label) + "</body>"); addChild(titleText); graphics.beginFill(0xFFFFFF, 0); graphics.drawRect(0, 0, width, height); graphics.endFill(); buttonMode = true; mouseEnabled = true; mouseChildren = false; } public function changeLabel(arg0:String):void{ titleText.text = (("<body>" + arg0) + "</body>"); } } }//package fr.seraf.rabbits
Section 51
//GameBackground (fr.seraf.rabbits.GameBackground) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; import de.polygonal.ds.*; import caurina.transitions.*; import flash.utils.*; public class GameBackground extends Sprite implements IDestroyable { public var fumeArray2:DLinkedList; private var nbrBosquet:int;// = 10 private var layerZoomPlan:Sprite; private var _destructNode:DListNode; private var fondArray3:Array; private var nbrHalo:int;// = 1 private var nbrPerso:int;// = 6 private var nbrFond:int;// = 3 private var fondArrayArbre2nd:Array; private var fondArray2:Array; public var persoArray:DLinkedList; private var probaPinup:Number; private var batman:BearBatman; private var nbrArbre:int;// = 5 public var layerFirstPlan:Sprite; private var itv:uint; private var currentPersoSpace:Number; private var probaSpider:Number; private var probaLara:Number; public var layerBallPlan:Sprite; private var probaBig:Number; private var arrayLayer4:Array; private var arrayLayer3:Array; private var probaLuffy:Number; public var gameBoardY:Number; private var sumProba:Number; private var nbrArbre2:int;// = 7 private var probaKakashi:Number; private var fondArray:Array; private var layerBackground:Sprite; private var probaOld:Number; public var konata:BearKonata; private var layerSecondPlan:Sprite; public var fumeArray:DLinkedList; private var nbrHerbe:int;// = 4 private var scaleTarget:Number; public static const ON_MOVE:String = "ON_MOVE"; public static const ON_NEW_TILE_POSED:String = "ON_NEW_TILE_POSED"; public function GameBackground(){ var _fond:TileBackground01; var _frise:TileFriseHaut; var _sol:TileSol; var _fond2:TileTree; var herbeT:HerbeTeinte; var _fond4:TileTree2nd; var _fondb:TileHalo; var herbe:TileHerbe; var _fonda:TileHalo; var _fond3:TileBosquet; fumeArray = new DLinkedList(); fumeArray2 = new DLinkedList(); super(); itv = setInterval(fumeProcess, 35); BDD.gameBackground = this; resetProba(); layerBackground = new Sprite(); addChild(layerBackground); layerSecondPlan = new Sprite(); addChild(layerSecondPlan); layerFirstPlan = new Sprite(); addChild(layerFirstPlan); layerBallPlan = new Sprite(); addChild(layerBallPlan); layerZoomPlan = new Sprite(); addChild(layerZoomPlan); fondArray = new Array(); fondArrayArbre2nd = new Array(); var i:int; while (i < nbrFond) { _fond = new TileBackground01(i, nbrFond); fondArray.push(_fond); layerBackground.addChild(_fond); i++; }; fondArray2 = new Array(); i = 0; while (i < nbrFond) { _sol = new TileSol(i, nbrFond); _sol.y = 50; fondArrayArbre2nd.push(_sol); layerSecondPlan.addChild(_sol); i++; }; i = 0; while (i < nbrFond) { _sol = new TileSol(i, nbrFond); _sol.y = 110; fondArray2.push(_sol); layerFirstPlan.addChild(_sol); i++; }; i = 0; while (i < nbrHerbe) { herbeT = new HerbeTeinte(i, nbrHerbe); herbeT.y = (-30 + (Math.random() * 10)); fondArrayArbre2nd.push(herbeT); layerSecondPlan.addChild(herbeT); i++; }; i = 0; while (i < nbrArbre2) { _fond4 = new TileTree2nd(i, nbrArbre2); _fond4.y = (-20 + (Math.random() * 10)); fondArrayArbre2nd.push(_fond4); layerSecondPlan.addChild(_fond4); i++; }; arrayLayer3 = new Array(); i = 0; while (i < nbrHerbe) { herbeT = new HerbeTeinte(i, nbrHerbe); herbeT.y = (-13 + (Math.random() * 10)); arrayLayer3.push(herbeT); layerSecondPlan.addChild(herbeT); i++; }; i = 0; while (i < nbrHalo) { _fondb = new TileHalo(i, nbrHalo, 0.7); arrayLayer3.push(_fondb); layerSecondPlan.addChild(_fondb); i++; }; i = 0; while (i < nbrFond) { _frise = new TileFriseHaut(i, nbrFond); _frise.y = -300; fondArray2.push(_frise); layerFirstPlan.addChild(_frise); i++; }; arrayLayer4 = new Array(); i = 0; while (i < nbrHerbe) { herbe = new TileHerbe(i, nbrHerbe); herbe.y = (-16 + (Math.random() * 10)); arrayLayer4.push(herbe); layerFirstPlan.addChild(herbe); i++; }; i = 0; while (i < nbrArbre) { _fond2 = new TileTree(i, nbrArbre); _fond2.y = (Math.random() * 15); fondArray2.push(_fond2); layerFirstPlan.addChild(_fond2); i++; }; i = 0; while (i < nbrHerbe) { herbe = new TileHerbe(i, nbrHerbe); herbe.y = (5 + (Math.random() * 10)); fondArray2.push(herbe); layerFirstPlan.addChild(herbe); i++; }; i = 0; while (i < nbrHalo) { _fonda = new TileHalo(i, nbrHalo); fondArray2.push(_fonda); layerFirstPlan.addChild(_fonda); i++; }; persoArray = new DLinkedList(); fondArray3 = new Array(); i = 0; while (i < nbrBosquet) { _fond3 = new TileBosquet(i, nbrBosquet); _fond3.y = (110 + (Math.random() * 20)); fondArray3.push(_fond3); layerZoomPlan.addChild(_fond3); i++; }; } private function getPerso(e:OutScreenEvent):Perso{ var pos:Number = 0; var posN:Number = 0; var n:Number = Math.random(); posN = (pos + (probaLara / sumProba)); if ((((n > pos)) && ((n < posN)))){ return (new BearLara((persoArray.tail.data.x + currentPersoSpace))); }; pos = Number(posN); posN = (pos + (probaLuffy / sumProba)); if ((((n > pos)) && ((n < posN)))){ return (new BearLuffy((persoArray.tail.data.x + currentPersoSpace))); }; pos = Number(posN); posN = (pos + (probaKakashi / sumProba)); if ((((n > pos)) && ((n < posN)))){ return (new BearKakashi((persoArray.tail.data.x + currentPersoSpace))); }; pos = Number(posN); posN = (pos + (probaSpider / sumProba)); if ((((n > pos)) && ((n < posN)))){ return (new BearSpider((persoArray.tail.data.x + currentPersoSpace))); }; pos = Number(posN); posN = (pos + (probaOld / sumProba)); if ((((n > pos)) && ((n < posN)))){ return (new BearOld((persoArray.tail.data.x + currentPersoSpace))); }; pos = Number(posN); posN = (pos + (probaPinup / sumProba)); if ((((n > pos)) && ((n < posN)))){ return (new BearPinup((persoArray.tail.data.x + currentPersoSpace))); }; return (new BearSelectAngle((persoArray.tail.data.x + currentPersoSpace))); } private function deleteSmoke(event:Event):void{ var node:Smoke2 = fumeArray.removeHead(); layerBallPlan.removeChild(node); } public function addBatman(bear:BearSpider):void{ if (batman != null){ deleteBatman(null); }; batman = new BearBatman(bear); batman.addEventListener(Perso.ON_OUT_OF_VIEW, deleteBatman); layerBallPlan.addChild(batman); } public function restart():void{ var smoke:Smoke2; var smoke2:Smoke3; var perso:Perso; var _perso:BearSelectAngle; if (konata != null){ deleteKonata(null); }; if (batman != null){ deleteBatman(null); }; while (fumeArray.head) { smoke = fumeArray.removeHead(); smoke.addEventListener(Smoke2.ON_SMOKE_END, deleteSmoke); layerBallPlan.removeChild(smoke); smoke = null; }; while (fumeArray2.head) { smoke2 = fumeArray2.removeHead(); smoke2.addEventListener(Smoke3.ON_SMOKE_END, deleteSmoke2); layerBallPlan.removeChild(smoke2); smoke2 = null; }; resetProba(); while (persoArray.head) { perso = (persoArray.head.data as Perso); persoArray.removeHead(); perso.removeEventListener(Perso.ON_OUT_OF_VIEW, setPerso); layerFirstPlan.removeChild(perso); perso.dispose(); perso = null; }; currentPersoSpace = 200; var i:int; while (i < nbrPerso) { _perso = new BearSelectAngle((600 + (i * currentPersoSpace))); _perso.addEventListener(BearSelectAngle.CHOOSE_ANGLE, activAngleSelect); _perso.addEventListener(Perso.ON_OUT_OF_VIEW, setPerso); _perso.y = 40; persoArray.append(_perso); layerFirstPlan.addChild(_perso); i++; }; } public function resetProba():void{ probaLara = 2000; probaBig = 1000; probaOld = 2000; probaLuffy = 2000; probaKakashi = 2000; probaSpider = 1500; probaPinup = 800; } private function deleteSmoke2(event:Event):void{ var node:Smoke3 = fumeArray2.removeHead(); layerBallPlan.removeChild(node); } private function deleteBatman(event:Event):void{ batman.removeEventListener(Perso.ON_OUT_OF_VIEW, deleteBatman); layerBallPlan.removeChild(batman); batman.dispose(); batman = null; } public function dispose():void{ var perso:Perso; while (persoArray.head) { perso = (persoArray.head.data as Perso); persoArray.removeHead(); perso.removeEventListener(Perso.ON_OUT_OF_VIEW, setPerso); layerFirstPlan.removeChild(perso); perso.dispose(); perso = null; }; var l:int = fondArray.length; while (l--) { layerBackground.removeChild(fondArray[l]); fondArray[l].dispose(); delete fondArray[l]; }; l = fondArrayArbre2nd.length; while (l--) { layerSecondPlan.removeChild(fondArrayArbre2nd[l]); fondArrayArbre2nd[l].dispose(); delete fondArrayArbre2nd[l]; }; l = fondArray2.length; while (l--) { layerFirstPlan.removeChild(fondArray2[l]); fondArray2[l].dispose(); delete fondArray2[l]; }; l = int(nbrBosquet); while (l--) { layerZoomPlan.removeChild(fondArray3[l]); fondArray3[l].dispose(); delete fondArray3[l]; }; } public function fumeProcess():void{ var node:DListNode = fumeArray.head; while (node) { (node.data as Smoke2).move2(); node = node.next; }; node = fumeArray2.head; while (node) { (node.data as Smoke3).move2(); node = node.next; }; } public function addFume2(event:Event):void{ var fume:Smoke3 = new Smoke3(); fume.addEventListener(Smoke3.ON_SMOKE_END, deleteSmoke2); fumeArray2.append(fume); layerBallPlan.addChild(fume); } public function setDestructNode(node:DListNode):void{ _destructNode = node; } public function scale(arg0:Number):void{ scaleTarget = arg0; layerFirstPlan.scaleX = (layerFirstPlan.scaleY = scaleTarget); layerSecondPlan.scaleX = (layerSecondPlan.scaleY = (1 + ((layerFirstPlan.scaleX - 1) / 1.5))); layerBackground.scaleX = (layerBackground.scaleY = (1 + ((layerFirstPlan.scaleX - 1) / 2))); layerZoomPlan.scaleX = (layerZoomPlan.scaleY = layerFirstPlan.scaleX); gameBoardY = (-50 * (scaleTarget - 1)); } private function deleteKonata(event:Event):void{ Tweener.addTween(this, {x:(BDD.STAGE_WIDTH / 4), time:0.5, transition:"easeOutQuart"}); konata.removeEventListener(Perso.ON_OUT_OF_VIEW, deleteKonata); konata.removeEventListener(BearKonata.ON_KICK, BDD.ball.continueAerial); layerBallPlan.removeChild(konata); konata.dispose(); konata = null; } public function addAerial1(e:AerialEvent):void{ if (konata != null){ deleteKonata(null); }; Tweener.addTween(this, {x:(BDD.STAGE_WIDTH / 2), time:0.4, transition:"easeOutQuart"}); konata = new BearKonata(0, BDD.ball.position.y, e.sens); konata.y = 45; konata.addEventListener(Perso.ON_OUT_OF_VIEW, deleteKonata); konata.addEventListener(BearKonata.ON_KICK, BDD.ball.continueAerial); layerBallPlan.addChild(konata); } public function addFume(event:Event):void{ var fume:Smoke2 = new Smoke2(); fume.addEventListener(Smoke.ON_SMOKE_END, deleteSmoke); fumeArray.append(fume); layerBallPlan.addChild(fume); } private function activAngleSelect(e:Event):void{ } public function move(_x:Number):void{ var node:DListNode = persoArray.head; while (node) { (node.data as Perso).move(_x); node = node.next; }; node = fumeArray.head; while (node) { (node.data as Smoke2).move(_x); node = node.next; }; node = fumeArray2.head; while (node) { (node.data as Smoke3).move(_x); node = node.next; }; var l:int = int(nbrFond); while (l--) { fondArray[l].move((_x * 0.2)); }; l = fondArrayArbre2nd.length; while (l--) { fondArrayArbre2nd[l].move((_x * 0.5)); }; l = arrayLayer3.length; while (l--) { arrayLayer3[l].move((_x * 0.7)); }; l = nbrHerbe; while (l--) { arrayLayer4[l].move((_x * 0.82)); }; l = fondArray2.length; while (l--) { fondArray2[l].move(_x); }; l = int(nbrBosquet); while (l--) { fondArray3[l].move((_x * 1.5)); }; scaleTarget = (1 + ((300 + Math.max(BDD.ball.position.y, -300)) / 300)); layerFirstPlan.scaleX = (layerFirstPlan.scaleY = (layerFirstPlan.scaleX + ((scaleTarget - layerFirstPlan.scaleX) * 0.1))); layerBallPlan.scaleX = (layerBallPlan.scaleY = layerFirstPlan.scaleX); layerSecondPlan.scaleX = (layerSecondPlan.scaleY = (1 + ((layerFirstPlan.scaleX - 1) / 1.5))); layerBackground.scaleX = (layerBackground.scaleY = (1 + ((layerFirstPlan.scaleX - 1) / 2))); layerZoomPlan.scaleX = (layerZoomPlan.scaleY = layerFirstPlan.scaleX); gameBoardY = (-50 * (scaleTarget - 1)); dispatchEvent(new Event(ON_MOVE)); if (batman != null){ batman.move(_x); }; if (konata != null){ konata.move(_x); }; } public function setPerso(e:OutScreenEvent):void{ probaPinup++; sumProba = ((((((probaLara + probaBig) + probaOld) + probaLuffy) + probaKakashi) + probaSpider) + probaPinup); currentPersoSpace = (currentPersoSpace + 0.06); var perso:Perso = (persoArray.head.data as Perso); perso.removeEventListener(Perso.ON_OUT_OF_VIEW, setPerso); persoArray.removeHead(); layerFirstPlan.removeChild(perso); perso.dispose(); perso = null; var _perso:Perso = getPerso(e); _perso.addEventListener(Perso.ON_OUT_OF_VIEW, setPerso); _perso.y = 40; persoArray.append(_perso); layerFirstPlan.addChild(_perso); } } }//package fr.seraf.rabbits
Section 52
//GameBoard (fr.seraf.rabbits.GameBoard) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; import caurina.transitions.*; public class GameBoard extends Sprite implements IDisposable { private var startLauncher:StartLauncher; private var backGround:GameBackground; private var paused:Boolean;// = false private var ball:Ball; public static const ON_GAME_FINISHED:String = "ON_GAME_FINISHED"; public function GameBoard(){ super(); BDD.gameBoard = this; backGround = new GameBackground(); backGround.x = (BDD.STAGE_WIDTH / 2); backGround.y = (BDD.STAGE_HEIGHT - 100); backGround.addEventListener(GameBackground.ON_NEW_TILE_POSED, addPersoEffect); backGround.addEventListener(GameBackground.ON_MOVE, replace); addChild(backGround); backGround.addEventListener(StartLauncher.ON_BALL_LAUNCHED, setBall); backGround.restart(); startLauncher = new StartLauncher(); startLauncher.addEventListener(StartLauncher.ON_SHOOT, firstShoot); startLauncher.addEventListener(StartLauncher.ON_OUT, deleteStartLauncher); startLauncher.y = 45; backGround.layerFirstPlan.addChild(startLauncher); backGround.scale(2); y = backGround.gameBoardY; } private function setBall(event:ShootEvent):void{ BDD.MOTION_SPEED = 1; ball = new Ball(); BDD.ball = ball; ball.y = 43; ball.addEventListener(Ball.ON_MOVE, move); ball.addEventListener(Ball.ON_END, endGame); ball.addEventListener(Ball.ON_AERIAL1, backGround.addAerial1); ball.addEventListener(Ball.ON_GLISSE, backGround.addFume); ball.addEventListener(Ball.ON_FLY, backGround.addFume2); ball.addImpulse((10 + (28 * event.puissance)), (-2 - (12 * event.puissance))); backGround.layerBallPlan.addChild(ball); Tweener.addTween(backGround, {x:(BDD.STAGE_WIDTH / 4), time:2, transition:"easeOutQuart"}); } public function dispose():void{ if (startLauncher != null){ startLauncher.removeEventListener(StartLauncher.ON_OUT, deleteStartLauncher); startLauncher.removeEventListener(StartLauncher.ON_BALL_LAUNCHED, setBall); backGround.layerFirstPlan.removeChild(startLauncher); startLauncher.dispose(); startLauncher = null; }; backGround.removeEventListener(GameBackground.ON_NEW_TILE_POSED, addPersoEffect); removeChild(backGround); backGround.dispose(); if (ball != null){ ball.stop(); ball.hide(); ball.removeEventListener(Ball.ON_FLY, backGround.addFume2); ball.removeEventListener(Ball.ON_GLISSE, backGround.addFume); ball.removeEventListener(Ball.ON_MOVE, move); ball.removeEventListener(Ball.ON_END, endGame); ball.removeEventListener(Ball.ON_AERIAL1, backGround.addAerial1); backGround.layerBallPlan.removeChild(ball); ball = null; BDD.ball = null; }; } public function retry():void{ Tweener.addTween(backGround, {x:(BDD.STAGE_WIDTH / 2), time:1, transition:"easeOutQuart"}); if (startLauncher != null){ deleteStartLauncher(null); }; startLauncher = new StartLauncher(); startLauncher.addEventListener(StartLauncher.ON_SHOOT, firstShoot); startLauncher.addEventListener(StartLauncher.ON_OUT, deleteStartLauncher); startLauncher.y = 45; backGround.layerFirstPlan.addChild(startLauncher); backGround.scale(2); y = backGround.gameBoardY; backGround.restart(); if (ball != null){ ball.stop(); ball.hide(); ball.removeEventListener(Ball.ON_GLISSE, backGround.addFume); ball.removeEventListener(Ball.ON_FLY, backGround.addFume2); ball.removeEventListener(Ball.ON_MOVE, move); ball.removeEventListener(Ball.ON_END, endGame); ball.removeEventListener(Ball.ON_AERIAL1, backGround.addAerial1); backGround.layerBallPlan.removeChild(ball); ball = null; BDD.ball = null; }; BDD.gameInterface.update(); BDD.aerial.count = 3; } private function addPersoEffect(event:Event):void{ } private function endGame(e:Event):void{ dispatchEvent(new Event(ON_GAME_FINISHED)); } private function firstShoot(e:ShootEvent):void{ setBall(e); } private function move(e:MoveEvent):void{ BDD.gameInterface.update(); backGround.move(e.x); if (startLauncher != null){ startLauncher.move(e.x); }; } private function replace(e:Event):void{ y = backGround.gameBoardY; } public function pause():void{ paused = !(paused); BDD.MOTION_SPEED = (paused) ? 0 : 1; } private function deleteStartLauncher(e:Event):void{ startLauncher.removeEventListener(StartLauncher.ON_BALL_LAUNCHED, setBall); startLauncher.removeEventListener(StartLauncher.ON_OUT, deleteStartLauncher); backGround.layerFirstPlan.removeChild(startLauncher); startLauncher.dispose(); startLauncher = null; } } }//package fr.seraf.rabbits
Section 53
//GameInterface (fr.seraf.rabbits.GameInterface) package fr.seraf.rabbits { import flash.events.*; import com.kongregate.as3.client.*; import flash.display.*; import mochi.as3.*; import flash.utils.*; public class GameInterface extends Sprite implements IDisposable { private var aerialIndication:AerialIndication; private var meterIndication:MeterIndication; private var waitMC:WaitSprite; private var playAgain:PlayAgain; private var scoreContainer:Sprite; private var superMC:SuperMC; private var saveScore:SaveScore; private var leaderClosed:Boolean;// = true private var clickMC:ClickToStart; private var menu:MenuBox; private var heightIndication:HeightIndication; private var proxyIndication:ProxyIndication; private var superIndication:SuperIndication; public function GameInterface(){ super(); graphics.lineStyle(1, 0); graphics.drawRect(0, 0, BDD.STAGE_WIDTH, BDD.STAGE_HEIGHT); graphics.endFill(); menu = new MenuBox(); menu.addEventListener(MenuBox.ON_RETRY, hideScore); menu.x = 5; menu.y = 5; addChild(menu); meterIndication = new MeterIndication(); meterIndication.y = 370; addChild(meterIndication); superIndication = new SuperIndication(); superIndication.x = 450; superIndication.y = 10; addChild(superIndication); proxyIndication = new ProxyIndication(); proxyIndication.x = 450; proxyIndication.y = 130; addChild(proxyIndication); heightIndication = new HeightIndication(); heightIndication.x = 250; heightIndication.y = 80; addChild(heightIndication); aerialIndication = new AerialIndication(); aerialIndication.x = 450; aerialIndication.y = 70; addChild(aerialIndication); superMC = new SuperMC(); superMC.visible = false; superMC.x = 210; superMC.y = 130; addChild(superMC); waitMC = new WaitSprite(); waitMC.visible = false; waitMC.x = 210; waitMC.y = 180; clickMC = new ClickToStart(); clickMC.visible = false; clickMC.x = 210; clickMC.y = 130; addChild(clickMC); playAgain = new PlayAgain(); playAgain.mouseEnabled = true; playAgain.mouseChildren = true; playAgain.buttonMode = true; playAgain.addEventListener(MouseEvent.CLICK, retry); playAgain.visible = false; playAgain.x = 110; playAgain.y = 180; saveScore = new SaveScore(); saveScore.buttonMode = true; saveScore.addEventListener(MouseEvent.CLICK, showScoreTemplate); saveScore.visible = false; saveScore.x = 310; saveScore.y = 180; scoreContainer = new Sprite(); scoreContainer.visible = false; scoreContainer.graphics.beginFill(0, 0.3); scoreContainer.graphics.drawRect(0, 0, BDD.STAGE_WIDTH, BDD.STAGE_HEIGHT); scoreContainer.graphics.endFill(); addChild(scoreContainer); addChild(playAgain); addChild(saveScore); addChild(waitMC); } public function showSpecial():void{ superMC.visible = true; superMC.gotoAndStop(1); } public function showBtn():void{ waitMC.visible = false; saveScore.visible = true; playAgain.visible = true; } public function update():void{ meterIndication.update(); proxyIndication.update(); heightIndication.update(); aerialIndication.update(); } public function cancelSpecial():void{ superMC.visible = true; superMC.gotoAndStop(3); setTimeout(clearSuper, 500); } public function showClick():void{ clickMC.visible = true; } public function validSpecial():void{ superMC.visible = true; superMC.gotoAndStop(2); setTimeout(clearSuper, 500); } public function showScore():void{ setTimeout(showBtn, 1500); waitMC.visible = true; scoreContainer.visible = true; Main.getInstance().score.visible = false; Main.getInstance().clickLayer.visible = false; } public function dispose():void{ removeChild(menu); menu.dispose(); menu = null; graphics.clear(); } public function closeLeaderBoard():void{ waitMC.visible = false; leaderClosed = true; scoreContainer.visible = false; menu.openBox(null); Main.getInstance().score.visible = false; retry(null); } public function retry(e:Event):void{ Main.getInstance().clickLayer.visible = true; Main.getInstance().score.visible = false; saveScore.visible = false; playAgain.visible = false; menu.retry(null); } public function showScoreTemplate(e:Event):void{ var kongregate:KongregateAPI; var o:Object; var boardID:String; var e = e; saveScore.visible = false; playAgain.visible = false; scoreContainer.visible = true; Main.getInstance().score.visible = true; Main.getInstance().clickLayer.visible = false; if (BDD.kongregateEnabled){ kongregate = KongregateAPI.getInstance(); kongregate.scores.submit(BDD.ball.meter); kongregate.stats.submit("HighScore", BDD.ball.meter); waitMC.visible = false; leaderClosed = true; scoreContainer.visible = false; menu.openBox(null); Main.getInstance().score.visible = false; retry(null); } else { if (BDD.advertOn){ if (!leaderClosed){ MochiScores.closeLeaderboard(); leaderClosed = true; }; waitMC.visible = true; stage.displayState = StageDisplayState.NORMAL; MochiServices.connect("f76ec4122eb7a070", Main.getInstance().score, onConnectError); o = {n:[14, 12, 7, 6, 3, 0, 9, 5, 5, 5, 7, 5, 11, 2, 5, 1], f:function (i:Number, s:String):String{ if (s.length == 16){ return (s); }; return (this.f((i + 1), (s + this.n[i].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:BDD.ball.meter, onDisplay:showAgain, onClose:closeLeaderBoard}); leaderClosed = false; }; }; } public function hideScore(e:Event):void{ playAgain.visible = false; scoreContainer.visible = false; Main.getInstance().score.visible = false; } public function showAgain():void{ } public function setGame():void{ menu.resetQuality(); } private function clearSuper():void{ superMC.visible = false; } public function clearClick():void{ clickMC.visible = false; } public function onConnectError(status:String):void{ } } }//package fr.seraf.rabbits
Section 54
//HeightIndication (fr.seraf.rabbits.HeightIndication) package fr.seraf.rabbits { import flash.display.*; import flash.geom.*; import flash.text.*; public class HeightIndication extends Sprite { private var branche:Array; private var titleText:TextField; private var arrow:ArrowHeight; private var style:StyleSheet; private var indication1:ProxyItem; private var indication2:ProxyItem; private var format:TextFormat; private var indication4:ProxyItem; private var indication3:ProxyItem; public function HeightIndication(){ super(); visible = false; format = new TextFormat(); format.font = BDD.font.fontName; var normal:Object = new Object(); normal.fontFamily = BDD.font.fontName; normal.color = "#FFFF00"; normal.letterSpacing = 0; normal.fontSize = 20; style = new StyleSheet(); style.setStyle("body", normal); titleText = new TextField(); titleText.x = 30; titleText.y = -10; titleText.embedFonts = true; titleText.defaultTextFormat = format; titleText.styleSheet = style; titleText.autoSize = "left"; titleText.selectable = false; titleText.text = "<body>proxy</body>"; addChild(titleText); arrow = new ArrowHeight(); addChild(arrow); } public function update():void{ var pts:Point; if (BDD.ball != null){ if (BDD.ball.isHigh()){ pts = BDD.gameBackground.layerBallPlan.localToGlobal(new Point(0, BDD.ball.position.y)); pts = BDD.gameBackground.localToGlobal(pts); arrow.rotation = (-(((Math.atan2(((pts.y - y) - 100), (pts.x - x)) * 180) / Math.PI)) + 180); titleText.text = (("<body>" + -(BDD.ball.hauteur)) + "m</body>"); visible = true; } else { visible = false; }; } else { visible = false; }; } } }//package fr.seraf.rabbits
Section 55
//HerbeTeinte (fr.seraf.rabbits.HerbeTeinte) package fr.seraf.rabbits { import flash.display.*; public class HerbeTeinte extends Sprite implements IDisposable { private var lastTree:Sprite; private var total:int; private var _width:Number;// = 250 private var id:int; public function HerbeTeinte(id:int, total:int){ var bitmap:Herbe03Teinte; var bitmap2:Herbe01Teinte; var bitmap3:Herbe03Teinte; super(); this.total = total; this.id = id; x = ((id * _width) - 200); bitmap = new Herbe03Teinte(); bitmap.scaleX = (bitmap.scaleY = (0.6 + (Math.random() * 0.2))); bitmap.x = (-(bitmap.width) / 2); bitmap.y = -(bitmap.height); addChild(bitmap); bitmap2 = new Herbe01Teinte(); bitmap2.scaleX = (bitmap2.scaleY = (0.6 + (Math.random() * 0.2))); bitmap2.x = ((-(bitmap2.width) / 2) + 40); bitmap2.y = -(bitmap2.height); addChild(bitmap2); bitmap3 = new Herbe03Teinte(); bitmap3.scaleX = (bitmap2.scaleY = (0.6 + (Math.random() * 0.2))); bitmap3.x = ((-(bitmap3.width) / 2) + 80); bitmap3.y = -(bitmap3.height); addChild(bitmap3); var bitmap4:Herbe01Teinte = new Herbe01Teinte(); bitmap4.scaleX = (bitmap4.scaleY = (0.6 + (Math.random() * 0.2))); bitmap4.x = ((-(bitmap4.width) / 2) + 120); bitmap4.y = -(bitmap4.height); addChild(bitmap4); var bitmap5:Herbe03Teinte = new Herbe03Teinte(); bitmap5.scaleX = (bitmap5.scaleY = (0.6 + (Math.random() * 0.2))); bitmap5.x = ((-(bitmap5.width) / 2) + 160); bitmap5.y = -(bitmap5.height); addChild(bitmap5); } public function move(_x:Number):void{ x = (x - _x); if (x < (-(_width) - 200)){ x = ((total * _width) + x); }; } public function dispose():void{ removeChild(lastTree); } } }//package fr.seraf.rabbits
Section 56
//IDestroyable (fr.seraf.rabbits.IDestroyable) package fr.seraf.rabbits { import de.polygonal.ds.*; public interface IDestroyable extends IScrollable, IDisposable { function setDestructNode(:DListNode):void; } }//package fr.seraf.rabbits
Section 57
//IDisposable (fr.seraf.rabbits.IDisposable) package fr.seraf.rabbits { public interface IDisposable { function dispose():void; } }//package fr.seraf.rabbits
Section 58
//ImageMenuSpec (fr.seraf.rabbits.ImageMenuSpec) package fr.seraf.rabbits { import caurina.transitions.*; public class ImageMenuSpec extends ImageMenu { private var initWidth:int;// = 1337 private var initHeight:int;// = 852 public function ImageMenuSpec(){ super(); } public function setCredits():void{ Tweener.addTween(this, {x:-300, y:-300, scaleX:2, scaleY:2, time:0.5, transition:"easeOutQuart"}); } public function setMain():void{ Tweener.addTween(this, {x:0, y:0, scaleX:(400 / initHeight), scaleY:(400 / initHeight), time:0.5, transition:"easeOutQuart"}); } public function setInstructions():void{ Tweener.addTween(this, {x:-280, y:0, scaleX:0.8, scaleY:0.8, time:0.5, transition:"easeOutQuart"}); } } }//package fr.seraf.rabbits
Section 59
//IScrollable (fr.seraf.rabbits.IScrollable) package fr.seraf.rabbits { public interface IScrollable { function move(:Number):void; } }//package fr.seraf.rabbits
Section 60
//KonataTeteIncre (fr.seraf.rabbits.KonataTeteIncre) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; public class KonataTeteIncre extends Sprite { private var konataMask:KonataMask; private var konataFond:KonataTete2; private var perc:Number;// = 0 public static const ON_FULL:String = "ON_FULL"; public function KonataTeteIncre(){ super(); konataFond = new KonataTete2(); konataFond.alpha = 0.3; addChild(konataFond); konataMask = new KonataMask(); addChild(konataMask); } public function incre():void{ perc = (perc + 0.5); if (perc > 99){ reset(); dispatchEvent(new Event(ON_FULL)); }; konataMask.gotoAndStop(int((perc + 1))); } public function reset():void{ konataMask.gotoAndStop(1); perc = 0; } } }//package fr.seraf.rabbits
Section 61
//Main (fr.seraf.rabbits.Main) package fr.seraf.rabbits { import flash.events.*; import com.kongregate.as3.client.*; import flash.display.*; import mochi.as3.*; import flash.utils.*; public class Main extends Sprite { public var score:ScoreContainer; private var cacheSp:Sprite; private var gameInterface:GameInterface; public var clickLayer:Sprite; private var gameSp:Sprite; public var game:GameBoard; private var pub:MovieClip; private var menu:MenuGame; private static var _instance:Main; public function Main(){ super(); BDD.kongregateEnabled = false; addEventListener(Event.ADDED_TO_STAGE, init); } public function initGame():void{ BDD.soundFactory = new SoundFactory(); BDD.soundFactory.setMenuMusic(); graphics.lineStyle(1, 0); graphics.beginFill(0xFFFFFF, 1); graphics.drawRect(0, 0, BDD.STAGE_WIDTH, BDD.STAGE_HEIGHT); graphics.endFill(); setNewGame(); gameInterface = new GameInterface(); BDD.gameInterface = gameInterface; gameSp.addChild(gameInterface); clickLayer = new Sprite(); clickLayer.graphics.beginFill(0, 0); clickLayer.graphics.drawRect(120, 0, (BDD.STAGE_WIDTH - 120), BDD.STAGE_HEIGHT); clickLayer.graphics.endFill(); gameSp.addChild(clickLayer); menu = new MenuGame(); gameSp.addChild(menu); } public function retry(e:Event):void{ game.retry(); } private function init(e:Event):void{ var kongregate:KongregateAPI; removeEventListener(Event.ADDED_TO_STAGE, init); _instance = this; BDD.stage = stage; stage.quality = StageQuality.MEDIUM; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.frameRate = 33; gameSp = new Sprite(); addChild(gameSp); pub = new MovieClip(); addChild(pub); cacheSp = new Sprite(); cacheSp.graphics.beginFill(0xFFFFFF, 1); cacheSp.graphics.drawRect(600, 0, 1000, 400); cacheSp.graphics.endFill(); cacheSp.graphics.beginFill(0xFFFFFF, 1); cacheSp.graphics.drawRect(0, 400, 1600, 1000); cacheSp.graphics.endFill(); addChild(cacheSp); score = new ScoreContainer(); score.visible = false; addChild(score); if (!BDD.kongregateEnabled){ MochiBot.track(this, "890b3147"); MochiAd.showPreGameAd({clip:pub, id:"f76ec4122eb7a070", res:"600x400"}); } else { kongregate = new KongregateAPI(); addChild(kongregate); }; setTimeout(initGame, 1000); } private function showEnd(event:Event):void{ gameInterface.showScore(); } private function setNewGame():void{ if (game != null){ game.removeEventListener(GameBoard.ON_GAME_FINISHED, showEnd); gameSp.removeChild(game); game.dispose(); game = null; }; game = new GameBoard(); game.addEventListener(GameBoard.ON_GAME_FINISHED, showEnd); gameSp.addChild(game); } public function pause(e:Event):void{ game.pause(); } public static function getInstance():Main{ return (_instance); } } }//package fr.seraf.rabbits
Section 62
//MenuBox (fr.seraf.rabbits.MenuBox) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class MenuBox extends Sprite implements IDisposable { private var btnOpener:BtnText; private var btnQuality:BtnText; private var btnFullScreenBitmap:BitmapCache; private var sound:Number; private var btnSound:BtnText; private var btnSoundBitmap:BitmapCache; private var btnAgainBitmap:BitmapCache; private var btnPauseBitmap:BitmapCache; private var btnQuit:BtnText; private var box:Sprite; private var btnQuitBitmapSp:Sprite; private var btnQuitBitmap:BitmapCache; private var btnFullScreen:BtnText; private var btnFullScreenBitmapSp:Sprite; private var btnAgain:BtnText; private var opened:Boolean;// = false private var btnAgainBitmapSp:Sprite; private var retryTry:Boolean;// = false private var opener:Sprite; private var quality:Number; public static const ON_RETRY:String = "ON_RETRY"; public function MenuBox(){ super(); opener = new Sprite(); addChild(opener); btnOpener = new BtnText("MENU", 22); opener.addChild(btnOpener); opener.addEventListener(MouseEvent.CLICK, openBox); box = new Sprite(); box.y = 30; box.visible = false; box.mouseEnabled = true; box.mouseChildren = true; addChild(box); btnAgain = new BtnText("AGAIN", 16); box.addChild(btnAgain); btnAgain.buttonMode = true; btnAgain.addEventListener(MouseEvent.CLICK, retry); btnSound = new BtnText("SOUND ON", 16); sound = 1; btnSound.buttonMode = true; btnSound.y = 25; box.addChild(btnSound); btnSound.addEventListener(MouseEvent.CLICK, selectSound); btnQuality = new BtnText("QUALITY MEDIUM", 16); quality = 1; btnQuality.buttonMode = true; btnQuality.y = 50; box.addChild(btnQuality); btnQuality.addEventListener(MouseEvent.CLICK, changeQuality); btnQuit = new BtnText("QUIT", 16); btnQuit.buttonMode = true; btnQuit.y = 75; box.addChild(btnQuit); btnQuit.addEventListener(MouseEvent.CLICK, setMain); } public function dispose():void{ opener.removeChild(btnOpener); removeChild(opener); opener = null; opener.removeChild(btnAgainBitmap); btnAgainBitmap.bitmapData.dispose(); btnAgainBitmap = null; opener.removeChild(btnPauseBitmap); btnPauseBitmap.bitmapData.dispose(); btnPauseBitmap = null; removeChild(box); box = null; } public function openBox(e:Event):void{ if (!opened){ opener.removeEventListener(MouseEvent.CLICK, openBox); opener.addEventListener(MouseEvent.CLICK, closeBox); opened = true; box.visible = true; }; } public function retry(event:MouseEvent):void{ if (!retryTry){ dispatchEvent(new Event(ON_RETRY)); Main.getInstance().retry(null); retryTry = true; setTimeout(resertRetry, 2000); }; } private function changeQuality(event:MouseEvent):void{ quality++; if (quality > 2){ quality = 0; }; resetQuality(); } private function resertRetry():void{ retryTry = false; } private function closeBox(e:Event):void{ if (opened){ opener.addEventListener(MouseEvent.CLICK, openBox); opener.removeEventListener(MouseEvent.CLICK, closeBox); opened = false; box.visible = false; }; } public function resetQuality():void{ if (quality == 0){ btnQuality.changeLabel("QUALITY LOW"); stage.quality = StageQuality.LOW; }; if (quality == 1){ btnQuality.changeLabel("QUALITY MEDIUM"); stage.quality = StageQuality.MEDIUM; }; if (quality == 2){ btnQuality.changeLabel("QUALITY HIGH"); stage.quality = StageQuality.HIGH; }; } private function setMain(e:MouseEvent):void{ BDD.isPlaying = false; BDD.soundFactory.setMenuMusic(); dispatchEvent(new Event(ON_RETRY)); Main.getInstance().retry(null); BDD.menuGame.setMain(null); } private function setfullScreen(e:MouseEvent):void{ if (stage.displayState == StageDisplayState.NORMAL){ stage.fullScreenSourceRect = new Rectangle(0, 0, BDD.STAGE_WIDTH, BDD.STAGE_HEIGHT); stage.displayState = StageDisplayState.FULL_SCREEN; } else { stage.displayState = StageDisplayState.NORMAL; }; } private function selectSound(event:MouseEvent):void{ if (sound == 1){ BDD.volumeMusic = 0; BDD.soundFactory.updateVolume(); btnSound.changeLabel("SOUND OFF"); sound = 0; } else { BDD.volumeMusic = 1; BDD.soundFactory.updateVolume(); btnSound.changeLabel("SOUND ON"); sound = 1; }; } } }//package fr.seraf.rabbits
Section 63
//MenuGame (fr.seraf.rabbits.MenuGame) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; public class MenuGame extends Sprite { private var instructions:PageInstructions; private var backgroundMain:PageMain; private var credits:PageCredits; private var image:ImageMenuSpec; public function MenuGame(){ super(); BDD.menuGame = this; image = new ImageMenuSpec(); addChild(image); setMain(null); } private function closeCredits(e:Event):void{ removeChild(credits); credits = null; setMain(null); } private function setGame(e:Event):void{ BDD.gameInterface.setGame(); visible = false; } public function setMain(e:Event):void{ BDD.stage.quality = StageQuality.HIGH; closeMain(null); backgroundMain = new PageMain(); backgroundMain.addEventListener(PageMain.ON_PLAY, setGame); backgroundMain.addEventListener(PageMain.ON_INSTRUC, setInstructions); backgroundMain.addEventListener(PageMain.ON_CREDITS, setCredits); addChild(backgroundMain); visible = true; image.setMain(); } private function closeMain(e:Event):void{ if (backgroundMain != null){ removeChild(backgroundMain); backgroundMain = null; }; } private function setCredits(event:Event):void{ closeMain(null); credits = new PageCredits(); credits.addEventListener(PageCredits.ON_BACK, closeCredits); addChild(credits); image.setCredits(); } private function closeInstruction(e:Event):void{ removeChild(instructions); instructions = null; setMain(null); } private function setInstructions(event:Event):void{ closeMain(null); instructions = new PageInstructions(); instructions.addEventListener(PageInstructions.ON_BACK, closeInstruction); addChild(instructions); image.setInstructions(); } } }//package fr.seraf.rabbits
Section 64
//MeterIndication (fr.seraf.rabbits.MeterIndication) package fr.seraf.rabbits { import flash.display.*; import flash.text.*; public class MeterIndication extends Sprite { private var style:StyleSheet; private var titleText:TextField; private var format:TextFormat; public function MeterIndication(){ super(); var font:Police = new Police(); format = new TextFormat(); format.font = font.fontName; var jaune:Object = new Object(); jaune.fontFamily = font.fontName; jaune.fontWeight = "bold"; jaune.color = "#FFFF00"; jaune.letterSpacing = 0; jaune.fontSize = 20; var normal:Object = new Object(); normal.fontFamily = font.fontName; normal.color = "#FFFFFF"; normal.letterSpacing = 0; normal.fontSize = 20; style = new StyleSheet(); style.setStyle(".jaune", jaune); style.setStyle("body", normal); titleText = new TextField(); titleText.x = 0; titleText.y = 0; titleText.embedFonts = true; titleText.defaultTextFormat = format; titleText.styleSheet = style; titleText.autoSize = "left"; titleText.selectable = false; addChild(titleText); } public function update():void{ if (BDD.ball != null){ titleText.text = (("<body>record: <span class=\"jaune\">" + BDD.ball.meter) + "m</span></body>"); } else { titleText.text = "<body></body>"; }; } } }//package fr.seraf.rabbits
Section 65
//MoveEvent (fr.seraf.rabbits.MoveEvent) package fr.seraf.rabbits { import flash.events.*; public class MoveEvent extends Event { public var x:Number; public function MoveEvent(type:String, x:Number, bubbles:Boolean=false, cancelable:Boolean=false){ this.x = x; super(type, bubbles, cancelable); } } }//package fr.seraf.rabbits
Section 66
//OutScreenEvent (fr.seraf.rabbits.OutScreenEvent) package fr.seraf.rabbits { import flash.events.*; public class OutScreenEvent extends Event { public var pos:Number; public function OutScreenEvent(type:String, pos:Number, bubbles:Boolean=false, cancelable:Boolean=false){ this.pos = pos; super(type, bubbles, cancelable); } } }//package fr.seraf.rabbits
Section 67
//PageCredits (fr.seraf.rabbits.PageCredits) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; import flash.net.*; import flash.external.*; public class PageCredits extends Sprite { private var tpa:Bitmap; private var playBtn:BtnText; private var tpa2:Bitmap; private var background:BackgroundMain; private var sp2:Sprite; private var instructionsBtn:BtnText; private var sp:Sprite; public static const ON_BACK:String = "ON_BACK"; public function PageCredits(){ super(); playBtn = new BtnText("Back", 20); playBtn.y = 20; playBtn.buttonMode = true; playBtn.x = 17; addChild(playBtn); playBtn.addEventListener(MouseEvent.CLICK, onBack); sp2 = new Sprite(); addChild(sp2); sp2.buttonMode = true; sp2.addEventListener(MouseEvent.CLICK, goVDS); tpa2 = new Bitmap(new TPA(261, 209)); tpa2.smoothing = true; tpa2.x = 330; tpa2.y = 10; tpa2.alpha = 0; tpa2.rotation = 20; sp2.addChild(tpa2); sp = new Sprite(); addChild(sp); sp.buttonMode = true; sp.addEventListener(MouseEvent.CLICK, goZik); tpa = new Bitmap(new TPA(261, 209)); tpa.smoothing = true; tpa.x = 270; tpa.y = 210; tpa.alpha = 0; tpa.rotation = 20; sp.addChild(tpa); } private function goVDS(event:MouseEvent):void{ var annuaire:URLRequest; var event = event; ExternalInterface.call("window.open", "http://www.vds-communication.com/", "_blank", ""); //unresolved jump var _slot1 = myError; annuaire = new URLRequest("http://www.vds-communication.com/"); navigateToURL(annuaire); } private function goZik(event:MouseEvent):void{ var annuaire:URLRequest; var event = event; ExternalInterface.call("window.open", "http://www.myspace.com/thepressingadventure", "_blank", ""); //unresolved jump var _slot1 = myError; annuaire = new URLRequest("http://www.myspace.com/thepressingadventure"); navigateToURL(annuaire); } private function onBack(e:MouseEvent):void{ dispatchEvent(new Event(ON_BACK)); } } }//package fr.seraf.rabbits
Section 68
//PageInstructions (fr.seraf.rabbits.PageInstructions) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; public class PageInstructions extends Sprite { private var specialBtn:BtnText; private var section:Sprite; private var playBtn:BtnText; private var starterBtn:BtnText; private var characterBtn:BtnText; private var aerialBtn:BtnText; public static const ON_BACK:String = "ON_BACK"; public function PageInstructions(){ var startY:int; super(); playBtn = new BtnText("Back", 20); playBtn.y = 20; playBtn.x = 17; playBtn.buttonMode = true; addChild(playBtn); playBtn.addEventListener(MouseEvent.CLICK, onBack); startY = 50; starterBtn = new BtnText("Starter", 20); starterBtn.y = startY; starterBtn.buttonMode = true; starterBtn.x = (550 - starterBtn.width); addChild(starterBtn); starterBtn.addEventListener(MouseEvent.CLICK, showStart); startY = (startY + 20); aerialBtn = new BtnText("Aerial", 20); aerialBtn.y = startY; aerialBtn.buttonMode = true; aerialBtn.x = (550 - aerialBtn.width); addChild(aerialBtn); aerialBtn.addEventListener(MouseEvent.CLICK, showAerial); startY = (startY + 20); characterBtn = new BtnText("Character", 20); characterBtn.y = startY; characterBtn.buttonMode = true; characterBtn.x = (550 - characterBtn.width); addChild(characterBtn); characterBtn.addEventListener(MouseEvent.CLICK, showCharacter); startY = (startY + 20); specialBtn = new BtnText("Special", 20); specialBtn.y = startY; specialBtn.buttonMode = true; specialBtn.x = (550 - specialBtn.width); addChild(specialBtn); specialBtn.addEventListener(MouseEvent.CLICK, showSpecial); showStart(null); } private function deleteSection():void{ if (section != null){ removeChild(section); section = null; }; } private function showAerial(event:MouseEvent):void{ deleteSection(); section = new InfoAerial(); addChild(section); } private function showStart(event:MouseEvent):void{ deleteSection(); section = new InfoStart(); addChild(section); } private function showCharacter(event:MouseEvent):void{ deleteSection(); section = new InfoCharacter(); addChild(section); } private function showSpecial(event:MouseEvent):void{ deleteSection(); section = new InfoSpecial(); addChild(section); } private function onBack(e:MouseEvent):void{ dispatchEvent(new Event(ON_BACK)); } } }//package fr.seraf.rabbits
Section 69
//PageMain (fr.seraf.rabbits.PageMain) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; public class PageMain extends Sprite { private var creditsBtn:BtnText; private var playBtn:BtnText; private var scoreBtn:BtnText; private var background:BackgroundMain; private var instructionsBtn:BtnText; public static const ON_CREDITS:String = "ON_CREDITS"; public static const ON_INSTRUC:String = "ON_INSTRUC"; public static const ON_PLAY:String = "ON_PLAY"; public function PageMain(){ super(); playBtn = new BtnText("Play", 20); playBtn.y = 50; playBtn.buttonMode = true; playBtn.x = (550 - playBtn.width); addChild(playBtn); playBtn.addEventListener(MouseEvent.CLICK, onPlay); instructionsBtn = new BtnText("Instructions", 20); instructionsBtn.y = 75; instructionsBtn.buttonMode = true; instructionsBtn.x = (550 - instructionsBtn.width); addChild(instructionsBtn); instructionsBtn.addEventListener(MouseEvent.CLICK, onInstruc); creditsBtn = new BtnText("Credits", 20); creditsBtn.y = 100; creditsBtn.buttonMode = true; creditsBtn.x = (550 - creditsBtn.width); addChild(creditsBtn); creditsBtn.addEventListener(MouseEvent.CLICK, onCredits); } private function onPlay(e:Event):void{ BDD.isPlaying = true; BDD.soundFactory.setGameMusic(); dispatchEvent(new Event(ON_PLAY)); } private function onScore(event:MouseEvent):void{ } private function onCredits(event:Event):void{ dispatchEvent(new Event(ON_CREDITS)); } private function onInstruc(event:Event):void{ dispatchEvent(new Event(ON_INSTRUC)); } } }//package fr.seraf.rabbits
Section 70
//Perso (fr.seraf.rabbits.Perso) package fr.seraf.rabbits { import flash.display.*; public class Perso extends Sprite implements IDisposable { private var ecart:Number; private var count:int; public var type:String; private var id:int; public static const ON_OUT_OF_VIEW:String = "ON_OUT_OF_VIEW"; public function Perso(_x:Number, _type:String="lara"){ super(); this.ecart = ecart; this.count = count; this.id = id; type = _type; x = _x; } public function showSpecialWord():void{ BDD.gameInterface.showSpecial(); } public function showSpecialWordValid():void{ BDD.gameInterface.validSpecial(); } public function move(_x:Number):void{ x = (x - _x); if (x < -200){ dispatchEvent(new OutScreenEvent(ON_OUT_OF_VIEW, x)); }; } public function showSpecialWordUnvalid():void{ BDD.gameInterface.cancelSpecial(); } public function dispose():void{ } } }//package fr.seraf.rabbits
Section 71
//ProxyIndication (fr.seraf.rabbits.ProxyIndication) package fr.seraf.rabbits { import flash.display.*; import flash.geom.*; import de.polygonal.ds.*; import flash.text.*; public class ProxyIndication extends Sprite { private var branche:Array; private var titleText:TextField; private var style:StyleSheet; private var indication1:ProxyItem; private var indication2:ProxyItem; private var format:TextFormat; private var indication4:ProxyItem; private var indication3:ProxyItem; public function ProxyIndication(){ super(); format = new TextFormat(); format.font = BDD.font.fontName; var jaune:Object = new Object(); jaune.fontFamily = BDD.font.fontName; jaune.fontWeight = "bold"; jaune.color = "#FFFF00"; jaune.letterSpacing = 0; jaune.fontSize = 20; var normal:Object = new Object(); normal.fontFamily = BDD.font.fontName; normal.color = "#FFFFFF"; normal.letterSpacing = 0; normal.fontSize = 20; style = new StyleSheet(); style.setStyle(".jaune", jaune); style.setStyle("body", normal); titleText = new TextField(); titleText.x = 0; titleText.y = 0; titleText.embedFonts = true; titleText.defaultTextFormat = format; titleText.styleSheet = style; titleText.autoSize = "left"; titleText.selectable = false; titleText.text = "<body>proxy</body>"; addChild(titleText); branche = new Array(); indication1 = new ProxyItem(); indication1.x = 0; indication1.y = 40; addChild(indication1); branche.push(indication1); indication2 = new ProxyItem(); indication2.x = 30; indication2.y = 40; addChild(indication2); branche.push(indication2); indication3 = new ProxyItem(); indication3.x = 60; indication3.y = 40; addChild(indication3); branche.push(indication3); indication4 = new ProxyItem(); indication4.x = 90; indication4.y = 40; addChild(indication4); branche.push(indication4); } public function update():void{ var perso:Perso; var pts:Point; var node:DListNode = BDD.gameBackground.persoArray.head; var i:int; while (node) { perso = (node.data as Perso); pts = BDD.gameBackground.layerFirstPlan.localToGlobal(new Point(perso.x, perso.y)); pts = BDD.gameBackground.localToGlobal(pts); pts = BDD.gameBoard.localToGlobal(pts); if (((pts.x - x) - BDD.gameBackground.x) > -250){ if (i < 4){ branche[i].setData(new Point(((pts.x - x) - BDD.gameBackground.x), (pts.y - BDD.gameBackground.y)), perso.type); }; i++; }; node = node.next; }; } } }//package fr.seraf.rabbits
Section 72
//ProxyItem (fr.seraf.rabbits.ProxyItem) package fr.seraf.rabbits { import flash.display.*; import flash.geom.*; import flash.utils.*; public class ProxyItem extends Sprite { private var tetes:Dictionary; private var tete:Sprite; private var branche:Sprite; private var lastTete:Sprite; public function ProxyItem(){ super(); if (Math.random() > 0.5){ branche = new Branche1(); } else { branche = new Branche2(); }; addChild(branche); tetes = new Dictionary(); tetes["lara"] = new TeteLara(); tetes["spider"] = new TeteSpider(); tetes["gros"] = new TeteGros(); tetes["kakashi"] = new TeteKakashi(); tetes["vielle"] = new TeteMeme(); tetes["grosse"] = new TeteGrosse(); tetes["luffy"] = new TeteLuffy(); lastTete = tetes["gros"]; addChild(lastTete); } public function setData(pts:Point, teteStr:String):void{ removeChild(lastTete); tete = tetes[teteStr]; addChild(tete); branche.rotation = (((Math.atan2((pts.y - y), (pts.x - x)) * 180) / Math.PI) - 90); lastTete = tete; } } }//package fr.seraf.rabbits
Section 73
//ScoreContainer (fr.seraf.rabbits.ScoreContainer) package fr.seraf.rabbits { import flash.display.*; dynamic class ScoreContainer extends Sprite { function ScoreContainer(){ super(); } } }//package fr.seraf.rabbits
Section 74
//ShootEvent (fr.seraf.rabbits.ShootEvent) package fr.seraf.rabbits { import flash.events.*; public class ShootEvent extends Event { public var puissance:Number; public function ShootEvent(type:String, puissance:Number){ this.puissance = puissance; super(type, false, false); } } }//package fr.seraf.rabbits
Section 75
//Smoke (fr.seraf.rabbits.Smoke) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; public class Smoke extends Bitmap { private var depla:Number; public static const ON_SMOKE_END:String = "ON_SMOKE_END"; public function Smoke(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){ super(bitmapData, pixelSnapping, smoothing); depla = Math.random(); alpha = 0.4; scaleX = (scaleY = 0.3); y = 40; x = -20; } public function move(_x:Number):void{ scaleX = (scaleY = (scaleX = (scaleX + 0.01))); rotation = (rotation + depla); x = (x - (_x + 1)); y = (y - depla); alpha = (alpha - 0.01); if (alpha < 0.01){ dispatchEvent(new Event(ON_SMOKE_END)); }; } } }//package fr.seraf.rabbits
Section 76
//Smoke2 (fr.seraf.rabbits.Smoke2) package fr.seraf.rabbits { import flash.events.*; public class Smoke2 extends FumeVecto { private var depla:Number; public static const ON_SMOKE_END:String = "ON_SMOKE_END"; public function Smoke2(){ super(); depla = (Math.random() * 2); alpha = 0.5; scaleX = (scaleY = 0.3); y = 40; x = (-10 - (Math.random() * 20)); } public function move(_x:Number):void{ x = (x - _x); } public function move2():void{ scaleX = (scaleY = (scaleX = (scaleX + 0.02))); rotation = (rotation + depla); x = (x - 0.5); y = (y - depla); alpha = (alpha - 0.01); if (alpha < 0.01){ dispatchEvent(new Event(ON_SMOKE_END)); }; } } }//package fr.seraf.rabbits
Section 77
//Smoke3 (fr.seraf.rabbits.Smoke3) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; public class Smoke3 extends Sprite { private var depla:Number; public static const ON_SMOKE_END:String = "ON_SMOKE_END3"; public function Smoke3(){ super(); if (BDD.love){ addChild(new FumeHeart()); } else { addChild(new FumeVecto2()); }; depla = (Math.random() * 2); scaleX = (scaleY = 0.4); y = ((BDD.ball.clip.y * BDD.scalePerso) + (45 * BDD.scalePerso)); x = (-10 - (Math.random() * 20)); } public function move(_x:Number):void{ x = (x - _x); } public function move2():void{ scaleX = (scaleY = (scaleX = (scaleX + 0.02))); rotation = (rotation + depla); x = (x - 0.5); y = (y - depla); alpha = (alpha - 0.05); if (alpha < 0.05){ dispatchEvent(new Event(ON_SMOKE_END)); }; } } }//package fr.seraf.rabbits
Section 78
//SoundFactory (fr.seraf.rabbits.SoundFactory) package fr.seraf.rabbits { import flash.media.*; import org.goasap.items.*; import org.goasap.events.*; import flash.net.*; public class SoundFactory { private var menuPlay:GameZik; private var menuSon:MenuZik; private var menuChannel:SoundChannel; private var tween1:LinearGo; private var tween2:LinearGo; private var volumePlay:Number; private var playChannel:SoundChannel; private var volumeMain:Number; private var gameIsPlayed:Boolean; public function SoundFactory():void{ menuPlay = new GameZik(); menuSon = new MenuZik(); super(); var mySo:SharedObject = SharedObject.getLocal("vds-game"); if (mySo.data.volumemusic != null){ BDD.volumeMusic = mySo.data.volumemusic; BDD.volumeSFX = mySo.data.volumesfx; } else { BDD.volumeMusic = 0.8; BDD.volumeSFX = 0.8; mySo.data.volumemusic = 0.8; mySo.data.volumesfx = 0.8; }; gameIsPlayed = false; volumeMain = (0.4 * BDD.volumeMusic); volumePlay = (0.5 * BDD.volumeMusic); tween1 = new LinearGo(); tween2 = new LinearGo(); } private function fadeInMenu():void{ tween1 = new LinearGo(); tween1.duration = 1; tween1.addEventListener(GoEvent.UPDATE, motionFadeInMenu); tween1.start(); } private function stopMenu(s:String=""):void{ menuChannel.stop(); } public function updateVolume():void{ var transform:SoundTransform; volumeMain = (0.4 * BDD.volumeMusic); volumePlay = (0.5 * BDD.volumeMusic); if (menuChannel != null){ transform = playChannel.soundTransform; transform.volume = volumePlay; playChannel.soundTransform = transform; }; } public function setMenuMusic():void{ menuChannel = menuSon.play(0, 888); var transform:SoundTransform = menuChannel.soundTransform; transform.volume = 0; menuChannel.soundTransform = transform; if (gameIsPlayed){ fadeOutPlay(); }; fadeInMenu(); } private function fadeOutPlay():void{ tween2 = new LinearGo(); tween2.duration = 1; tween2.addEventListener(GoEvent.UPDATE, motionFadeOutPlay); tween2.addEventListener(GoEvent.COMPLETE, stopPlay); tween2.start(); } public function setGameMusic():void{ playChannel = menuPlay.play(0, 888); var transform:SoundTransform = playChannel.soundTransform; transform.volume = 0; playChannel.soundTransform = transform; gameIsPlayed = true; fadeOutMenu(); fadeInPlay(); } private function fadeInPlay():void{ tween2 = new LinearGo(); tween2.duration = 1; tween2.addEventListener(GoEvent.UPDATE, motionFadeInPlay); tween2.start(); } private function stopPlay(s:String=""):void{ playChannel.stop(); } private function motionFadeOutMenu(s:String=""):void{ var transform:SoundTransform; if (menuChannel != null){ transform = menuChannel.soundTransform; transform.volume = (volumeMain * (1 - tween1.position)); menuChannel.soundTransform = transform; }; } private function motionFadeInMenu(s:String=""):void{ var transform:SoundTransform; if (menuChannel != null){ transform = menuChannel.soundTransform; transform.volume = (volumeMain * tween1.position); menuChannel.soundTransform = transform; }; } private function motionFadeInPlay(s:String=""):void{ var transform:SoundTransform; if (playChannel != null){ transform = playChannel.soundTransform; transform.volume = (volumePlay * tween2.position); playChannel.soundTransform = transform; }; } private function motionFadeOutPlay(s:String=""):void{ var transform:SoundTransform; if (playChannel != null){ transform = playChannel.soundTransform; transform.volume = (volumePlay * (1 - tween2.position)); playChannel.soundTransform = transform; }; } private function fadeOutMenu():void{ tween1 = new LinearGo(); tween1.duration = 1; tween1.addEventListener(GoEvent.UPDATE, motionFadeOutMenu); tween1.addEventListener(GoEvent.COMPLETE, stopMenu); tween1.start(); } public function playSound(arg0:Sound, vol:Number=1):void{ var sound:SoundChannel; var transform:SoundTransform; if (BDD.volumeMusic != 0){ sound = arg0.play(); transform = sound.soundTransform; transform.volume = vol; sound.soundTransform = transform; }; } } }//package fr.seraf.rabbits
Section 79
//StartLauncher (fr.seraf.rabbits.StartLauncher) package fr.seraf.rabbits { import flash.events.*; import flash.display.*; import flash.utils.*; public class StartLauncher extends Sprite implements IDisposable { private var clickCount:Number; private var clip:CatapultMC; private var _lastframe:Number; public static const ON_BALL_LAUNCHED:String = "ON_BALL_LAUNCHED"; public static const ON_DISPOSE:String = "ON_DISPOSE"; public static const ON_OUT:String = "ON_OUT"; public static const ON_SHOOT:String = "ON_SHOOT"; public function StartLauncher(){ super(); scaleX = (scaleY = 0.75); clip = new CatapultMC(); clip.addFrameScript(2, sound1); clip.addFrameScript(23, sound2); addChild(clip); setTimeout(startClickHandle, 200); } private function sound1():void{ if (BDD.isPlaying){ BDD.soundFactory.playSound(BDD.tire1, 0.7); }; } private function sound2():void{ if (BDD.isPlaying){ BDD.soundFactory.playSound(BDD.tire2, 0.7); }; } private function startTire(e:Event):void{ startClickHandle(); } private function startClickHandle():void{ clickCount = 0; _lastframe = 1; BDD.gameInterface.showClick(); Main.getInstance().clickLayer.addEventListener(MouseEvent.CLICK, clickStep1); } private function firstShoot(e:Event):void{ var puissance:Number; BDD.gameInterface.clearClick(); Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, clickStep1); var frame = 1; if (clip != null){ frame = clip.currentFrame; }; if (frame < 22){ puissance = (frame / 22); } else { puissance = (1 - ((frame - 22) / 15)); }; if (clip != null){ clip.gotoAndPlay("launch"); }; dispatchEvent(new ShootEvent(ON_SHOOT, puissance)); } public function move(__x:Number):void{ x = (x - __x); if (x < -500){ destroy(); }; } private function destroy():void{ dispatchEvent(new Event(ON_OUT)); } private function clickStep1(e:MouseEvent):void{ firstShoot(null); } public function dispose():void{ clip.stop(); Main.getInstance().clickLayer.removeEventListener(MouseEvent.CLICK, clickStep1); removeChild(clip); clip = null; } } }//package fr.seraf.rabbits
Section 80
//SuperIndication (fr.seraf.rabbits.SuperIndication) package fr.seraf.rabbits { import flash.display.*; import flash.text.*; import flash.utils.*; public class SuperIndication extends Sprite { private var probaSpider:Number; private var branche:Array; private var probaLuffy:Number; private var probaRien:Number; private var indication1:SuperItem; private var indication2:SuperItem; private var indication3:SuperItem; private var indication4:SuperItem; private var indication5:SuperItem; private var indication6:SuperItem; private var indication7:SuperItem; private var sumProba:Number; private var probaPinup:Number; private var titleText:TextField; private var style:StyleSheet; private var countUsed:int; private var probaBig:Number; private var format:TextFormat; private var probaKakashi:Number; private var probaOld:Number; private var probaLara:Number; public function SuperIndication(){ super(); BDD.superIndication = this; format = new TextFormat(); format.font = BDD.font.fontName; var jaune:Object = new Object(); jaune.fontFamily = BDD.font.fontName; jaune.fontWeight = "bold"; jaune.color = "#FFFF00"; jaune.letterSpacing = 0; jaune.fontSize = 20; var normal:Object = new Object(); normal.fontFamily = BDD.font.fontName; normal.color = "#FFFFFF"; normal.letterSpacing = 0; normal.fontSize = 20; style = new StyleSheet(); style.setStyle(".jaune", jaune); style.setStyle("body", normal); titleText = new TextField(); titleText.x = 0; titleText.y = 0; titleText.embedFonts = true; titleText.defaultTextFormat = format; titleText.styleSheet = style; titleText.autoSize = "left"; titleText.selectable = false; titleText.text = "<body>super</body>"; addChild(titleText); branche = new Array(); indication1 = new SuperItem(); indication1.x = 0; indication1.y = 40; addChild(indication1); branche.push(indication1); indication2 = new SuperItem(); indication2.x = 30; indication2.y = 40; addChild(indication2); branche.push(indication2); indication3 = new SuperItem(); indication3.x = 60; indication3.y = 40; addChild(indication3); branche.push(indication3); indication4 = new SuperItem(); indication4.x = 90; indication4.y = 40; addChild(indication4); branche.push(indication4); resetProba(); setInterval(update, 5000); } public function update():void{ var p:Object; countUsed = 0; resetProba(); calcSumProba(); var i:int; while (i < 4) { branche[i].clear(); p = getPerso(); if (p != null){ branche[countUsed].setData(p.sp, p.type); countUsed++; }; i++; }; } public function isActiv(type:String):Boolean{ var p:SuperItem; var i:int; while (i < 4) { p = branche[i]; if ((((p.type == type)) && (p.visible))){ return (true); }; i++; }; return (false); } private function getPerso():Object{ var pos:Number = 0; var posN:Number = 0; var n:Number = Math.random(); posN = (pos + (probaLara / sumProba)); if ((((n > pos)) && ((n < posN)))){ probaRien = (probaRien + probaLara); probaLara = 0; calcSumProba(); return ({sp:new TeteLara(), type:"lara"}); }; pos = Number(posN); posN = (pos + (probaLuffy / sumProba)); if ((((n > pos)) && ((n < posN)))){ probaRien = (probaRien + probaLuffy); probaLuffy = 0; calcSumProba(); return ({sp:new TeteLuffy(), type:"luffy"}); }; pos = Number(posN); posN = (pos + (probaKakashi / sumProba)); if ((((n > pos)) && ((n < posN)))){ probaRien = (probaRien + probaKakashi); probaKakashi = 0; calcSumProba(); return ({sp:new TeteKakashi(), type:"kakashi"}); }; pos = Number(posN); posN = (pos + (probaSpider / sumProba)); if ((((n > pos)) && ((n < posN)))){ probaRien = (probaRien + probaSpider); probaSpider = 0; calcSumProba(); return ({sp:new TeteSpider(), type:"spider"}); }; pos = Number(posN); posN = (pos + (probaOld / sumProba)); if ((((n > pos)) && ((n < posN)))){ probaRien = (probaRien + probaOld); probaOld = 0; calcSumProba(); return ({sp:new TeteMeme(), type:"vielle"}); }; pos = Number(posN); posN = (pos + (probaPinup / sumProba)); if ((((n > pos)) && ((n < posN)))){ probaRien = (probaRien + probaPinup); probaPinup = 0; calcSumProba(); return ({sp:new TeteGrosse(), type:"grosse"}); }; pos = Number(posN); posN = (pos + (probaBig / sumProba)); if ((((n > pos)) && ((n < posN)))){ probaRien = (probaRien + probaBig); probaBig = 0; calcSumProba(); return ({sp:new TeteGros(), type:"gros"}); }; return (null); } public function calcSumProba():void{ sumProba = (((((((probaRien + probaLara) + probaBig) + probaOld) + probaLuffy) + probaKakashi) + probaSpider) + probaPinup); } public function resetProba():void{ probaLara = 15; probaBig = 40; probaOld = 20; probaLuffy = 15; probaKakashi = 15; probaSpider = 30; probaPinup = 100; probaRien = 300; } } }//package fr.seraf.rabbits
Section 81
//SuperItem (fr.seraf.rabbits.SuperItem) package fr.seraf.rabbits { import flash.display.*; import flash.utils.*; public class SuperItem extends Sprite { private var tetes:Dictionary; private var tete:Sprite; private var lastTete:Sprite; public var type:String; public function SuperItem(){ super(); } public function setData(teteStr:Sprite, type:String):void{ this.type = type; lastTete = teteStr; addChild(lastTete); visible = true; } public function clear():void{ visible = false; if (lastTete != null){ removeChild(lastTete); lastTete = null; }; } } }//package fr.seraf.rabbits
Section 82
//TileBackground01 (fr.seraf.rabbits.TileBackground01) package fr.seraf.rabbits { import flash.display.*; public class TileBackground01 extends Sprite implements IDisposable { private var total:int; private var _width:Number;// = 599 private var bitmap:Bitmap; private var _x:Number; private var id:int; public function TileBackground01(id:int, total:int){ super(); this.total = total; this.id = id; _x = (id * _width); x = int(_x); bitmap = new Bitmap(new Background01BitmapData(600, 400)); bitmap.y = (-(bitmap.height) + 50); bitmap.x = -300; addChild(bitmap); } public function move(__x:Number):void{ _x = (_x - __x); x = int(_x); if (_x < -(_width)){ _x = (_x + (total * _width)); }; } public function dispose():void{ removeChild(bitmap); bitmap.bitmapData.dispose(); bitmap = null; } } }//package fr.seraf.rabbits
Section 83
//TileBosquet (fr.seraf.rabbits.TileBosquet) package fr.seraf.rabbits { import flash.display.*; public class TileBosquet extends Sprite implements IDisposable { private var total:int; private var _width:Number;// = 70 private var _lastId:int; private var lastId:int; private var lastTree:Bitmap; private var gfx:Array; private var id:int; private var gfxLength:uint; public function TileBosquet(id:int, total:int){ var arbre:Bitmap; super(); this.total = total; this.id = id; x = ((id * _width) - 100); _lastId = -1; lastId = -1; gfx = new Array(); arbre = new Bitmap(new Herbe01BitmapData(183, 91)); arbre.smoothing = true; arbre.x = (-(arbre.width) / 2); arbre.y = -(arbre.height); gfx.push(arbre); arbre = new Bitmap(new Herbe1er01BitmapData(109, 81)); arbre.smoothing = true; arbre.x = (-(arbre.width) / 2); arbre.y = -(arbre.height); gfx.push(arbre); arbre = new Bitmap(new Herbe1er03BitmapData(98, 43)); arbre.smoothing = true; arbre.x = (-(arbre.width) / 2); arbre.y = -(arbre.height); gfx.push(arbre); gfxLength = gfx.length; lastTree = gfx[int((Math.random() * gfxLength))]; addChild(lastTree); } public function dispose():void{ var l:int = int(gfx.length); while (l--) { removeChild(gfx[l]); gfx[l].bitmapData.dispose(); delete gfx[l]; }; } public function move(_x:Number):void{ x = (x - _x); if (x < (-(_width) - 100)){ x = ((total * _width) + x); removeChild(lastTree); lastTree = gfx[int((Math.random() * gfxLength))]; addChild(lastTree); }; } } }//package fr.seraf.rabbits
Section 84
//TileFriseHaut (fr.seraf.rabbits.TileFriseHaut) package fr.seraf.rabbits { import flash.display.*; public class TileFriseHaut extends Sprite implements IDisposable { private var total:int; private var _width:Number;// = 610 private var bitmap:Bitmap; private var _x:Number; private var id:int; public function TileFriseHaut(id:int, total:int){ super(); this.total = total; this.id = id; _x = (id * _width); x = int(_x); bitmap = new Bitmap(new FeuillageBackgroundBitmapData(694, 114)); bitmap.x = -305; addChild(bitmap); } public function move(__x:Number):void{ _x = (_x - __x); x = int(_x); if (_x < -(_width)){ _x = (_x + (total * _width)); }; } public function dispose():void{ removeChild(bitmap); bitmap.bitmapData.dispose(); bitmap = null; } } }//package fr.seraf.rabbits
Section 85
//TileHalo (fr.seraf.rabbits.TileHalo) package fr.seraf.rabbits { import flash.display.*; public class TileHalo extends Sprite implements IDisposable { private var total:int; private var _width:Number;// = 600 private var bitmap:Bitmap; private var _x:Number; private var id:int; public function TileHalo(id:int, total:int, sca:Number=1){ super(); this.total = total; this.id = id; _x = _width; x = int(_x); bitmap = new Bitmap(new HaloBitmapData(285, 400)); bitmap.scaleY = sca; bitmap.y = -300; bitmap.x = 0; addChild(bitmap); } public function move(__x:Number):void{ _x = (_x - __x); x = int(_x); if (_x < -(_width)){ _x = _width; }; } public function dispose():void{ removeChild(bitmap); bitmap.bitmapData.dispose(); bitmap = null; } } }//package fr.seraf.rabbits
Section 86
//TileHerbe (fr.seraf.rabbits.TileHerbe) package fr.seraf.rabbits { import flash.display.*; public class TileHerbe extends Sprite implements IDisposable { private var bitmap2:Bitmap; private var total:int; private var _width:Number;// = 270 private var lastTree:Sprite; private var gfx:Array; private var id:int; public function TileHerbe(id:int, total:int){ var bitmap:Bitmap; var bitmap3:Bitmap; super(); this.total = total; this.id = id; x = ((((id * _width) - 200) + (Math.random() * 20)) - 10); bitmap = new Bitmap(new Herbe03BitmapData(118, 34)); bitmap.scaleX = (bitmap.scaleY = (0.6 + (Math.random() * 0.4))); bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) + 20); bitmap2 = new Bitmap(new Herbe02BitmapData(75, 30)); bitmap2.scaleX = (bitmap2.scaleY = (0.6 + (Math.random() * 0.4))); bitmap2.x = ((-(bitmap2.width) / 2) + 50); bitmap2.y = (-(bitmap2.height) + 20); bitmap3 = new Bitmap(new Herbe03BitmapData(118, 34)); bitmap3.scaleX = (bitmap3.scaleY = (0.6 + (Math.random() * 0.4))); bitmap3.x = ((-(bitmap3.width) / 2) + 100); bitmap3.y = (-(bitmap3.height) + 20); var bitmap4:Bitmap = new Bitmap(new Herbe02BitmapData(75, 30)); bitmap4.scaleX = (bitmap4.scaleY = (0.6 + (Math.random() * 0.4))); bitmap4.x = ((-(bitmap4.width) / 2) + 150); bitmap4.y = (-(bitmap4.height) + 20); var bitmap5:Bitmap = new Bitmap(new Herbe03BitmapData(118, 34)); bitmap5.scaleX = (bitmap5.scaleY = (0.6 + (Math.random() * 0.4))); bitmap5.x = ((-(bitmap5.width) / 2) + 200); bitmap5.y = (-(bitmap5.height) + 20); addChild(bitmap); addChild(bitmap2); addChild(bitmap3); addChild(bitmap4); addChild(bitmap5); } public function move(_x:Number):void{ x = (x - _x); if (x < (-(_width) - 200)){ x = ((total * _width) + x); }; } public function dispose():void{ removeChild(lastTree); } } }//package fr.seraf.rabbits
Section 87
//TileSol (fr.seraf.rabbits.TileSol) package fr.seraf.rabbits { import flash.display.*; public class TileSol extends Sprite implements IDisposable { private var total:int; private var _width:Number;// = 599 private var bitmap:Bitmap; private var _x:Number; private var id:int; public function TileSol(id:int, total:int){ super(); this.total = total; this.id = id; _x = (id * _width); x = int(_x); bitmap = new Bitmap(new SolBitmapData(600, 125)); bitmap.x = -300; bitmap.y = -(bitmap.height); addChild(bitmap); } public function move(__x:Number):void{ _x = (_x - __x); x = int(_x); if (_x < -(_width)){ _x = (_x + (total * _width)); }; } public function dispose():void{ removeChild(bitmap); bitmap.bitmapData.dispose(); bitmap = null; } } }//package fr.seraf.rabbits
Section 88
//TileTree (fr.seraf.rabbits.TileTree) package fr.seraf.rabbits { import flash.display.*; public class TileTree extends Sprite implements IDisposable { private var total:int; private var _width:Number;// = 200 private var lastTree:Sprite; private var gfx:Array; private var id:int; private var gfxLength:uint; public function TileTree(id:int, total:int){ var sprite:Sprite; var bitmap:Bitmap; super(); this.total = total; this.id = id; x = ((id * _width) - 300); gfx = new Array(); sprite = new Sprite(); bitmap = new Bitmap(new Arbre1st01BitmapData(237, 298)); sprite.addChild(bitmap); bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) + 20); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; bitmap = new Bitmap(new Arbre1st02BitmapData(450, 382)); sprite = new Sprite(); bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) + 20); sprite.addChild(bitmap); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; bitmap = new Bitmap(new Arbre1st03BitmapData(291, 334)); sprite = new Sprite(); bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) + 20); sprite.addChild(bitmap); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; bitmap = new Bitmap(new Arbre1st04BitmapData(183, 205)); sprite = new Sprite(); bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) + 20); sprite.addChild(bitmap); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; gfxLength = gfx.length; lastTree = gfx[int((Math.random() * gfxLength))]; addChild(lastTree); } public function dispose():void{ removeChild(lastTree); } public function move(_x:Number):void{ x = (x - _x); if (x < (-(_width) - 200)){ x = ((total * _width) + x); removeChild(lastTree); lastTree = gfx[int((Math.random() * gfxLength))]; if ((Math.random() * 1) > 0.5){ lastTree.scaleX = -(lastTree.scaleX); }; addChild(lastTree); }; } } }//package fr.seraf.rabbits
Section 89
//TileTree2nd (fr.seraf.rabbits.TileTree2nd) package fr.seraf.rabbits { import flash.display.*; public class TileTree2nd extends Sprite implements IDisposable { private var total:int; private var _width:Number;// = 156 private var lastTree:Sprite; private var gfx:Array; private var id:int; private var gfxLength:uint; public function TileTree2nd(id:int, total:int){ var sprite:Sprite; var bitmap:BitmapCache; var bitmap2:BitmapCache; var bitmap4:BitmapCache; super(); this.total = total; this.id = id; x = ((id * _width) - 300); gfx = new Array(); sprite = new Sprite(); bitmap = new BitmapCache(new Arbre2nd_01()); bitmap.scaleX = (bitmap.scaleY = 0.8); bitmap.x = (-(bitmap.width) / 2); bitmap.y = -(bitmap.height); sprite.addChild(bitmap); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; sprite = new Sprite(); bitmap2 = new BitmapCache(new Arbre02teinte()); bitmap2.scaleX = (bitmap2.scaleY = 0.8); bitmap2.x = (-(bitmap2.width) / 2); bitmap2.y = -(bitmap2.height); sprite.addChild(bitmap2); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; sprite = new Sprite(); var bitmap3:BitmapCache = new BitmapCache(new Arbre03teinte()); bitmap3.scaleX = (bitmap2.scaleY = 0.8); bitmap3.x = (-(bitmap3.width) / 2); bitmap3.y = -(bitmap3.height); sprite.addChild(bitmap3); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; sprite = new Sprite(); bitmap4 = new BitmapCache(new Arbre04teinte()); bitmap4.scaleX = (bitmap2.scaleY = 0.8); bitmap4.x = (-(bitmap4.width) / 2); bitmap4.y = -(bitmap4.height); sprite.addChild(bitmap4); gfx.push(sprite); if ((Math.random() * 1) > 0.5){ sprite.scaleX = -(sprite.scaleX); }; gfxLength = gfx.length; lastTree = gfx[int((Math.random() * gfxLength))]; addChild(lastTree); } public function dispose():void{ removeChild(lastTree); } public function move(_x:Number):void{ x = (x - _x); if (x < (-(_width) - 300)){ x = ((total * _width) + x); removeChild(lastTree); lastTree = gfx[int((Math.random() * gfxLength))]; if ((Math.random() * 1) > 0.5){ lastTree.scaleX = -(lastTree.scaleX); }; addChild(lastTree); }; } } }//package fr.seraf.rabbits
Section 90
//Vector2D (fr.seraf.rabbits.Vector2D) package fr.seraf.rabbits { public class Vector2D { public var x:Number; public var y:Number; static var ONE_EIGHTY_OVER_PI:Number = 57.2957795130823; static var PI_OVER_ONE_EIGHTY:Number = 0.0174532925199433; public function Vector2D(x:Number=0, y:Number=0){ super(); this.x = x; this.y = y; } public function get radian():Number{ return (Math.atan2(y, x)); } public function addVector(_v:Vector2D):void{ x = (x + _v.x); y = (y + _v.y); } public function magnitude():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function scale(s:Number):void{ x = (x * s); y = (y * s); } public function normalize():void{ var m:Number = magnitude(); if (m == 0){ m = 0.0001; }; multEquals((1 / m)); } public function multEquals(s:Number):void{ x = (x * s); y = (y * s); } public function angleToVector(ang:Number):void{ ang = (ang * PI_OVER_ONE_EIGHTY); x = Math.cos(ang); y = Math.sin(ang); } public function distance(v:Vector2D):Number{ var delta:Vector2D = this.minus(v); return (delta.magnitude()); } public function addValue(_x:Number, _y:Number):void{ x = (x + _x); y = (y + _y); } public function get angle():Number{ return ((radian * ONE_EIGHTY_OVER_PI)); } public function minus(v:Vector2D):Vector2D{ return (new Vector2D((x - v.x), (y - v.y))); } } }//package fr.seraf.rabbits
Section 91
//coeur_3 (grosse_fla.coeur_3) package grosse_fla { import flash.display.*; public dynamic class coeur_3 extends MovieClip { public function coeur_3(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package grosse_fla
Section 92
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.system.*; import flash.utils.*; import flash.net.*; public class MochiAd { public function MochiAd(){ super(); } public static function getVersion():String{ return ("3.0 as3"); } public static function showClickAwayAd(options:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = options; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (width:Number, height:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (callbackID:Number, arg:Object):void{ MochiAd.rpc(clip, callbackID, arg); }; var sendHostProgress:Boolean; mc.regContLC = function (lc_name:String):void{ mc._containerLCName = lc_name; }; chk["onEnterFrame"] = function ():void{ var total:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var ad_clip:Object = this.parent._mochiad_ctr; var elapsed:Number = (getTimer() - this.started); var finished:Boolean; if (!chk.showing){ total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (total > 0){ chk.showing = true; finished = true; chk.started = getTimer(); } else { if (elapsed > chk.ad_timeout){ options.ad_failed(); finished = true; }; }; }; if (this.root == null){ finished = true; }; if (finished){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(server:String):String{ var hostname:String = server.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (hostname); }; Security.allowDomain("*"); Security.allowDomain(hostname); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(hostname); return (hostname); } public static function unload(clip:Object):Boolean{ if (((clip.clip) && (clip.clip._mochiad))){ clip = clip.clip; }; if (clip.origFrameRate != undefined){ clip.stage.frameRate = clip.origFrameRate; }; if (!clip._mochiad){ return (false); }; if (clip._mochiad._containerLCName != undefined){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"unload"}); }; if (clip._mochiad.onUnload){ clip._mochiad.onUnload(); }; delete clip._mochiad_loaded; delete clip._mochiad; return (true); } public static function showInterLevelAd(options:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = options; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (width:Number, height:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var p:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (p > 0){ this.parent.alpha = (p * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (msec:Number):void{ var _chk:Object = mc._mochiad_wait; _chk.server_control = true; _chk.showing = true; _chk.started = getTimer(); _chk.ad_msec = (msec - 250); }; mc.rpc = function (callbackID:Number, arg:Object):void{ MochiAd.rpc(clip, callbackID, arg); }; chk["onEnterFrame"] = function ():void{ var total:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var ad_clip:Object = this.parent._mochiad_ctr; var elapsed:Number = (getTimer() - this.started); var finished:Boolean; if (!chk.showing){ total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (total > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (elapsed > chk.ad_timeout){ options.ad_failed(); finished = true; }; }; }; if (elapsed > chk.ad_msec){ finished = true; }; if (finished){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(options:Object, defaults:Object):Object{ var k:String; var pairs:Array; var i:Number; var kv:Array; var optcopy:Object = {}; for (k in defaults) { optcopy[k] = defaults[k]; }; if (options){ for (k in options) { optcopy[k] = options[k]; }; }; if (optcopy.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; options = optcopy.clip.loaderInfo.parameters.mochiad_options; if (options){ pairs = options.split("&"); i = 0; while (i < pairs.length) { kv = pairs[i].split("="); optcopy[unescape(kv[0])] = unescape(kv[1]); i++; }; }; if (optcopy.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (optcopy); } public static function _cleanup(mc:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = mc; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ lc.client = null; lc.close(); //unresolved jump var _slot1 = e; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(options:Object):MovieClip{ var clip:Object; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = options; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip._mochiad_loaded){ return (null); }; //unresolved jump var _slot1 = e; throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; } else { trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal"); }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (ev:Object):void{ ev.target.removeEventListener(ev.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (io:IOErrorEvent):void{ trace("[MochiAds] Blocked URL"); }); loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(base:Object, methodName:String, argsArray:Array):Object{ var nameArray:Array = methodName.split("."); var i:Number = 0; while (i < (nameArray.length - 1)) { if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){ return (undefined); }; base = base[nameArray[i]]; i++; }; if (typeof(base[nameArray[i]]) == "function"){ return (base[nameArray[i]].apply(base, argsArray)); }; return (undefined); } public static function createEmptyMovieClip(parent:Object, name:String, depth:Number):MovieClip{ var mc:MovieClip = new MovieClip(); if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; parent[name] = mc; mc["_name"] = name; return (mc); } public static function _getRes(options:Object, clip:Object):Array{ var xy:Array; var b:Object = clip.getBounds(clip.root); var w:Number = 0; var h:Number = 0; if (typeof(options.res) != "undefined"){ xy = options.res.split("x"); w = parseFloat(xy[0]); h = parseFloat(xy[1]); } else { w = (b.xMax - b.xMin); h = (b.yMax - b.yMin); }; if ((((w == 0)) || ((h == 0)))){ w = clip.stage.stageWidth; h = clip.stage.stageHeight; }; return ([w, h]); } public static function adShowing(mc:Object):void{ mc.origFrameRate = mc.stage.frameRate; mc.stage.frameRate = 30; } public static function getValue(base:Object, objectName:String):Object{ var nameArray:Array = objectName.split("."); var i:Number = 0; while (i < (nameArray.length - 1)) { if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){ return (undefined); }; base = base[nameArray[i]]; i++; }; return (base[nameArray[i]]); } public static function rpc(clip:Object, callbackID:Number, arg:Object):void{ var _local4:Object; var _local5:Object; switch (arg.id){ case "setValue": MochiAd.setValue(clip, arg.objectName, arg.value); break; case "getValue": _local4 = MochiAd.getValue(clip, arg.objectName); clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(clip, arg.method, arg.args); clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + arg.id)); }; } public static function setValue(base:Object, objectName:String, value:Object):void{ var nameArray:Array = objectName.split("."); var i:Number = 0; while (i < (nameArray.length - 1)) { if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){ return; }; base = base[nameArray[i]]; i++; }; base[nameArray[i]] = value; } public static function showPreGameAd(options:Object):void{ var clip:Object; var mc:MovieClip; var w:Number; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = options; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (width:Number, height:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (percent:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); w = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var p:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (p > 0){ this.parent.alpha = (p * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var f:Function = function (ev:Event):void{ ev.target.removeEventListener(ev.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (msec:Number):void{ var _chk:Object = mc._mochiad_wait; _chk.server_control = true; _chk.showing = true; _chk.started = getTimer(); _chk.ad_msec = msec; }; mc.rpc = function (callbackID:Number, arg:Object):void{ MochiAd.rpc(clip, callbackID, arg); }; mc.rpcTestFn = function (s:String):Object{ trace(("[MOCHIAD rpcTestFn] " + s)); return (s); }; mc.regContLC = function (lc_name:String):void{ mc._containerLCName = lc_name; }; sendHostProgress = false; mc.sendHostLoadProgress = function (lc_name:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var total:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _clip:Object = this.parent.parent.root; var ad_clip:Object = this.parent._mochiad_ctr; var elapsed:Number = (getTimer() - this.started); var finished:Boolean; var clip_total:Number = _clip.loaderInfo.bytesTotal; var clip_loaded:Number = _clip.loaderInfo.bytesLoaded; if (complete){ clip_loaded = Math.max(1, clip_loaded); clip_total = clip_loaded; }; var clip_pcnt:Number = ((100 * clip_loaded) / clip_total); var ad_pcnt:Number = ((100 * elapsed) / chk.ad_msec); var _inside:Object = this._mochiad_bar._inside; var pcnt:Number = Math.min(100, Math.min(((clip_pcnt) || (0)), ad_pcnt)); pcnt = Math.max(this.last_pcnt, pcnt); this.last_pcnt = pcnt; _inside.scaleX = (pcnt * 0.01); options.ad_progress(pcnt); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:clip_pcnt}); if (clip_pcnt == 100){ sendHostProgress = false; }; }; if (!chk.showing){ total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (total > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((elapsed > chk.ad_timeout)) && ((clip_pcnt == 100)))){ options.ad_failed(); finished = true; }; }; }; if (elapsed > chk.ad_msec){ finished = true; }; if (((complete) && (finished))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(options:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(options); } public static function showTimedAd(options:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(options); } public static function doOnEnterFrame(mc:MovieClip):void{ var mc = mc; var f:Function = function (ev:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { ev.target.removeEventListener(ev.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3
Section 93
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(digit:Number=0, index:uint=0):void{ super(); Encoder = 0; setValue(digit, index); } public function reencode():void{ var newEncode:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (newEncode ^ Encoder)); Encoder = newEncode; } public function set value(v:Number):void{ setValue(v); } public function toString():String{ var s:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ s = (s + Sibling.toString()); }; return (s); } public function setValue(digit:Number=0, index:uint=0):void{ var s:String = digit.toString(); var _temp1 = index; index = (index + 1); Fragment = (s.charCodeAt(_temp1) ^ Encoder); if (index < s.length){ Sibling = new MochiDigits(digit, index); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(inc:Number):void{ value = (value + inc); } } }//package mochi.as3
Section 94
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public function MochiScores(){ super(); } public static function showLeaderboard(options:Object=null):void{ var n:Number; var options = options; if (options != null){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod); } public static function requestList(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_requestList", null, callbackObj, callbackMethod); } public static function scoresArrayToObjects(scores:Object):Object{ var i:Number; var j:Number; var o:Object; var row_obj:Object; var item:String; var param:String; var so:Object = {}; for (item in scores) { if (typeof(scores[item]) == "object"){ if (((!((scores[item].cols == null))) && (!((scores[item].rows == null))))){ so[item] = []; o = scores[item]; j = 0; while (j < o.rows.length) { row_obj = {}; i = 0; while (i < o.cols.length) { row_obj[o.cols[i]] = o.rows[j][i]; i++; }; so[item].push(row_obj); j++; }; } else { so[item] = {}; for (param in scores[item]) { so[item][param] = scores[item][param]; }; }; } else { so[item] = scores[item]; }; }; return (so); } public static function submit(score:Number, name:String, callbackObj:Object=null, callbackMethod:Object=null):void{ score = Number(score); if (isNaN(score)){ trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((score == Number.NEGATIVE_INFINITY)) || ((score == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(score) != score){ trace((("WARNING: Submitted score '" + String(score)) + "' will be truncated")); }; score = Number(score); }; }; MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod); } public static function onClose(args:Object=null):void{ if (args != null){ if (args.error != null){ if (args.error == true){ if (onErrorHandler != null){ if (args.errorCode == null){ args.errorCode = "IOError"; }; onErrorHandler(args.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(boardID:String):void{ MochiScores.boardID = boardID; MochiServices.send("scores_setBoardID", {boardID:boardID}); } } }//package mochi.as3
Section 95
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.system.*; import flash.utils.*; import flash.net.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__ms_"; private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; public static var netup:Boolean = true; public function MochiServices(){ super(); } public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function flush(error:Boolean):void{ var request:Object; var callback:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { request = _clip._queue.shift(); callback = null; if (request != null){ if (request.callbackID != null){ callback = _clip._callbacks[request.callbackID]; }; delete _clip._callbacks[request.callbackID]; if (((error) && (!((callback == null))))){ handleError(request.args, callback.callbackObject, callback.callbackMethod); }; }; }; }; }; } public static function send(methodName:String, args:Object=null, callbackObject:Object=null, callbackMethod:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); handleError(args, callbackObject, callbackMethod); flush(true); return; }; _clip._queue.push({methodName:methodName, args:args, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod}; _clip._nextcallbackID++; }; }; } private static function init(id:String, clip:Object):void{ _id = id; if (clip != null){ _container = clip; loadCommunicator(id, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(url:String, cb:Function):MovieClip{ var b:int; var loader:Loader; var avm1_bytecode:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var header:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var footer:Array = [0, 64, 0, 0, 0]; var mc:MovieClip = new MovieClip(); var lc:LocalConnection = new LocalConnection(); var lc_name:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().getTime())); lc = new LocalConnection(); mc.lc = lc; mc.click = cb; lc.client = mc; lc.connect(lc_name); var ba:ByteArray = new ByteArray(); var cpool:ByteArray = new ByteArray(); cpool.endian = Endian.LITTLE_ENDIAN; cpool.writeShort(1); cpool.writeUTFBytes(((url + " ") + lc_name)); cpool.writeByte(0); var actionLength:uint = ((avm1_bytecode.length + cpool.length) + 4); var fileLength:uint = (actionLength + 35); ba.endian = Endian.LITTLE_ENDIAN; ba.writeUTFBytes("FWS"); ba.writeByte(8); ba.writeUnsignedInt(fileLength); for each (b in header) { ba.writeByte(b); }; ba.writeUnsignedInt(actionLength); ba.writeByte(136); ba.writeShort(cpool.length); ba.writeBytes(cpool); for each (b in avm1_bytecode) { ba.writeByte(b); }; for each (b in footer) { ba.writeByte(b); }; loader = new Loader(); loader.loadBytes(ba); mc.addChild(loader); return (mc); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(url:String, burl:String, btn:DisplayObjectContainer, onClick:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = url; var burl = burl; var btn = btn; var onClick = onClick; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (url:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(url, onClick); var rect:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = rect.x; avm1Click.y = rect.y; avm1Click.scaleX = (0.01 * rect.width); avm1Click.scaleY = (0.01 * rect.height); }; err = function (ev:Object):void{ netup = false; ev.target.removeEventListener(ev.type, arguments.callee); setURL(burl); }; complete = function (ev:Object):void{ ev.target.removeEventListener(ev.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); _listenChannel.close(); //unresolved jump var _slot1 = error; }; if (_timer != null){ _timer.stop(); //unresolved jump var _slot1 = error; }; } public static function allowDomains(server:String):String{ var hostname:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (server.indexOf("http://") != -1){ hostname = server.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(hostname); Security.allowInsecureDomain(hostname); }; }; return (hostname); } public static function getVersion():String{ return ("3.0"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } private static function onStatus(event:StatusEvent):void{ switch (event.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } public static function get id():String{ return (_id); } private static function urlOptions(clip:Object):Object{ var pairs:Array; var i:Number; var kv:Array; var opts:Object = {}; var options:String = clip.loaderInfo.parameters.mochiad_options; if (options){ pairs = options.split("&"); i = 0; while (i < pairs.length) { kv = pairs[i].split("="); opts[unescape(kv[0])] = unescape(kv[1]); i++; }; }; return (opts); } public static function setContainer(container:Object=null, doAdd:Boolean=true):void{ if (container != null){ if ((container is Sprite)){ _container = container; }; }; if (doAdd){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function handleError(args:Object, callbackObject:Object, callbackMethod:Object):void{ var args = args; var callbackObject = callbackObject; var callbackMethod = callbackMethod; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ var _local5 = callbackObject; _local5[callbackMethod](args); //unresolved jump var _slot1 = error; } else { if (callbackMethod != null){ callbackMethod.apply(args); //unresolved jump var _slot1 = error; }; }; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (pkg:Object):void{ var methodName:String; var pkg = pkg; var cb:String = pkg.callbackID; var cblst:Object = this.client._callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ method.apply(obj, pkg.args); //unresolved jump var _slot1 = error; trace(((("Error invoking callback method '" + methodName) + "': ") + pkg.toString())); } else { if (obj != null){ obj(pkg.args); //unresolved jump var _slot1 = error; trace(("Error invoking method on object: " + pkg.toString())); }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; trace("connected!"); _connecting = false; _connected = true; while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (args:Object):void{ MochiServices.comChannelName = args.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } public static function set comChannelName(val:String):void{ if (val != null){ if (val.length > 3){ _sendChannelName = (val + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(id:String, clip:Object):MovieClip{ var id = id; var clip = clip; var clipname:String = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(clip).servicesURL != undefined){ _servicesURL = urlOptions(clip).servicesURL; }; MochiServices.allowDomains(_servicesURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); var f:Function = function (ev:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor((Math.random() * 99999)))); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); var req:URLRequest = new URLRequest(_servicesURL); var vars:URLVariables = new URLVariables(); vars.listenLC = _listenChannelName; vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options; if (widget){ vars.widget = true; }; req.data = vars; listen(); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function get clip():Object{ return (_container); } public static function bringToTop(e:Event):void{ var e = e; if (MochiServices.clip != null){ if (MochiServices.childClip != null){ if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; //unresolved jump var _slot1 = errorObject; trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connect(id:String, clip:Object, onError:Object=null):void{ var id = id; var clip = clip; var onError = onError; if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (errorCode:String):void{ trace(errorCode); }; }; }; } public static function createEmptyMovieClip(parent:Object, name:String, depth:Number, doAdd:Boolean=true):MovieClip{ var parent = parent; var name = name; var depth = depth; var doAdd = doAdd; var mc:MovieClip = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; parent[name] = mc; //unresolved jump var _slot1 = e; throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); mc["_name"] = name; return (mc); } public static function connectWait(e:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 96
//DuplicateManagerError (org.goasap.errors.DuplicateManagerError) package org.goasap.errors { public class DuplicateManagerError extends Error { public function DuplicateManagerError(className:String){ super((("An instance of " + className) + " was already added to GoEngine.")); } } }//package org.goasap.errors
Section 97
//InstanceNotAllowedError (org.goasap.errors.InstanceNotAllowedError) package org.goasap.errors { public class InstanceNotAllowedError extends Error { public function InstanceNotAllowedError(className:String){ super((("Direct use of " + className) + " is not allowed, use subclasses only.")); } } }//package org.goasap.errors
Section 98
//GoEvent (org.goasap.events.GoEvent) package org.goasap.events { import flash.events.*; public class GoEvent extends Event { public var extra; public static const COMPLETE:String = "playableComplete"; public static const START:String = "playableStart"; public static const UPDATE:String = "playableUpdate"; public static const STOP:String = "playableStop"; public function GoEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){ super(type, bubbles, cancelable); } } }//package org.goasap.events
Section 99
//IManageable (org.goasap.interfaces.IManageable) package org.goasap.interfaces { public interface IManageable extends IUpdatable { function isHandling(E:\vds_travaux\rabbitsgame\rabbit\src;org\goasap\interfaces;IManageable.as:Array):Boolean; function releaseHandling(... _args):void; function getActiveTargets():Array; function getActiveProperties():Array; } }//package org.goasap.interfaces
Section 100
//IManager (org.goasap.interfaces.IManager) package org.goasap.interfaces { public interface IManager { function reserve(:IManageable):void; function release(:IManageable):void; } }//package org.goasap.interfaces
Section 101
//IPlayable (org.goasap.interfaces.IPlayable) package org.goasap.interfaces { public interface IPlayable extends IPlayableBase { function stop():Boolean; function pause():Boolean; function start():Boolean; function skipTo(:Number):Boolean; function resume():Boolean; } }//package org.goasap.interfaces
Section 102
//IPlayableBase (org.goasap.interfaces.IPlayableBase) package org.goasap.interfaces { import flash.events.*; public interface IPlayableBase extends IEventDispatcher { function get state():String; function get id(); function set id(E:\vds_travaux\rabbitsgame\rabbit\src;org\goasap\interfaces;IPlayableBase.as):void; } }//package org.goasap.interfaces
Section 103
//IUpdatable (org.goasap.interfaces.IUpdatable) package org.goasap.interfaces { public interface IUpdatable { function update(:Number):void; function get pulseInterval():int; } }//package org.goasap.interfaces
Section 104
//GoItem (org.goasap.items.GoItem) package org.goasap.items { import org.goasap.*; public class GoItem extends PlayableBase { public var useRelative:Boolean; protected var _pulse:int; public var useRounding:Boolean; public static var defaultUseRounding:Boolean = false; public static var defaultUseRelative:Boolean = false; public static var defaultPulseInterval:Number = GoEngine.ENTER_FRAME; public static var timeMultiplier:Number = 1; public function GoItem(){ useRounding = defaultUseRounding; useRelative = defaultUseRelative; _pulse = defaultPulseInterval; super(); } public function correctValue(value:Number):Number{ if (isNaN(value)){ return (0); }; if (useRounding){ return (Math.round(value)); }; return (value); } public function update(currentTime:Number):void{ } public function set pulseInterval(interval:int):void{ if ((((_state == STOPPED)) && ((((interval >= 0)) || ((interval == GoEngine.ENTER_FRAME)))))){ _pulse = interval; }; } public function get pulseInterval():int{ return (_pulse); } } }//package org.goasap.items
Section 105
//LinearGo (org.goasap.items.LinearGo) package org.goasap.items { import org.goasap.interfaces.*; import org.goasap.*; import org.goasap.events.*; import flash.utils.*; public class LinearGo extends GoItem implements IPlayable, IUpdatable { protected var _delay:Number; protected var _extraEaseParams:Array; protected var _endTime:Number; protected var _currentEasing:Function; protected var _cyclesDone:uint; protected var _position:Number; protected var _tweenDuration:Number; protected var _easing2:Function; protected var _easeParams:Array; protected var _easing:Function; protected var _change:Number; protected var _currentFrame:uint; protected var _startTime:Number; protected var _callbacks:Object; protected var _pauseTime:Number; protected var _cycles:uint;// = 1 protected var _duration:Number; public static var defaultDelay:Number = 0; public static var defaultDuration:Number = 1; public static var defaultEasing:Function = function (t:Number, b:Number, c:Number, d:Number):Number{ t = ((t / d) - 1); return (((c * (((((t * t) * t) * t) * t) + 1)) + b)); }; public function LinearGo(delay:Number=NaN, duration:Number=NaN, easing:Function=null, extraEasingParams:Array=null, cycles:Number=NaN, easingOnCycle:Function=null, useRelative:Boolean=false, useRounding:Boolean=false, pulseInterval:Number=NaN){ _delay = defaultDelay; _duration = defaultDuration; _easing = defaultEasing; _callbacks = new Object(); super(); if (!isNaN(delay)){ this._delay = delay; }; if (!isNaN(duration)){ this._duration = duration; }; if (easing != null){ this.easing = easing; }; if (extraEasingParams){ this._extraEaseParams = extraEasingParams; }; if (!isNaN(cycles)){ this._cycles = cycles; }; if (easingOnCycle != null){ this._easing2 = easingOnCycle; }; if (useRelative){ this.useRelative = useRelative; }; if (useRounding){ this.useRounding = useRounding; }; if (!isNaN(pulseInterval)){ this._pulse = pulseInterval; }; } public function set extraEasingParams(params:Array):void{ if ((((((_state == STOPPED)) && ((params is Array)))) && ((params.length > 0)))){ _extraEaseParams = params; }; } public function get delay():Number{ return (_delay); } public function set delay(seconds:Number):void{ if ((((_state == STOPPED)) && ((seconds >= 0)))){ _delay = seconds; }; } public function addCallback(closure:Function, type:String="playableComplete"):void{ if (!_callbacks[type]){ _callbacks[type] = new Array(); }; var a:Array = (_callbacks[type] as Array); if (a.indexOf(closure) == -1){ a.push(closure); }; } public function get duration():Number{ return (_duration); } public function get timePosition():Number{ if (_state == STOPPED){ return (0); }; return (Math.min(_duration, Math.max(-(_delay), (((getTimer() - _startTime) / 1000) / Math.max(0, timeMultiplier))))); } protected function onUpdate(type:String):void{ } public function set cycles(value:uint):void{ if (_state == STOPPED){ _cycles = value; }; } public function get easingOnCycle():Function{ return (_easing2); } public function stop():Boolean{ if ((((_state == STOPPED)) || ((GoEngine.removeItem(this) == false)))){ return (false); }; _state = STOPPED; var completed = (_position == (_cyclesDone % 2)); reset(); if (!completed){ dispatch(GoEvent.STOP); }; return (true); } public function set duration(seconds:Number):void{ if ((((_state == STOPPED)) && ((seconds >= 0)))){ _duration = seconds; }; } public function get position():Number{ return (_position); } public function get easing():Function{ return (_easing); } public function resume():Boolean{ if (_state != PAUSED){ return (false); }; var currentTime:Number = getTimer(); setStartTime((currentTime - (_pauseTime - _startTime)), false, false); _pauseTime = NaN; _state = ((_startTime > currentTime)) ? PLAYING_DELAY : PLAYING; return (true); } public function set easingOnCycle(type:Function):void{ var type = type; if (_state == STOPPED){ if ((type(1, 1, 1, 1) is Number)){ _easing2 = type; }; //unresolved jump var _slot1 = e; throw (_slot1); }; } public function get extraEasingParams():Array{ return (_extraEaseParams); } protected function setStartTime(time:Number, includeDelay:Boolean=false, runSetup:Boolean=true):void{ _startTime = time; _tweenDuration = ((_duration * 1000) * Math.max(0, timeMultiplier)); _endTime = (_startTime + _tweenDuration); if (includeDelay){ _startTime = (_startTime + ((_delay * 1000) * Math.max(0, timeMultiplier))); _endTime = (_endTime + ((_delay * 1000) * Math.max(0, timeMultiplier))); }; if (runSetup){ if (((!((_position == 0))) && (!((_position == 1))))){ throw (new Error(("LinearGo.setStartTime runSetup _position=" + _position))); }; _easeParams = new Array(0, _position, _change, _tweenDuration); _currentEasing = (((((_cyclesDone % 2) == 1)) && (!((_easing2 == null))))) ? _easing2 : _easing; if (_extraEaseParams){ _easeParams = _easeParams.concat(_extraEaseParams); }; }; } public function get cycles():uint{ return (_cycles); } public function set easing(type:Function):void{ var type = type; if (_state == STOPPED){ if ((type(1, 1, 1, 1) is Number)){ _easing = type; }; //unresolved jump var _slot1 = e; throw (_slot1); }; } public function skipTo(seconds:Number):Boolean{ if (isNaN(seconds)){ seconds = 0; }; var currentTime:Number = getTimer(); var startTime:Number = (currentTime - ((Math.min(seconds, _duration) * 1000) * Math.max(0, timeMultiplier))); if (_state == STOPPED){ if (start() == false){ return (false); }; setStartTime(startTime, false, true); } else { setStartTime(startTime, false, false); }; _state = ((_startTime > currentTime)) ? PLAYING_DELAY : PLAYING; update(currentTime); return (true); } public function start():Boolean{ stop(); if (GoEngine.addItem(this) == false){ return (false); }; reset(); _state = ((_delay > 0)) ? PLAYING_DELAY : PLAYING; return (true); } protected function reset():void{ _position = 0; _change = 1; _cyclesDone = 0; _currentFrame = 0; _pauseTime = NaN; _startTime = NaN; } override public function update(currentTime:Number):void{ var type:String; if (!_startTime){ setStartTime(currentTime, true, true); }; if ((((_startTime > currentTime)) || ((_state == PAUSED)))){ return; }; if (currentTime >= _endTime){ _cyclesDone++; _position = (_cyclesDone % 2); if (((!((_cyclesDone == _cycles))) || ((_cycles == 0)))){ _change = -(_change); _startTime = NaN; type = GoEvent.UPDATE; } else { type = GoEvent.COMPLETE; }; } else { type = ((_currentFrame == 0)) ? GoEvent.START : GoEvent.UPDATE; _currentFrame++; _easeParams[0] = (currentTime - _startTime); _position = _currentEasing.apply(null, _easeParams); }; onUpdate(type); if (type == GoEvent.START){ _state = PLAYING; dispatch(GoEvent.START); }; dispatch(GoEvent.UPDATE); if (type == GoEvent.COMPLETE){ dispatch(GoEvent.COMPLETE); stop(); }; } public function get currentCycle():uint{ return ((_cyclesDone + 1)); } public function removeCallback(closure:Function, type:String="playableComplete"):void{ var a:Array = (_callbacks[type] as Array); if (a){ while (a.indexOf(closure) > -1) { a.splice(a.indexOf(closure), 1); }; }; } public function pause():Boolean{ if ((((_state == STOPPED)) || ((_state == PAUSED)))){ return (false); }; _state = PAUSED; _pauseTime = getTimer(); return (true); } protected function dispatch(type:String):void{ var callback:Function; var a:Array = (_callbacks[type] as Array); if (a){ for each (callback in a) { callback(); }; }; if (hasEventListener(type)){ dispatchEvent(new GoEvent(type)); }; } } }//package org.goasap.items
Section 106
//GoEngine (org.goasap.GoEngine) package org.goasap { import flash.events.*; import flash.display.*; import org.goasap.interfaces.*; import flash.utils.*; import org.goasap.errors.*; public class GoEngine { public static const ENTER_FRAME:int = -1; public static const INFO:String = "Go 0.4.0 (c) Moses Gunesch, MIT Licensed."; private static var items:Dictionary = new Dictionary(false); private static var pulseSprite:Sprite; private static var timers:Dictionary = new Dictionary(false); private static var lockedPulses:Dictionary = new Dictionary(false); private static var managers:Object = new Object(); private static var paused:Boolean = false; private static var addQueue:Dictionary = new Dictionary(false); private static var itemCounts:Dictionary = new Dictionary(false); private static var delayedPulses:Dictionary = new Dictionary(false); public function GoEngine(){ super(); } private static function removePulse(pulse:int):Boolean{ if (pulse == ENTER_FRAME){ if (pulseSprite){ pulseSprite.removeEventListener(Event.ENTER_FRAME, update); delete timers[ENTER_FRAME]; pulseSprite = null; return (true); }; }; var t:Timer = (timers[pulse] as Timer); if (t){ t.stop(); t.removeEventListener(TimerEvent.TIMER, update); delete timers[pulse]; return (true); }; return (false); } public static function removeManager(className:String):void{ delete managers[className]; } public static function hasItem(item:IUpdatable):Boolean{ return (!((items[item] == null))); } public static function removeItem(item:IUpdatable):Boolean{ var manager:IManager; if (items[item] == null){ return (false); }; var interval:int = items[item]; var _local4 = itemCounts; var _local5 = interval; var _local6 = (_local4[_local5] - 1); _local4[_local5] = _local6; if (_local6 == 0){ removePulse(interval); delete itemCounts[interval]; }; delete items[item]; delete addQueue[item]; if ((item is IManageable)){ for each (manager in managers) { manager.release((item as IManageable)); }; }; return (true); } private static function update(event:Event):void{ var item:*; var currentTime:Number = getTimer(); var pulse:int = ((event is TimerEvent)) ? (event.target as Timer).delay : ENTER_FRAME; lockedPulses[pulse] = true; for (item in items) { if ((((items[item] == pulse)) && (!(addQueue[item])))){ (item as IUpdatable).update(currentTime); }; }; lockedPulses[pulse] = false; if (delayedPulses[pulse]){ for (item in addQueue) { delete addQueue[item]; }; delete delayedPulses[pulse]; }; } public static function addItem(item:IUpdatable):Boolean{ var manager:IManager; var interval:int = item.pulseInterval; if (items[item]){ if (items[item] == item.pulseInterval){ return (false); }; removeItem(item); }; if (lockedPulses[interval] == true){ delayedPulses[interval] = true; addQueue[item] = true; }; items[item] = interval; if (!timers[interval]){ addPulse(interval); itemCounts[interval] = 1; } else { var _local4 = itemCounts; var _local5 = interval; var _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; }; if ((item is IManageable)){ for each (manager in managers) { manager.reserve((item as IManageable)); }; }; return (true); } public static function getCount(pulseInterval:Number=NaN):uint{ var count:int; if (!isNaN(pulseInterval)){ return (itemCounts[pulseInterval]); }; var n:Number = 0; for each (count in itemCounts) { n = (n + count); }; return (n); } private static function addPulse(pulse:int):Boolean{ if (pulse == ENTER_FRAME){ if (!pulseSprite){ timers[ENTER_FRAME] = (pulseSprite = new Sprite()); pulseSprite.addEventListener(Event.ENTER_FRAME, update); }; return (true); }; var t:Timer = (timers[pulse] as Timer); if (!t){ t = (timers[pulse] = new Timer(pulse)); (timers[pulse] as Timer).addEventListener(TimerEvent.TIMER, update); t.start(); return (true); }; return (false); } public static function addManager(instance:IManager):void{ var className:String = getQualifiedClassName(instance); className = className.slice((className.lastIndexOf("::") + 2)); if (managers[className]){ throw (new DuplicateManagerError(className)); }; managers[className] = instance; } public static function clear(pulseInterval:Number=NaN):uint{ var item:Object; var all:Boolean = isNaN(pulseInterval); var n:Number = 0; for (item in items) { if (((all) || ((items[item] == pulseInterval)))){ if (removeItem((item as IUpdatable)) == true){ n++; }; }; }; return (n); } public static function getPaused():Boolean{ return (paused); } public static function getManager(className:String):IManager{ return (managers[className]); } public static function setPaused(pause:Boolean=true, pulseInterval:Number=NaN):uint{ var item:Object; var pulse:int; if (paused == pause){ return (0); }; var n:Number = 0; var pulseChanged:Boolean; var all:Boolean = isNaN(pulseInterval); var method:String = (pause) ? "pause" : "resume"; for (item in items) { pulse = (items[item] as int); if (((all) || ((pulse == pulseInterval)))){ pulseChanged = ((pulseChanged) || ((pause) ? removePulse(pulse) : addPulse(pulse))); if (item.hasOwnProperty(method)){ if ((item[method] is Function)){ item[method].apply(item); n++; }; }; }; }; if (pulseChanged){ paused = pause; }; return (n); } } }//package org.goasap
Section 107
//PlayableBase (org.goasap.PlayableBase) package org.goasap { import flash.events.*; import org.goasap.interfaces.*; import flash.utils.*; import org.goasap.errors.*; public class PlayableBase extends EventDispatcher implements IPlayableBase { protected var _state:String;// = "STOPPED" protected var _id; public static const PLAYING:String = "PLAYING"; public static const PLAYING_DELAY:String = "PLAYING_DELAY"; public static const STOPPED:String = "STOPPED"; public static const PAUSED:String = "PAUSED"; private static var _idCounter:int = -1; public function PlayableBase():void{ super(); var className:String = getQualifiedClassName(this); if (className.slice((className.lastIndexOf("::") + 2)) == "PlayableBase"){ throw (new InstanceNotAllowedError("PlayableBase")); }; id = ++_idCounter; } public function get id(){ return (_id); } public function get state():String{ return (_state); } override public function toString():String{ var s:String = super.toString(); var addLast = (s.charAt((s.length - 1)) == "]"); if (addLast){ s = s.slice(0, -1); }; if ((id is String)){ s = (s + ((" id:\"" + id) + "\"")); } else { s = (s + (" id:" + id)); }; if (addLast){ s = (s + "]"); }; return (s); } public function set id(value):void{ _id = value; } } }//package org.goasap
Section 108
//Arbre02teinte (Arbre02teinte) package { import flash.display.*; public dynamic class Arbre02teinte extends Sprite { } }//package
Section 109
//Arbre03teinte (Arbre03teinte) package { import flash.display.*; public dynamic class Arbre03teinte extends Sprite { } }//package
Section 110
//Arbre04teinte (Arbre04teinte) package { import flash.display.*; public dynamic class Arbre04teinte extends Sprite { } }//package
Section 111
//Arbre1st01BitmapData (Arbre1st01BitmapData) package { import flash.display.*; public dynamic class Arbre1st01BitmapData extends BitmapData { public function Arbre1st01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 112
//Arbre1st02BitmapData (Arbre1st02BitmapData) package { import flash.display.*; public dynamic class Arbre1st02BitmapData extends BitmapData { public function Arbre1st02BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 113
//Arbre1st03BitmapData (Arbre1st03BitmapData) package { import flash.display.*; public dynamic class Arbre1st03BitmapData extends BitmapData { public function Arbre1st03BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 114
//Arbre1st04BitmapData (Arbre1st04BitmapData) package { import flash.display.*; public dynamic class Arbre1st04BitmapData extends BitmapData { public function Arbre1st04BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 115
//Arbre2nd_01 (Arbre2nd_01) package { import flash.display.*; public dynamic class Arbre2nd_01 extends Sprite { } }//package
Section 116
//ArrowAerial (ArrowAerial) package { import flash.display.*; public dynamic class ArrowAerial extends MovieClip { public function ArrowAerial(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 117
//ArrowBalezeBear (ArrowBalezeBear) package { import flash.display.*; public dynamic class ArrowBalezeBear extends Sprite { } }//package
Section 118
//ArrowHeight (ArrowHeight) package { import flash.display.*; public dynamic class ArrowHeight extends Sprite { } }//package
Section 119
//Background01BitmapData (Background01BitmapData) package { import flash.display.*; public dynamic class Background01BitmapData extends BitmapData { public function Background01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 120
//BackgroundMain (BackgroundMain) package { import flash.display.*; public dynamic class BackgroundMain extends Sprite { } }//package
Section 121
//BalezeBear (BalezeBear) package { import flash.display.*; public dynamic class BalezeBear extends MovieClip { public function BalezeBear(){ addFrameScript(0, frame1, 25, frame26, 26, frame27, 37, frame38); } function frame1(){ stop(); } function frame26(){ stop(); } function frame27(){ stop(); } function frame38(){ stop(); } } }//package
Section 122
//BallMovieClip (BallMovieClip) package { import flash.display.*; public dynamic class BallMovieClip extends MovieClip { public function BallMovieClip(){ addFrameScript(0, frame1, 13, frame14, 34, frame35, 39, frame40, 41, frame42); } function frame14(){ stop(); } function frame1(){ stop(); } function frame35(){ stop(); } function frame40(){ stop(); } function frame42(){ stop(); } } }//package
Section 123
//Batman (Batman) package { import flash.display.*; public dynamic class Batman extends Sprite { } }//package
Section 124
//Boum (Boum) package { import flash.media.*; public dynamic class Boum extends Sound { } }//package
Section 125
//Branche1 (Branche1) package { import flash.display.*; public dynamic class Branche1 extends Sprite { } }//package
Section 126
//Branche2 (Branche2) package { import flash.display.*; public dynamic class Branche2 extends Sprite { } }//package
Section 127
//CatapultMC (CatapultMC) package { import flash.display.*; public dynamic class CatapultMC extends MovieClip { public function CatapultMC(){ addFrameScript(36, frame37, 52, frame53); } function frame37(){ gotoAndPlay(2); } function frame53(){ stop(); } } }//package
Section 128
//ClickToStart (ClickToStart) package { import flash.display.*; public dynamic class ClickToStart extends Sprite { } }//package
Section 129
//ElasticSound (ElasticSound) package { import flash.media.*; public dynamic class ElasticSound extends Sound { } }//package
Section 130
//Electricite (Electricite) package { import flash.media.*; public dynamic class Electricite extends Sound { } }//package
Section 131
//Elico (Elico) package { import flash.media.*; public dynamic class Elico extends Sound { } }//package
Section 132
//EtirementSound (EtirementSound) package { import flash.media.*; public dynamic class EtirementSound extends Sound { } }//package
Section 133
//Fail (Fail) package { import flash.media.*; public dynamic class Fail extends Sound { } }//package
Section 134
//FeuillageBackgroundBitmapData (FeuillageBackgroundBitmapData) package { import flash.display.*; public dynamic class FeuillageBackgroundBitmapData extends BitmapData { public function FeuillageBackgroundBitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 135
//FumeHeart (FumeHeart) package { import flash.display.*; public dynamic class FumeHeart extends Sprite { } }//package
Section 136
//FumeVecto (FumeVecto) package { import flash.display.*; public dynamic class FumeVecto extends Sprite { } }//package
Section 137
//FumeVecto2 (FumeVecto2) package { import flash.display.*; public dynamic class FumeVecto2 extends Sprite { } }//package
Section 138
//GameZik (GameZik) package { import flash.media.*; public dynamic class GameZik extends Sound { } }//package
Section 139
//Gatling (Gatling) package { import flash.media.*; public dynamic class Gatling extends Sound { } }//package
Section 140
//Grosse (Grosse) package { import flash.display.*; public dynamic class Grosse extends MovieClip { public function Grosse(){ addFrameScript(0, frame1, 69, frame70, 152, frame153); } function frame70(){ gotoAndPlay("end"); } function frame153(){ stop(); } function frame1(){ stop(); } } }//package
Section 141
//Grr (Grr) package { import flash.media.*; public dynamic class Grr extends Sound { } }//package
Section 142
//HaloBitmapData (HaloBitmapData) package { import flash.display.*; public dynamic class HaloBitmapData extends BitmapData { public function HaloBitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 143
//Herbe01BitmapData (Herbe01BitmapData) package { import flash.display.*; public dynamic class Herbe01BitmapData extends BitmapData { public function Herbe01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 144
//Herbe01Teinte (Herbe01Teinte) package { import flash.display.*; public dynamic class Herbe01Teinte extends Sprite { } }//package
Section 145
//Herbe02BitmapData (Herbe02BitmapData) package { import flash.display.*; public dynamic class Herbe02BitmapData extends BitmapData { public function Herbe02BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 146
//Herbe03BitmapData (Herbe03BitmapData) package { import flash.display.*; public dynamic class Herbe03BitmapData extends BitmapData { public function Herbe03BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 147
//Herbe03Teinte (Herbe03Teinte) package { import flash.display.*; public dynamic class Herbe03Teinte extends Sprite { } }//package
Section 148
//Herbe1er01BitmapData (Herbe1er01BitmapData) package { import flash.display.*; public dynamic class Herbe1er01BitmapData extends BitmapData { public function Herbe1er01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 149
//Herbe1er03BitmapData (Herbe1er03BitmapData) package { import flash.display.*; public dynamic class Herbe1er03BitmapData extends BitmapData { public function Herbe1er03BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 150
//ImageMenu (ImageMenu) package { import flash.display.*; public dynamic class ImageMenu extends Sprite { } }//package
Section 151
//InfoAerial (InfoAerial) package { import flash.display.*; public dynamic class InfoAerial extends Sprite { } }//package
Section 152
//InfoCharacter (InfoCharacter) package { import flash.display.*; public dynamic class InfoCharacter extends Sprite { } }//package
Section 153
//InfoSpecial (InfoSpecial) package { import flash.display.*; public dynamic class InfoSpecial extends Sprite { } }//package
Section 154
//InfoStart (InfoStart) package { import flash.display.*; public dynamic class InfoStart extends Sprite { } }//package
Section 155
//Kakashi (Kakashi) package { import flash.display.*; public dynamic class Kakashi extends MovieClip { public function Kakashi(){ addFrameScript(8, frame9, 22, frame23, 92, frame93); } function frame93(){ stop(); } function frame23(){ stop(); stop(); } function frame9(){ stop(); } } }//package
Section 156
//Kiss (Kiss) package { import flash.media.*; public dynamic class Kiss extends Sound { } }//package
Section 157
//Kiss2 (Kiss2) package { import flash.media.*; public dynamic class Kiss2 extends Sound { } }//package
Section 158
//Klakson2 (Klakson2) package { import flash.media.*; public dynamic class Klakson2 extends Sound { } }//package
Section 159
//Klaxon (Klaxon) package { import flash.media.*; public dynamic class Klaxon extends Sound { } }//package
Section 160
//Konata (Konata) package { import flash.display.*; public dynamic class Konata extends MovieClip { public function Konata(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 161
//KonataAction (KonataAction) package { import flash.media.*; public dynamic class KonataAction extends Sound { } }//package
Section 162
//KonataGoodJob (KonataGoodJob) package { import flash.media.*; public dynamic class KonataGoodJob extends Sound { } }//package
Section 163
//KonataMask (KonataMask) package { import flash.display.*; public dynamic class KonataMask extends MovieClip { public function KonataMask(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 164
//KonataTete (KonataTete) package { import flash.display.*; public dynamic class KonataTete extends Sprite { } }//package
Section 165
//KonataTete2 (KonataTete2) package { import flash.display.*; public dynamic class KonataTete2 extends Sprite { } }//package
Section 166
//Lara (Lara) package { import flash.display.*; public dynamic class Lara extends MovieClip { public function Lara(){ addFrameScript(0, frame1, 16, frame17, 33, frame34, 65, frame66, 107, frame108); } function frame1(){ stop(); } function frame17(){ gotoAndPlay("saut"); } function frame108(){ stop(); } function frame34(){ gotoAndPlay("saut"); } function frame66(){ gotoAndStop(1); } } }//package
Section 167
//Luffy (Luffy) package { import flash.display.*; public dynamic class Luffy extends MovieClip { public function Luffy(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ gotoAndPlay("special"); } } }//package
Section 168
//MenuZik (MenuZik) package { import flash.media.*; public dynamic class MenuZik extends Sound { } }//package
Section 169
//MochiBot (MochiBot) package { import flash.display.*; import flash.system.*; import flash.net.*; public dynamic class MochiBot extends Sprite { public function MochiBot(){ super(); } public static function track(parent:Sprite, tag:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var self:MochiBot = new (MochiBot); parent.addChild(self); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var server:String = "http://core.mochibot.com/my/core.swf"; var lv:URLVariables = new URLVariables(); lv["sb"] = Security.sandboxType; lv["v"] = Capabilities.version; lv["swfid"] = tag; lv["mv"] = "8"; lv["fv"] = "9"; var url:String = self.root.loaderInfo.loaderURL; if (url.indexOf("http") == 0){ lv["url"] = url; } else { lv["url"] = "local"; }; var req:URLRequest = new URLRequest(server); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; var loader:Loader = new Loader(); self.addChild(loader); loader.load(req); return (self); } } }//package
Section 170
//Murloc (Murloc) package { import flash.media.*; public dynamic class Murloc extends Sound { } }//package
Section 171
//OhYeah (OhYeah) package { import flash.media.*; public dynamic class OhYeah extends Sound { } }//package
Section 172
//ParapluieSound (ParapluieSound) package { import flash.media.*; public dynamic class ParapluieSound extends Sound { } }//package
Section 173
//PlayAgain (PlayAgain) package { import flash.display.*; public dynamic class PlayAgain extends Sprite { } }//package
Section 174
//Police (Police) package { import flash.text.*; public dynamic class Police extends Font { } }//package
Section 175
//Pouet (Pouet) package { import flash.media.*; public dynamic class Pouet extends Sound { } }//package
Section 176
//Prout (Prout) package { import flash.media.*; public dynamic class Prout extends Sound { } }//package
Section 177
//RaikiriSound (RaikiriSound) package { import flash.media.*; public dynamic class RaikiriSound extends Sound { } }//package
Section 178
//RoueBatmobile (RoueBatmobile) package { import flash.display.*; public dynamic class RoueBatmobile extends Sprite { } }//package
Section 179
//Saut (Saut) package { import flash.media.*; public dynamic class Saut extends Sound { } }//package
Section 180
//SaveScore (SaveScore) package { import flash.display.*; public dynamic class SaveScore extends Sprite { } }//package
Section 181
//SolBitmapData (SolBitmapData) package { import flash.display.*; public dynamic class SolBitmapData extends BitmapData { public function SolBitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 182
//SpeedSound (SpeedSound) package { import flash.media.*; public dynamic class SpeedSound extends Sound { } }//package
Section 183
//Spider (Spider) package { import flash.display.*; public dynamic class Spider extends MovieClip { public function Spider(){ addFrameScript(0, frame1, 59, frame60); } function frame1(){ stop(); } function frame60(){ stop(); } } }//package
Section 184
//Sub (Sub) package { import flash.media.*; public dynamic class Sub extends Sound { } }//package
Section 185
//SuperMC (SuperMC) package { import flash.display.*; public dynamic class SuperMC extends MovieClip { public function SuperMC(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 186
//TeteGros (TeteGros) package { import flash.display.*; public dynamic class TeteGros extends Sprite { } }//package
Section 187
//TeteGrosse (TeteGrosse) package { import flash.display.*; public dynamic class TeteGrosse extends Sprite { } }//package
Section 188
//TeteKakashi (TeteKakashi) package { import flash.display.*; public dynamic class TeteKakashi extends Sprite { } }//package
Section 189
//TeteLara (TeteLara) package { import flash.display.*; public dynamic class TeteLara extends Sprite { } }//package
Section 190
//TeteLuffy (TeteLuffy) package { import flash.display.*; public dynamic class TeteLuffy extends Sprite { } }//package
Section 191
//TeteMeme (TeteMeme) package { import flash.display.*; public dynamic class TeteMeme extends Sprite { } }//package
Section 192
//TeteSpider (TeteSpider) package { import flash.display.*; public dynamic class TeteSpider extends Sprite { } }//package
Section 193
//Tir (Tir) package { import flash.media.*; public dynamic class Tir extends Sound { } }//package
Section 194
//Tire1 (Tire1) package { import flash.media.*; public dynamic class Tire1 extends Sound { } }//package
Section 195
//Tire2 (Tire2) package { import flash.media.*; public dynamic class Tire2 extends Sound { } }//package
Section 196
//TPA (TPA) package { import flash.display.*; public dynamic class TPA extends BitmapData { public function TPA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 197
//Tututu (Tututu) package { import flash.media.*; public dynamic class Tututu extends Sound { } }//package
Section 198
//WaitSprite (WaitSprite) package { import flash.display.*; public dynamic class WaitSprite extends Sprite { } }//package
Section 199
//Valid (Valid) package { import flash.media.*; public dynamic class Valid extends Sound { } }//package
Section 200
//Vieille (Vieille) package { import flash.display.*; public dynamic class Vieille extends MovieClip { public function Vieille(){ addFrameScript(0, frame1, 9, frame10, 68, frame69); } function frame10(){ stop(); } function frame1(){ stop(); } function frame69(){ stop(); } } }//package
Section 201
//Wow (Wow) package { import flash.media.*; public dynamic class Wow extends Sound { } }//package

Library Items

Symbol 1 MovieClip {com.kongregate.as3.client.KongregateAPI} [com.kongregate.as3.client.KongregateAPI]
Symbol 2 Sound {RaikiriSound} [RaikiriSound]
Symbol 3 Sound {Boum} [Boum]
Symbol 4 Sound {KonataAction} [KonataAction]
Symbol 5 Sound {Wow} [Wow]
Symbol 6 Sound {Klakson2} [Klakson2]
Symbol 7 Sound {OhYeah} [OhYeah]
Symbol 8 Sound {Klaxon} [Klaxon]
Symbol 9 Sound {Prout} [Prout]
Symbol 10 Sound {Murloc} [Murloc]
Symbol 11 Sound {Tututu} [Tututu]
Symbol 12 Sound {Sub} [Sub]
Symbol 13 Font {Police} [Police]Used by:109 110 113 114 120 121 124 125 126 127 128 129 130
Symbol 14 Sound {SpeedSound} [SpeedSound]
Symbol 15 Sound {EtirementSound} [EtirementSound]
Symbol 16 Sound {Electricite} [Electricite]
Symbol 17 Sound {ParapluieSound} [ParapluieSound]
Symbol 18 Sound {KonataGoodJob} [KonataGoodJob]
Symbol 19 Sound {Kiss} [Kiss]
Symbol 20 Sound {Kiss2} [Kiss2]
Symbol 21 Sound {ElasticSound} [ElasticSound]
Symbol 22 Sound {Fail} [Fail]
Symbol 23 Sound {Grr} [Grr]
Symbol 24 Sound {Saut} [Saut]
Symbol 25 Sound {Elico} [Elico]
Symbol 26 Sound {Gatling} [Gatling]
Symbol 27 Sound {Pouet} [Pouet]
Symbol 28 Sound {Tire1} [Tire1]
Symbol 29 Sound {Tire2} [Tire2]
Symbol 30 Sound {Valid} [Valid]
Symbol 31 Sound {Tir} [Tir]
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClip {SaveScore} [SaveScore]Uses:32
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {ClickToStart} [ClickToStart]Uses:34
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClip {PlayAgain} [PlayAgain]Uses:36
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClip {WaitSprite} [WaitSprite]Uses:38
Symbol 40 GraphicUsed by:43
Symbol 41 GraphicUsed by:43
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClip {SuperMC} [SuperMC]Uses:40 41 42
Symbol 44 Sound {MenuZik} [MenuZik]
Symbol 45 Sound {GameZik} [GameZik]
Symbol 46 GraphicUsed by:53
Symbol 47 Bitmap {TPA} [TPA]Used by:53
Symbol 48 BitmapUsed by:49
Symbol 49 GraphicUses:48Used by:53
Symbol 50 GraphicUsed by:53
Symbol 51 GraphicUsed by:53
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClip {ImageMenu} [ImageMenu]Uses:46 47 49 50 51 52
Symbol 54 GraphicUsed by:60
Symbol 55 GraphicUsed by:60
Symbol 56 GraphicUsed by:60
Symbol 57 GraphicUsed by:60
Symbol 58 GraphicUsed by:60
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClip {BallMovieClip} [BallMovieClip]Uses:54 55 56 57 58 59
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClip {TeteKakashi} [TeteKakashi]Uses:61Used by:131
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClip {TeteMeme} [TeteMeme]Uses:63Used by:131
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {TeteLuffy} [TeteLuffy]Uses:65Used by:131
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClip {TeteGrosse} [TeteGrosse]Uses:67Used by:131
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClip {TeteLara} [TeteLara]Uses:69Used by:131
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClip {TeteGros} [TeteGros]Uses:71Used by:131
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClip {TeteSpider} [TeteSpider]Uses:73Used by:131
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClip {FumeVecto} [FumeVecto]Uses:75
Symbol 77 GraphicUsed by:80
Symbol 78 GraphicUsed by:80
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClip {ArrowAerial} [ArrowAerial]Uses:77 78 79
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClip {KonataTete} [KonataTete]Uses:81
Symbol 83 GraphicUsed by:102
Symbol 84 GraphicUsed by:102
Symbol 85 GraphicUsed by:102
Symbol 86 GraphicUsed by:102
Symbol 87 GraphicUsed by:102
Symbol 88 GraphicUsed by:102
Symbol 89 GraphicUsed by:102
Symbol 90 GraphicUsed by:102
Symbol 91 GraphicUsed by:102
Symbol 92 GraphicUsed by:102
Symbol 93 GraphicUsed by:102
Symbol 94 GraphicUsed by:102
Symbol 95 GraphicUsed by:102
Symbol 96 GraphicUsed by:102
Symbol 97 GraphicUsed by:102
Symbol 98 GraphicUsed by:102
Symbol 99 GraphicUsed by:102
Symbol 100 GraphicUsed by:102
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClip {CatapultMC} [CatapultMC]Uses:83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClip {ArrowHeight} [ArrowHeight]Uses:103
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClip {BackgroundMain} [BackgroundMain]Uses:105
Symbol 107 BitmapUsed by:108
Symbol 108 GraphicUses:107Used by:111
Symbol 109 TextUses:13Used by:111
Symbol 110 TextUses:13Used by:111
Symbol 111 MovieClip {InfoAerial} [InfoAerial]Uses:108 109 110
Symbol 112 GraphicUsed by:117
Symbol 113 TextUses:13Used by:117
Symbol 114 TextUses:13Used by:117
Symbol 115 BitmapUsed by:116
Symbol 116 GraphicUses:115Used by:117
Symbol 117 MovieClip {InfoSpecial} [InfoSpecial]Uses:112 113 114 116
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:122
Symbol 120 TextUses:13Used by:122
Symbol 121 TextUses:13Used by:122
Symbol 122 MovieClip {InfoStart} [InfoStart]Uses:119 120 121
Symbol 123 GraphicUsed by:131
Symbol 124 TextUses:13Used by:131
Symbol 125 TextUses:13Used by:131
Symbol 126 TextUses:13Used by:131
Symbol 127 TextUses:13Used by:131
Symbol 128 TextUses:13Used by:131
Symbol 129 TextUses:13Used by:131
Symbol 130 TextUses:13Used by:131
Symbol 131 MovieClip {InfoCharacter} [InfoCharacter]Uses:123 124 72 125 70 126 66 127 74 128 64 129 68 130 62
Symbol 132 Bitmap {HaloBitmapData} [HaloBitmapData]Used by:318 320 322 324
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClip {FumeVecto2} [FumeVecto2]Uses:133
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClip {FumeHeart} [FumeHeart]Uses:135
Symbol 137 GraphicUsed by:144
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138Used by:144
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:144
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClipUses:142Used by:144
Symbol 144 MovieClip {Spider} [Spider]Uses:137 139 141 143
Symbol 145 GraphicUsed by:179
Symbol 146 GraphicUsed by:179
Symbol 147 GraphicUsed by:179
Symbol 148 GraphicUsed by:179
Symbol 149 GraphicUsed by:179
Symbol 150 GraphicUsed by:179
Symbol 151 GraphicUsed by:179
Symbol 152 GraphicUsed by:179
Symbol 153 GraphicUsed by:179
Symbol 154 GraphicUsed by:179
Symbol 155 GraphicUsed by:179
Symbol 156 GraphicUsed by:179
Symbol 157 GraphicUsed by:179
Symbol 158 GraphicUsed by:179
Symbol 159 GraphicUsed by:179
Symbol 160 GraphicUsed by:179
Symbol 161 GraphicUsed by:179
Symbol 162 GraphicUsed by:179
Symbol 163 GraphicUsed by:179
Symbol 164 GraphicUsed by:179
Symbol 165 GraphicUsed by:179
Symbol 166 GraphicUsed by:179
Symbol 167 GraphicUsed by:179
Symbol 168 GraphicUsed by:179
Symbol 169 GraphicUsed by:179
Symbol 170 GraphicUsed by:179
Symbol 171 GraphicUsed by:179
Symbol 172 GraphicUsed by:179
Symbol 173 GraphicUsed by:179
Symbol 174 GraphicUsed by:179
Symbol 175 GraphicUsed by:179
Symbol 176 GraphicUsed by:179
Symbol 177 GraphicUsed by:179
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClip {Lara} [Lara]Uses:145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
Symbol 180 Bitmap {Background01BitmapData} [Background01BitmapData]
Symbol 181 Bitmap {FeuillageBackgroundBitmapData} [FeuillageBackgroundBitmapData]
Symbol 182 GraphicUsed by:184
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClip {Konata} [Konata]Uses:182 183
Symbol 185 Bitmap {Herbe1er01BitmapData} [Herbe1er01BitmapData]
Symbol 186 Bitmap {Herbe1er03BitmapData} [Herbe1er03BitmapData]
Symbol 187 Bitmap {Herbe01BitmapData} [Herbe01BitmapData]
Symbol 188 Bitmap {Arbre1st03BitmapData} [Arbre1st03BitmapData]Used by:317
Symbol 189 Bitmap {Arbre1st02BitmapData} [Arbre1st02BitmapData]Used by:323
Symbol 190 Bitmap {Arbre1st01BitmapData} [Arbre1st01BitmapData]Used by:321
Symbol 191 Bitmap {Arbre1st04BitmapData} [Arbre1st04BitmapData]Used by:319
Symbol 192 Bitmap {Herbe03BitmapData} [Herbe03BitmapData]Used by:230
Symbol 193 Bitmap {Herbe02BitmapData} [Herbe02BitmapData]
Symbol 194 GraphicUsed by:228
Symbol 195 GraphicUsed by:228
Symbol 196 GraphicUsed by:228
Symbol 197 GraphicUsed by:228
Symbol 198 GraphicUsed by:228
Symbol 199 GraphicUsed by:228
Symbol 200 GraphicUsed by:228
Symbol 201 GraphicUsed by:228
Symbol 202 GraphicUsed by:228
Symbol 203 GraphicUsed by:228
Symbol 204 GraphicUsed by:228
Symbol 205 GraphicUsed by:228
Symbol 206 GraphicUsed by:228
Symbol 207 GraphicUsed by:228
Symbol 208 GraphicUsed by:228
Symbol 209 GraphicUsed by:228
Symbol 210 GraphicUsed by:228
Symbol 211 GraphicUsed by:228
Symbol 212 GraphicUsed by:228
Symbol 213 GraphicUsed by:228
Symbol 214 GraphicUsed by:228
Symbol 215 GraphicUsed by:216
Symbol 216 MovieClipUses:215Used by:228
Symbol 217 GraphicUsed by:228
Symbol 218 GraphicUsed by:228
Symbol 219 GraphicUsed by:228
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClipUses:220Used by:228
Symbol 222 GraphicUsed by:228
Symbol 223 GraphicUsed by:228
Symbol 224 GraphicUsed by:228
Symbol 225 GraphicUsed by:228
Symbol 226 GraphicUsed by:228
Symbol 227 GraphicUsed by:228
Symbol 228 MovieClip {Kakashi} [Kakashi]Uses:194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 216 217 218 219 221 222 223 224 225 226 227
Symbol 229 Bitmap {SolBitmapData} [SolBitmapData]
Symbol 230 MovieClipUses:192Used by:231 232
Symbol 231 MovieClip {Herbe01Teinte} [Herbe01Teinte]Uses:230
Symbol 232 MovieClip {Herbe03Teinte} [Herbe03Teinte]Uses:230
Symbol 233 GraphicUsed by:256
Symbol 234 GraphicUsed by:256
Symbol 235 GraphicUsed by:256
Symbol 236 GraphicUsed by:256
Symbol 237 GraphicUsed by:256
Symbol 238 GraphicUsed by:256
Symbol 239 GraphicUsed by:256
Symbol 240 GraphicUsed by:256
Symbol 241 GraphicUsed by:256
Symbol 242 GraphicUsed by:256
Symbol 243 GraphicUsed by:256
Symbol 244 GraphicUsed by:256
Symbol 245 GraphicUsed by:256
Symbol 246 GraphicUsed by:256
Symbol 247 GraphicUsed by:256
Symbol 248 GraphicUsed by:256
Symbol 249 GraphicUsed by:256
Symbol 250 GraphicUsed by:256
Symbol 251 GraphicUsed by:256
Symbol 252 GraphicUsed by:256
Symbol 253 GraphicUsed by:256
Symbol 254 GraphicUsed by:256
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClip {Luffy} [Luffy]Uses:233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
Symbol 257 GraphicUsed by:272
Symbol 258 GraphicUsed by:272
Symbol 259 GraphicUsed by:272
Symbol 260 GraphicUsed by:272
Symbol 261 GraphicUsed by:272
Symbol 262 GraphicUsed by:272
Symbol 263 GraphicUsed by:272
Symbol 264 GraphicUsed by:272
Symbol 265 GraphicUsed by:272
Symbol 266 GraphicUsed by:272
Symbol 267 GraphicUsed by:272
Symbol 268 GraphicUsed by:272
Symbol 269 GraphicUsed by:272
Symbol 270 GraphicUsed by:272
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClip {Vieille} [Vieille]Uses:257 258 259 260 261 262 263 264 265 266 267 268 269 270 271
Symbol 273 GraphicUsed by:300
Symbol 274 GraphicUsed by:300
Symbol 275 GraphicUsed by:300
Symbol 276 GraphicUsed by:300
Symbol 277 GraphicUsed by:300
Symbol 278 GraphicUsed by:300
Symbol 279 GraphicUsed by:300
Symbol 280 GraphicUsed by:300
Symbol 281 GraphicUsed by:300
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:282Used by:284
Symbol 284 MovieClip {grosse_fla.coeur_3} [grosse_fla.coeur_3]Uses:283Used by:300
Symbol 285 GraphicUsed by:300
Symbol 286 GraphicUsed by:300
Symbol 287 GraphicUsed by:300
Symbol 288 GraphicUsed by:300
Symbol 289 GraphicUsed by:300
Symbol 290 GraphicUsed by:300
Symbol 291 GraphicUsed by:300
Symbol 292 GraphicUsed by:300
Symbol 293 GraphicUsed by:300
Symbol 294 GraphicUsed by:300
Symbol 295 GraphicUsed by:300
Symbol 296 GraphicUsed by:300
Symbol 297 GraphicUsed by:300
Symbol 298 GraphicUsed by:299
Symbol 299 MovieClipUses:298Used by:300
Symbol 300 MovieClip {Grosse} [Grosse]Uses:273 274 275 276 277 278 279 280 281 284 285 286 287 288 289 290 291 292 293 294 295 296 297 299
Symbol 301 GraphicUsed by:302
Symbol 302 MovieClip {Batman} [Batman]Uses:301
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClip {RoueBatmobile} [RoueBatmobile]Uses:303
Symbol 305 GraphicUsed by:314
Symbol 306 GraphicUsed by:314
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClip {catapulte_fla.Symbole1_4} [catapulte_fla.Symbole1_4]Uses:307Used by:314
Symbol 309 GraphicUsed by:314
Symbol 310 GraphicUsed by:314
Symbol 311 GraphicUsed by:314
Symbol 312 GraphicUsed by:314
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClip {BalezeBear} [BalezeBear]Uses:305 306 308 309 310 311 312 313
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClip {ArrowBalezeBear} [ArrowBalezeBear]Uses:315
Symbol 317 MovieClipUses:188Used by:318
Symbol 318 MovieClip {Arbre03teinte} [Arbre03teinte]Uses:132 317
Symbol 319 MovieClipUses:191Used by:320
Symbol 320 MovieClip {Arbre04teinte} [Arbre04teinte]Uses:132 319
Symbol 321 MovieClipUses:190Used by:322
Symbol 322 MovieClip {Arbre2nd_01} [Arbre2nd_01]Uses:132 321
Symbol 323 MovieClipUses:189Used by:324
Symbol 324 MovieClip {Arbre02teinte} [Arbre02teinte]Uses:132 323
Symbol 325 GraphicUsed by:326
Symbol 326 MovieClip {KonataTete2} [KonataTete2]Uses:325Used by:329
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClipUses:327Used by:329
Symbol 329 MovieClip {KonataMask} [KonataMask]Uses:328 326
Symbol 330 GraphicUsed by:331
Symbol 331 MovieClip {Branche2} [Branche2]Uses:330
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClip {Branche1} [Branche1]Uses:332

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1457 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "com.kongregate.as3.client.KongregateAPI"
ExportAssets (56)Timeline Frame 1Symbol 2 as "RaikiriSound"
ExportAssets (56)Timeline Frame 1Symbol 3 as "Boum"
ExportAssets (56)Timeline Frame 1Symbol 4 as "KonataAction"
ExportAssets (56)Timeline Frame 1Symbol 5 as "Wow"
ExportAssets (56)Timeline Frame 1Symbol 6 as "Klakson2"
ExportAssets (56)Timeline Frame 1Symbol 7 as "OhYeah"
ExportAssets (56)Timeline Frame 1Symbol 8 as "Klaxon"
ExportAssets (56)Timeline Frame 1Symbol 9 as "Prout"
ExportAssets (56)Timeline Frame 1Symbol 10 as "Murloc"
ExportAssets (56)Timeline Frame 1Symbol 11 as "Tututu"
ExportAssets (56)Timeline Frame 1Symbol 12 as "Sub"
ExportAssets (56)Timeline Frame 1Symbol 13 as "Police"
ExportAssets (56)Timeline Frame 1Symbol 14 as "SpeedSound"
ExportAssets (56)Timeline Frame 1Symbol 15 as "EtirementSound"
ExportAssets (56)Timeline Frame 1Symbol 16 as "Electricite"
ExportAssets (56)Timeline Frame 1Symbol 17 as "ParapluieSound"
ExportAssets (56)Timeline Frame 1Symbol 18 as "KonataGoodJob"
ExportAssets (56)Timeline Frame 1Symbol 19 as "Kiss"
ExportAssets (56)Timeline Frame 1Symbol 20 as "Kiss2"
ExportAssets (56)Timeline Frame 1Symbol 21 as "ElasticSound"
ExportAssets (56)Timeline Frame 1Symbol 22 as "Fail"
ExportAssets (56)Timeline Frame 1Symbol 23 as "Grr"
ExportAssets (56)Timeline Frame 1Symbol 24 as "Saut"
ExportAssets (56)Timeline Frame 1Symbol 25 as "Elico"
ExportAssets (56)Timeline Frame 1Symbol 26 as "Gatling"
ExportAssets (56)Timeline Frame 1Symbol 27 as "Pouet"
ExportAssets (56)Timeline Frame 1Symbol 28 as "Tire1"
ExportAssets (56)Timeline Frame 1Symbol 29 as "Tire2"
ExportAssets (56)Timeline Frame 1Symbol 30 as "Valid"
ExportAssets (56)Timeline Frame 1Symbol 31 as "Tir"
ExportAssets (56)Timeline Frame 1Symbol 33 as "SaveScore"
ExportAssets (56)Timeline Frame 1Symbol 35 as "ClickToStart"
ExportAssets (56)Timeline Frame 1Symbol 37 as "PlayAgain"
ExportAssets (56)Timeline Frame 1Symbol 39 as "WaitSprite"
ExportAssets (56)Timeline Frame 1Symbol 43 as "SuperMC"
ExportAssets (56)Timeline Frame 1Symbol 44 as "MenuZik"
ExportAssets (56)Timeline Frame 1Symbol 45 as "GameZik"
ExportAssets (56)Timeline Frame 1Symbol 53 as "ImageMenu"
ExportAssets (56)Timeline Frame 1Symbol 60 as "BallMovieClip"
ExportAssets (56)Timeline Frame 1Symbol 62 as "TeteKakashi"
ExportAssets (56)Timeline Frame 1Symbol 64 as "TeteMeme"
ExportAssets (56)Timeline Frame 1Symbol 66 as "TeteLuffy"
ExportAssets (56)Timeline Frame 1Symbol 68 as "TeteGrosse"
ExportAssets (56)Timeline Frame 1Symbol 70 as "TeteLara"
ExportAssets (56)Timeline Frame 1Symbol 72 as "TeteGros"
ExportAssets (56)Timeline Frame 1Symbol 74 as "TeteSpider"
ExportAssets (56)Timeline Frame 1Symbol 76 as "FumeVecto"
ExportAssets (56)Timeline Frame 1Symbol 80 as "ArrowAerial"
ExportAssets (56)Timeline Frame 1Symbol 82 as "KonataTete"
ExportAssets (56)Timeline Frame 1Symbol 102 as "CatapultMC"
ExportAssets (56)Timeline Frame 1Symbol 104 as "ArrowHeight"
ExportAssets (56)Timeline Frame 1Symbol 47 as "TPA"
ExportAssets (56)Timeline Frame 1Symbol 106 as "BackgroundMain"
ExportAssets (56)Timeline Frame 1Symbol 111 as "InfoAerial"
ExportAssets (56)Timeline Frame 1Symbol 117 as "InfoSpecial"
ExportAssets (56)Timeline Frame 1Symbol 122 as "InfoStart"
ExportAssets (56)Timeline Frame 1Symbol 131 as "InfoCharacter"
ExportAssets (56)Timeline Frame 1Symbol 132 as "HaloBitmapData"
ExportAssets (56)Timeline Frame 1Symbol 134 as "FumeVecto2"
ExportAssets (56)Timeline Frame 1Symbol 136 as "FumeHeart"
ExportAssets (56)Timeline Frame 1Symbol 144 as "Spider"
ExportAssets (56)Timeline Frame 1Symbol 179 as "Lara"
ExportAssets (56)Timeline Frame 1Symbol 180 as "Background01BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 181 as "FeuillageBackgroundBitmapData"
ExportAssets (56)Timeline Frame 1Symbol 184 as "Konata"
ExportAssets (56)Timeline Frame 1Symbol 185 as "Herbe1er01BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 186 as "Herbe1er03BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 187 as "Herbe01BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 188 as "Arbre1st03BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 189 as "Arbre1st02BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 190 as "Arbre1st01BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 191 as "Arbre1st04BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 192 as "Herbe03BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 193 as "Herbe02BitmapData"
ExportAssets (56)Timeline Frame 1Symbol 228 as "Kakashi"
ExportAssets (56)Timeline Frame 1Symbol 229 as "SolBitmapData"
ExportAssets (56)Timeline Frame 1Symbol 231 as "Herbe01Teinte"
ExportAssets (56)Timeline Frame 1Symbol 232 as "Herbe03Teinte"
ExportAssets (56)Timeline Frame 1Symbol 256 as "Luffy"
ExportAssets (56)Timeline Frame 1Symbol 272 as "Vieille"
ExportAssets (56)Timeline Frame 1Symbol 300 as "Grosse"
ExportAssets (56)Timeline Frame 1Symbol 302 as "Batman"
ExportAssets (56)Timeline Frame 1Symbol 304 as "RoueBatmobile"
ExportAssets (56)Timeline Frame 1Symbol 314 as "BalezeBear"
ExportAssets (56)Timeline Frame 1Symbol 316 as "ArrowBalezeBear"
ExportAssets (56)Timeline Frame 1Symbol 318 as "Arbre03teinte"
ExportAssets (56)Timeline Frame 1Symbol 320 as "Arbre04teinte"
ExportAssets (56)Timeline Frame 1Symbol 322 as "Arbre2nd_01"
ExportAssets (56)Timeline Frame 1Symbol 324 as "Arbre02teinte"
ExportAssets (56)Timeline Frame 1Symbol 326 as "KonataTete2"
ExportAssets (56)Timeline Frame 1Symbol 329 as "KonataMask"
ExportAssets (56)Timeline Frame 1Symbol 331 as "Branche2"
ExportAssets (56)Timeline Frame 1Symbol 333 as "Branche1"
ExportAssets (56)Timeline Frame 1Symbol 284 as "grosse_fla.coeur_3"
ExportAssets (56)Timeline Frame 1Symbol 308 as "catapulte_fla.Symbole1_4"
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$Tm$fJttuIRK/hl4UrntLkpHo0."
DebugMX1 (63)Timeline Frame 1
SerialNumber (41)Timeline Frame 1

Labels

"fr_seraf_rabbits_Main"Frame 1
"droit"Symbol 60 MovieClip {BallMovieClip} [BallMovieClip] Frame 1
"love"Symbol 60 MovieClip {BallMovieClip} [BallMovieClip] Frame 7
"glisse"Symbol 60 MovieClip {BallMovieClip} [BallMovieClip] Frame 15
"rotation"Symbol 60 MovieClip {BallMovieClip} [BallMovieClip] Frame 36
"rotLove"Symbol 60 MovieClip {BallMovieClip} [BallMovieClip] Frame 41
"tire"Symbol 102 MovieClip {CatapultMC} [CatapultMC] Frame 1
"launch"Symbol 102 MovieClip {CatapultMC} [CatapultMC] Frame 40
"special"Symbol 144 MovieClip {Spider} [Spider] Frame 16
"tire_droit"Symbol 179 MovieClip {Lara} [Lara] Frame 8
"tire_haut"Symbol 179 MovieClip {Lara} [Lara] Frame 24
"saut"Symbol 179 MovieClip {Lara} [Lara] Frame 44
"special"Symbol 179 MovieClip {Lara} [Lara] Frame 67
"ferme"Symbol 184 MovieClip {Konata} [Konata] Frame 4
"ferme3"Symbol 184 MovieClip {Konata} [Konata] Frame 9
"bas"Symbol 184 MovieClip {Konata} [Konata] Frame 10
"ferme2"Symbol 184 MovieClip {Konata} [Konata] Frame 15
"ferme22"Symbol 184 MovieClip {Konata} [Konata] Frame 21
"buche"Symbol 228 MovieClip {Kakashi} [Kakashi] Frame 10
"special"Symbol 228 MovieClip {Kakashi} [Kakashi] Frame 29
"init"Symbol 256 MovieClip {Luffy} [Luffy] Frame 1
"special"Symbol 256 MovieClip {Luffy} [Luffy] Frame 12
"loop"Symbol 256 MovieClip {Luffy} [Luffy] Frame 14
"shoot"Symbol 256 MovieClip {Luffy} [Luffy] Frame 36
"ouvre"Symbol 272 MovieClip {Vieille} [Vieille] Frame 10
"special"Symbol 272 MovieClip {Vieille} [Vieille] Frame 20
"end"Symbol 300 MovieClip {Grosse} [Grosse] Frame 10
"special"Symbol 300 MovieClip {Grosse} [Grosse] Frame 76
"normal"Symbol 314 MovieClip {BalezeBear} [BalezeBear] Frame 1
"special"Symbol 314 MovieClip {BalezeBear} [BalezeBear] Frame 6
"hit2"Symbol 314 MovieClip {BalezeBear} [BalezeBear] Frame 9
"hit"Symbol 314 MovieClip {BalezeBear} [BalezeBear] Frame 27
"leave"Symbol 314 MovieClip {BalezeBear} [BalezeBear] Frame 38




http://swfchan.com/14/66123/info.shtml
Created: 12/4 -2019 05:50:51 Last modified: 12/4 -2019 05:50:51 Server time: 20/05 -2024 23:02:42