STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 229672 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2596 · P5191 |
This is the info page for Flash #66123 |
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_flaSection 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.transitionsSection 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.transitionsSection 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.transitionsSection 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.transitionsSection 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.transitionsSection 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.transitionsSection 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.transitionsSection 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.transitionsSection 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.eventsSection 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.servicesSection 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.servicesSection 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.servicesSection 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.servicesSection 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.servicesSection 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.servicesSection 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.servicesSection 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.servicesSection 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.servicesSection 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.clientSection 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.clientSection 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.compareSection 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.compareSection 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.compareSection 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.compareSection 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.sortSection 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.sortSection 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.sortSection 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.sortSection 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.dsSection 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.dsSection 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.dsSection 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.dsSection 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.dsSection 35//LinkedListNode (de.polygonal.ds.LinkedListNode) package de.polygonal.ds { public interface LinkedListNode { } }//package de.polygonal.dsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 57//IDisposable (fr.seraf.rabbits.IDisposable) package fr.seraf.rabbits { public interface IDisposable { function dispose():void; } }//package fr.seraf.rabbitsSection 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.rabbitsSection 59//IScrollable (fr.seraf.rabbits.IScrollable) package fr.seraf.rabbits { public interface IScrollable { function move(:Number):void; } }//package fr.seraf.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 73//ScoreContainer (fr.seraf.rabbits.ScoreContainer) package fr.seraf.rabbits { import flash.display.*; dynamic class ScoreContainer extends Sprite { function ScoreContainer(){ super(); } } }//package fr.seraf.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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.rabbitsSection 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_flaSection 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.as3Section 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.as3Section 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.as3Section 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.as3Section 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.errorsSection 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.errorsSection 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.eventsSection 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.interfacesSection 100//IManager (org.goasap.interfaces.IManager) package org.goasap.interfaces { public interface IManager { function reserve(:IManageable):void; function release(:IManageable):void; } }//package org.goasap.interfacesSection 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.interfacesSection 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.interfacesSection 103//IUpdatable (org.goasap.interfaces.IUpdatable) package org.goasap.interfaces { public interface IUpdatable { function update(:Number):void; function get pulseInterval():int; } }//package org.goasap.interfacesSection 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.itemsSection 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.itemsSection 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.goasapSection 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.goasapSection 108//Arbre02teinte (Arbre02teinte) package { import flash.display.*; public dynamic class Arbre02teinte extends Sprite { } }//packageSection 109//Arbre03teinte (Arbre03teinte) package { import flash.display.*; public dynamic class Arbre03teinte extends Sprite { } }//packageSection 110//Arbre04teinte (Arbre04teinte) package { import flash.display.*; public dynamic class Arbre04teinte extends Sprite { } }//packageSection 111//Arbre1st01BitmapData (Arbre1st01BitmapData) package { import flash.display.*; public dynamic class Arbre1st01BitmapData extends BitmapData { public function Arbre1st01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 112//Arbre1st02BitmapData (Arbre1st02BitmapData) package { import flash.display.*; public dynamic class Arbre1st02BitmapData extends BitmapData { public function Arbre1st02BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 113//Arbre1st03BitmapData (Arbre1st03BitmapData) package { import flash.display.*; public dynamic class Arbre1st03BitmapData extends BitmapData { public function Arbre1st03BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 114//Arbre1st04BitmapData (Arbre1st04BitmapData) package { import flash.display.*; public dynamic class Arbre1st04BitmapData extends BitmapData { public function Arbre1st04BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 115//Arbre2nd_01 (Arbre2nd_01) package { import flash.display.*; public dynamic class Arbre2nd_01 extends Sprite { } }//packageSection 116//ArrowAerial (ArrowAerial) package { import flash.display.*; public dynamic class ArrowAerial extends MovieClip { public function ArrowAerial(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//packageSection 117//ArrowBalezeBear (ArrowBalezeBear) package { import flash.display.*; public dynamic class ArrowBalezeBear extends Sprite { } }//packageSection 118//ArrowHeight (ArrowHeight) package { import flash.display.*; public dynamic class ArrowHeight extends Sprite { } }//packageSection 119//Background01BitmapData (Background01BitmapData) package { import flash.display.*; public dynamic class Background01BitmapData extends BitmapData { public function Background01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 120//BackgroundMain (BackgroundMain) package { import flash.display.*; public dynamic class BackgroundMain extends Sprite { } }//packageSection 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(); } } }//packageSection 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(); } } }//packageSection 123//Batman (Batman) package { import flash.display.*; public dynamic class Batman extends Sprite { } }//packageSection 124//Boum (Boum) package { import flash.media.*; public dynamic class Boum extends Sound { } }//packageSection 125//Branche1 (Branche1) package { import flash.display.*; public dynamic class Branche1 extends Sprite { } }//packageSection 126//Branche2 (Branche2) package { import flash.display.*; public dynamic class Branche2 extends Sprite { } }//packageSection 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(); } } }//packageSection 128//ClickToStart (ClickToStart) package { import flash.display.*; public dynamic class ClickToStart extends Sprite { } }//packageSection 129//ElasticSound (ElasticSound) package { import flash.media.*; public dynamic class ElasticSound extends Sound { } }//packageSection 130//Electricite (Electricite) package { import flash.media.*; public dynamic class Electricite extends Sound { } }//packageSection 131//Elico (Elico) package { import flash.media.*; public dynamic class Elico extends Sound { } }//packageSection 132//EtirementSound (EtirementSound) package { import flash.media.*; public dynamic class EtirementSound extends Sound { } }//packageSection 133//Fail (Fail) package { import flash.media.*; public dynamic class Fail extends Sound { } }//packageSection 134//FeuillageBackgroundBitmapData (FeuillageBackgroundBitmapData) package { import flash.display.*; public dynamic class FeuillageBackgroundBitmapData extends BitmapData { public function FeuillageBackgroundBitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 135//FumeHeart (FumeHeart) package { import flash.display.*; public dynamic class FumeHeart extends Sprite { } }//packageSection 136//FumeVecto (FumeVecto) package { import flash.display.*; public dynamic class FumeVecto extends Sprite { } }//packageSection 137//FumeVecto2 (FumeVecto2) package { import flash.display.*; public dynamic class FumeVecto2 extends Sprite { } }//packageSection 138//GameZik (GameZik) package { import flash.media.*; public dynamic class GameZik extends Sound { } }//packageSection 139//Gatling (Gatling) package { import flash.media.*; public dynamic class Gatling extends Sound { } }//packageSection 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(); } } }//packageSection 141//Grr (Grr) package { import flash.media.*; public dynamic class Grr extends Sound { } }//packageSection 142//HaloBitmapData (HaloBitmapData) package { import flash.display.*; public dynamic class HaloBitmapData extends BitmapData { public function HaloBitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 143//Herbe01BitmapData (Herbe01BitmapData) package { import flash.display.*; public dynamic class Herbe01BitmapData extends BitmapData { public function Herbe01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 144//Herbe01Teinte (Herbe01Teinte) package { import flash.display.*; public dynamic class Herbe01Teinte extends Sprite { } }//packageSection 145//Herbe02BitmapData (Herbe02BitmapData) package { import flash.display.*; public dynamic class Herbe02BitmapData extends BitmapData { public function Herbe02BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 146//Herbe03BitmapData (Herbe03BitmapData) package { import flash.display.*; public dynamic class Herbe03BitmapData extends BitmapData { public function Herbe03BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 147//Herbe03Teinte (Herbe03Teinte) package { import flash.display.*; public dynamic class Herbe03Teinte extends Sprite { } }//packageSection 148//Herbe1er01BitmapData (Herbe1er01BitmapData) package { import flash.display.*; public dynamic class Herbe1er01BitmapData extends BitmapData { public function Herbe1er01BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 149//Herbe1er03BitmapData (Herbe1er03BitmapData) package { import flash.display.*; public dynamic class Herbe1er03BitmapData extends BitmapData { public function Herbe1er03BitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 150//ImageMenu (ImageMenu) package { import flash.display.*; public dynamic class ImageMenu extends Sprite { } }//packageSection 151//InfoAerial (InfoAerial) package { import flash.display.*; public dynamic class InfoAerial extends Sprite { } }//packageSection 152//InfoCharacter (InfoCharacter) package { import flash.display.*; public dynamic class InfoCharacter extends Sprite { } }//packageSection 153//InfoSpecial (InfoSpecial) package { import flash.display.*; public dynamic class InfoSpecial extends Sprite { } }//packageSection 154//InfoStart (InfoStart) package { import flash.display.*; public dynamic class InfoStart extends Sprite { } }//packageSection 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(); } } }//packageSection 156//Kiss (Kiss) package { import flash.media.*; public dynamic class Kiss extends Sound { } }//packageSection 157//Kiss2 (Kiss2) package { import flash.media.*; public dynamic class Kiss2 extends Sound { } }//packageSection 158//Klakson2 (Klakson2) package { import flash.media.*; public dynamic class Klakson2 extends Sound { } }//packageSection 159//Klaxon (Klaxon) package { import flash.media.*; public dynamic class Klaxon extends Sound { } }//packageSection 160//Konata (Konata) package { import flash.display.*; public dynamic class Konata extends MovieClip { public function Konata(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//packageSection 161//KonataAction (KonataAction) package { import flash.media.*; public dynamic class KonataAction extends Sound { } }//packageSection 162//KonataGoodJob (KonataGoodJob) package { import flash.media.*; public dynamic class KonataGoodJob extends Sound { } }//packageSection 163//KonataMask (KonataMask) package { import flash.display.*; public dynamic class KonataMask extends MovieClip { public function KonataMask(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//packageSection 164//KonataTete (KonataTete) package { import flash.display.*; public dynamic class KonataTete extends Sprite { } }//packageSection 165//KonataTete2 (KonataTete2) package { import flash.display.*; public dynamic class KonataTete2 extends Sprite { } }//packageSection 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); } } }//packageSection 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"); } } }//packageSection 168//MenuZik (MenuZik) package { import flash.media.*; public dynamic class MenuZik extends Sound { } }//packageSection 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); } } }//packageSection 170//Murloc (Murloc) package { import flash.media.*; public dynamic class Murloc extends Sound { } }//packageSection 171//OhYeah (OhYeah) package { import flash.media.*; public dynamic class OhYeah extends Sound { } }//packageSection 172//ParapluieSound (ParapluieSound) package { import flash.media.*; public dynamic class ParapluieSound extends Sound { } }//packageSection 173//PlayAgain (PlayAgain) package { import flash.display.*; public dynamic class PlayAgain extends Sprite { } }//packageSection 174//Police (Police) package { import flash.text.*; public dynamic class Police extends Font { } }//packageSection 175//Pouet (Pouet) package { import flash.media.*; public dynamic class Pouet extends Sound { } }//packageSection 176//Prout (Prout) package { import flash.media.*; public dynamic class Prout extends Sound { } }//packageSection 177//RaikiriSound (RaikiriSound) package { import flash.media.*; public dynamic class RaikiriSound extends Sound { } }//packageSection 178//RoueBatmobile (RoueBatmobile) package { import flash.display.*; public dynamic class RoueBatmobile extends Sprite { } }//packageSection 179//Saut (Saut) package { import flash.media.*; public dynamic class Saut extends Sound { } }//packageSection 180//SaveScore (SaveScore) package { import flash.display.*; public dynamic class SaveScore extends Sprite { } }//packageSection 181//SolBitmapData (SolBitmapData) package { import flash.display.*; public dynamic class SolBitmapData extends BitmapData { public function SolBitmapData(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 182//SpeedSound (SpeedSound) package { import flash.media.*; public dynamic class SpeedSound extends Sound { } }//packageSection 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(); } } }//packageSection 184//Sub (Sub) package { import flash.media.*; public dynamic class Sub extends Sound { } }//packageSection 185//SuperMC (SuperMC) package { import flash.display.*; public dynamic class SuperMC extends MovieClip { public function SuperMC(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//packageSection 186//TeteGros (TeteGros) package { import flash.display.*; public dynamic class TeteGros extends Sprite { } }//packageSection 187//TeteGrosse (TeteGrosse) package { import flash.display.*; public dynamic class TeteGrosse extends Sprite { } }//packageSection 188//TeteKakashi (TeteKakashi) package { import flash.display.*; public dynamic class TeteKakashi extends Sprite { } }//packageSection 189//TeteLara (TeteLara) package { import flash.display.*; public dynamic class TeteLara extends Sprite { } }//packageSection 190//TeteLuffy (TeteLuffy) package { import flash.display.*; public dynamic class TeteLuffy extends Sprite { } }//packageSection 191//TeteMeme (TeteMeme) package { import flash.display.*; public dynamic class TeteMeme extends Sprite { } }//packageSection 192//TeteSpider (TeteSpider) package { import flash.display.*; public dynamic class TeteSpider extends Sprite { } }//packageSection 193//Tir (Tir) package { import flash.media.*; public dynamic class Tir extends Sound { } }//packageSection 194//Tire1 (Tire1) package { import flash.media.*; public dynamic class Tire1 extends Sound { } }//packageSection 195//Tire2 (Tire2) package { import flash.media.*; public dynamic class Tire2 extends Sound { } }//packageSection 196//TPA (TPA) package { import flash.display.*; public dynamic class TPA extends BitmapData { public function TPA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 197//Tututu (Tututu) package { import flash.media.*; public dynamic class Tututu extends Sound { } }//packageSection 198//WaitSprite (WaitSprite) package { import flash.display.*; public dynamic class WaitSprite extends Sprite { } }//packageSection 199//Valid (Valid) package { import flash.media.*; public dynamic class Valid extends Sound { } }//packageSection 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(); } } }//packageSection 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 Graphic | Used by:33 | |
Symbol 33 MovieClip {SaveScore} [SaveScore] | Uses:32 | |
Symbol 34 Graphic | Used by:35 | |
Symbol 35 MovieClip {ClickToStart} [ClickToStart] | Uses:34 | |
Symbol 36 Graphic | Used by:37 | |
Symbol 37 MovieClip {PlayAgain} [PlayAgain] | Uses:36 | |
Symbol 38 Graphic | Used by:39 | |
Symbol 39 MovieClip {WaitSprite} [WaitSprite] | Uses:38 | |
Symbol 40 Graphic | Used by:43 | |
Symbol 41 Graphic | Used by:43 | |
Symbol 42 Graphic | Used by:43 | |
Symbol 43 MovieClip {SuperMC} [SuperMC] | Uses:40 41 42 | |
Symbol 44 Sound {MenuZik} [MenuZik] | ||
Symbol 45 Sound {GameZik} [GameZik] | ||
Symbol 46 Graphic | Used by:53 | |
Symbol 47 Bitmap {TPA} [TPA] | Used by:53 | |
Symbol 48 Bitmap | Used by:49 | |
Symbol 49 Graphic | Uses:48 | Used by:53 |
Symbol 50 Graphic | Used by:53 | |
Symbol 51 Graphic | Used by:53 | |
Symbol 52 Graphic | Used by:53 | |
Symbol 53 MovieClip {ImageMenu} [ImageMenu] | Uses:46 47 49 50 51 52 | |
Symbol 54 Graphic | Used by:60 | |
Symbol 55 Graphic | Used by:60 | |
Symbol 56 Graphic | Used by:60 | |
Symbol 57 Graphic | Used by:60 | |
Symbol 58 Graphic | Used by:60 | |
Symbol 59 Graphic | Used by:60 | |
Symbol 60 MovieClip {BallMovieClip} [BallMovieClip] | Uses:54 55 56 57 58 59 | |
Symbol 61 Graphic | Used by:62 | |
Symbol 62 MovieClip {TeteKakashi} [TeteKakashi] | Uses:61 | Used by:131 |
Symbol 63 Graphic | Used by:64 | |
Symbol 64 MovieClip {TeteMeme} [TeteMeme] | Uses:63 | Used by:131 |
Symbol 65 Graphic | Used by:66 | |
Symbol 66 MovieClip {TeteLuffy} [TeteLuffy] | Uses:65 | Used by:131 |
Symbol 67 Graphic | Used by:68 | |
Symbol 68 MovieClip {TeteGrosse} [TeteGrosse] | Uses:67 | Used by:131 |
Symbol 69 Graphic | Used by:70 | |
Symbol 70 MovieClip {TeteLara} [TeteLara] | Uses:69 | Used by:131 |
Symbol 71 Graphic | Used by:72 | |
Symbol 72 MovieClip {TeteGros} [TeteGros] | Uses:71 | Used by:131 |
Symbol 73 Graphic | Used by:74 | |
Symbol 74 MovieClip {TeteSpider} [TeteSpider] | Uses:73 | Used by:131 |
Symbol 75 Graphic | Used by:76 | |
Symbol 76 MovieClip {FumeVecto} [FumeVecto] | Uses:75 | |
Symbol 77 Graphic | Used by:80 | |
Symbol 78 Graphic | Used by:80 | |
Symbol 79 Graphic | Used by:80 | |
Symbol 80 MovieClip {ArrowAerial} [ArrowAerial] | Uses:77 78 79 | |
Symbol 81 Graphic | Used by:82 | |
Symbol 82 MovieClip {KonataTete} [KonataTete] | Uses:81 | |
Symbol 83 Graphic | Used by:102 | |
Symbol 84 Graphic | Used by:102 | |
Symbol 85 Graphic | Used by:102 | |
Symbol 86 Graphic | Used by:102 | |
Symbol 87 Graphic | Used by:102 | |
Symbol 88 Graphic | Used by:102 | |
Symbol 89 Graphic | Used by:102 | |
Symbol 90 Graphic | Used by:102 | |
Symbol 91 Graphic | Used by:102 | |
Symbol 92 Graphic | Used by:102 | |
Symbol 93 Graphic | Used by:102 | |
Symbol 94 Graphic | Used by:102 | |
Symbol 95 Graphic | Used by:102 | |
Symbol 96 Graphic | Used by:102 | |
Symbol 97 Graphic | Used by:102 | |
Symbol 98 Graphic | Used by:102 | |
Symbol 99 Graphic | Used by:102 | |
Symbol 100 Graphic | Used by:102 | |
Symbol 101 Graphic | Used 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 Graphic | Used by:104 | |
Symbol 104 MovieClip {ArrowHeight} [ArrowHeight] | Uses:103 | |
Symbol 105 Graphic | Used by:106 | |
Symbol 106 MovieClip {BackgroundMain} [BackgroundMain] | Uses:105 | |
Symbol 107 Bitmap | Used by:108 | |
Symbol 108 Graphic | Uses:107 | Used by:111 |
Symbol 109 Text | Uses:13 | Used by:111 |
Symbol 110 Text | Uses:13 | Used by:111 |
Symbol 111 MovieClip {InfoAerial} [InfoAerial] | Uses:108 109 110 | |
Symbol 112 Graphic | Used by:117 | |
Symbol 113 Text | Uses:13 | Used by:117 |
Symbol 114 Text | Uses:13 | Used by:117 |
Symbol 115 Bitmap | Used by:116 | |
Symbol 116 Graphic | Uses:115 | Used by:117 |
Symbol 117 MovieClip {InfoSpecial} [InfoSpecial] | Uses:112 113 114 116 | |
Symbol 118 Bitmap | Used by:119 | |
Symbol 119 Graphic | Uses:118 | Used by:122 |
Symbol 120 Text | Uses:13 | Used by:122 |
Symbol 121 Text | Uses:13 | Used by:122 |
Symbol 122 MovieClip {InfoStart} [InfoStart] | Uses:119 120 121 | |
Symbol 123 Graphic | Used by:131 | |
Symbol 124 Text | Uses:13 | Used by:131 |
Symbol 125 Text | Uses:13 | Used by:131 |
Symbol 126 Text | Uses:13 | Used by:131 |
Symbol 127 Text | Uses:13 | Used by:131 |
Symbol 128 Text | Uses:13 | Used by:131 |
Symbol 129 Text | Uses:13 | Used by:131 |
Symbol 130 Text | Uses:13 | Used 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 Graphic | Used by:134 | |
Symbol 134 MovieClip {FumeVecto2} [FumeVecto2] | Uses:133 | |
Symbol 135 Graphic | Used by:136 | |
Symbol 136 MovieClip {FumeHeart} [FumeHeart] | Uses:135 | |
Symbol 137 Graphic | Used by:144 | |
Symbol 138 Graphic | Used by:139 | |
Symbol 139 MovieClip | Uses:138 | Used by:144 |
Symbol 140 Graphic | Used by:141 | |
Symbol 141 MovieClip | Uses:140 | Used by:144 |
Symbol 142 Graphic | Used by:143 | |
Symbol 143 MovieClip | Uses:142 | Used by:144 |
Symbol 144 MovieClip {Spider} [Spider] | Uses:137 139 141 143 | |
Symbol 145 Graphic | Used by:179 | |
Symbol 146 Graphic | Used by:179 | |
Symbol 147 Graphic | Used by:179 | |
Symbol 148 Graphic | Used by:179 | |
Symbol 149 Graphic | Used by:179 | |
Symbol 150 Graphic | Used by:179 | |
Symbol 151 Graphic | Used by:179 | |
Symbol 152 Graphic | Used by:179 | |
Symbol 153 Graphic | Used by:179 | |
Symbol 154 Graphic | Used by:179 | |
Symbol 155 Graphic | Used by:179 | |
Symbol 156 Graphic | Used by:179 | |
Symbol 157 Graphic | Used by:179 | |
Symbol 158 Graphic | Used by:179 | |
Symbol 159 Graphic | Used by:179 | |
Symbol 160 Graphic | Used by:179 | |
Symbol 161 Graphic | Used by:179 | |
Symbol 162 Graphic | Used by:179 | |
Symbol 163 Graphic | Used by:179 | |
Symbol 164 Graphic | Used by:179 | |
Symbol 165 Graphic | Used by:179 | |
Symbol 166 Graphic | Used by:179 | |
Symbol 167 Graphic | Used by:179 | |
Symbol 168 Graphic | Used by:179 | |
Symbol 169 Graphic | Used by:179 | |
Symbol 170 Graphic | Used by:179 | |
Symbol 171 Graphic | Used by:179 | |
Symbol 172 Graphic | Used by:179 | |
Symbol 173 Graphic | Used by:179 | |
Symbol 174 Graphic | Used by:179 | |
Symbol 175 Graphic | Used by:179 | |
Symbol 176 Graphic | Used by:179 | |
Symbol 177 Graphic | Used by:179 | |
Symbol 178 Graphic | Used 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 Graphic | Used by:184 | |
Symbol 183 Graphic | Used 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 Graphic | Used by:228 | |
Symbol 195 Graphic | Used by:228 | |
Symbol 196 Graphic | Used by:228 | |
Symbol 197 Graphic | Used by:228 | |
Symbol 198 Graphic | Used by:228 | |
Symbol 199 Graphic | Used by:228 | |
Symbol 200 Graphic | Used by:228 | |
Symbol 201 Graphic | Used by:228 | |
Symbol 202 Graphic | Used by:228 | |
Symbol 203 Graphic | Used by:228 | |
Symbol 204 Graphic | Used by:228 | |
Symbol 205 Graphic | Used by:228 | |
Symbol 206 Graphic | Used by:228 | |
Symbol 207 Graphic | Used by:228 | |
Symbol 208 Graphic | Used by:228 | |
Symbol 209 Graphic | Used by:228 | |
Symbol 210 Graphic | Used by:228 | |
Symbol 211 Graphic | Used by:228 | |
Symbol 212 Graphic | Used by:228 | |
Symbol 213 Graphic | Used by:228 | |
Symbol 214 Graphic | Used by:228 | |
Symbol 215 Graphic | Used by:216 | |
Symbol 216 MovieClip | Uses:215 | Used by:228 |
Symbol 217 Graphic | Used by:228 | |
Symbol 218 Graphic | Used by:228 | |
Symbol 219 Graphic | Used by:228 | |
Symbol 220 Graphic | Used by:221 | |
Symbol 221 MovieClip | Uses:220 | Used by:228 |
Symbol 222 Graphic | Used by:228 | |
Symbol 223 Graphic | Used by:228 | |
Symbol 224 Graphic | Used by:228 | |
Symbol 225 Graphic | Used by:228 | |
Symbol 226 Graphic | Used by:228 | |
Symbol 227 Graphic | Used 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 MovieClip | Uses:192 | Used by:231 232 |
Symbol 231 MovieClip {Herbe01Teinte} [Herbe01Teinte] | Uses:230 | |
Symbol 232 MovieClip {Herbe03Teinte} [Herbe03Teinte] | Uses:230 | |
Symbol 233 Graphic | Used by:256 | |
Symbol 234 Graphic | Used by:256 | |
Symbol 235 Graphic | Used by:256 | |
Symbol 236 Graphic | Used by:256 | |
Symbol 237 Graphic | Used by:256 | |
Symbol 238 Graphic | Used by:256 | |
Symbol 239 Graphic | Used by:256 | |
Symbol 240 Graphic | Used by:256 | |
Symbol 241 Graphic | Used by:256 | |
Symbol 242 Graphic | Used by:256 | |
Symbol 243 Graphic | Used by:256 | |
Symbol 244 Graphic | Used by:256 | |
Symbol 245 Graphic | Used by:256 | |
Symbol 246 Graphic | Used by:256 | |
Symbol 247 Graphic | Used by:256 | |
Symbol 248 Graphic | Used by:256 | |
Symbol 249 Graphic | Used by:256 | |
Symbol 250 Graphic | Used by:256 | |
Symbol 251 Graphic | Used by:256 | |
Symbol 252 Graphic | Used by:256 | |
Symbol 253 Graphic | Used by:256 | |
Symbol 254 Graphic | Used by:256 | |
Symbol 255 Graphic | Used 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 Graphic | Used by:272 | |
Symbol 258 Graphic | Used by:272 | |
Symbol 259 Graphic | Used by:272 | |
Symbol 260 Graphic | Used by:272 | |
Symbol 261 Graphic | Used by:272 | |
Symbol 262 Graphic | Used by:272 | |
Symbol 263 Graphic | Used by:272 | |
Symbol 264 Graphic | Used by:272 | |
Symbol 265 Graphic | Used by:272 | |
Symbol 266 Graphic | Used by:272 | |
Symbol 267 Graphic | Used by:272 | |
Symbol 268 Graphic | Used by:272 | |
Symbol 269 Graphic | Used by:272 | |
Symbol 270 Graphic | Used by:272 | |
Symbol 271 Graphic | Used 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 Graphic | Used by:300 | |
Symbol 274 Graphic | Used by:300 | |
Symbol 275 Graphic | Used by:300 | |
Symbol 276 Graphic | Used by:300 | |
Symbol 277 Graphic | Used by:300 | |
Symbol 278 Graphic | Used by:300 | |
Symbol 279 Graphic | Used by:300 | |
Symbol 280 Graphic | Used by:300 | |
Symbol 281 Graphic | Used by:300 | |
Symbol 282 Graphic | Used by:283 | |
Symbol 283 MovieClip | Uses:282 | Used by:284 |
Symbol 284 MovieClip {grosse_fla.coeur_3} [grosse_fla.coeur_3] | Uses:283 | Used by:300 |
Symbol 285 Graphic | Used by:300 | |
Symbol 286 Graphic | Used by:300 | |
Symbol 287 Graphic | Used by:300 | |
Symbol 288 Graphic | Used by:300 | |
Symbol 289 Graphic | Used by:300 | |
Symbol 290 Graphic | Used by:300 | |
Symbol 291 Graphic | Used by:300 | |
Symbol 292 Graphic | Used by:300 | |
Symbol 293 Graphic | Used by:300 | |
Symbol 294 Graphic | Used by:300 | |
Symbol 295 Graphic | Used by:300 | |
Symbol 296 Graphic | Used by:300 | |
Symbol 297 Graphic | Used by:300 | |
Symbol 298 Graphic | Used by:299 | |
Symbol 299 MovieClip | Uses:298 | Used 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 Graphic | Used by:302 | |
Symbol 302 MovieClip {Batman} [Batman] | Uses:301 | |
Symbol 303 Graphic | Used by:304 | |
Symbol 304 MovieClip {RoueBatmobile} [RoueBatmobile] | Uses:303 | |
Symbol 305 Graphic | Used by:314 | |
Symbol 306 Graphic | Used by:314 | |
Symbol 307 Graphic | Used by:308 | |
Symbol 308 MovieClip {catapulte_fla.Symbole1_4} [catapulte_fla.Symbole1_4] | Uses:307 | Used by:314 |
Symbol 309 Graphic | Used by:314 | |
Symbol 310 Graphic | Used by:314 | |
Symbol 311 Graphic | Used by:314 | |
Symbol 312 Graphic | Used by:314 | |
Symbol 313 Graphic | Used by:314 | |
Symbol 314 MovieClip {BalezeBear} [BalezeBear] | Uses:305 306 308 309 310 311 312 313 | |
Symbol 315 Graphic | Used by:316 | |
Symbol 316 MovieClip {ArrowBalezeBear} [ArrowBalezeBear] | Uses:315 | |
Symbol 317 MovieClip | Uses:188 | Used by:318 |
Symbol 318 MovieClip {Arbre03teinte} [Arbre03teinte] | Uses:132 317 | |
Symbol 319 MovieClip | Uses:191 | Used by:320 |
Symbol 320 MovieClip {Arbre04teinte} [Arbre04teinte] | Uses:132 319 | |
Symbol 321 MovieClip | Uses:190 | Used by:322 |
Symbol 322 MovieClip {Arbre2nd_01} [Arbre2nd_01] | Uses:132 321 | |
Symbol 323 MovieClip | Uses:189 | Used by:324 |
Symbol 324 MovieClip {Arbre02teinte} [Arbre02teinte] | Uses:132 323 | |
Symbol 325 Graphic | Used by:326 | |
Symbol 326 MovieClip {KonataTete2} [KonataTete2] | Uses:325 | Used by:329 |
Symbol 327 Graphic | Used by:328 | |
Symbol 328 MovieClip | Uses:327 | Used by:329 |
Symbol 329 MovieClip {KonataMask} [KonataMask] | Uses:328 326 | |
Symbol 330 Graphic | Used by:331 | |
Symbol 331 MovieClip {Branche2} [Branche2] | Uses:330 | |
Symbol 332 Graphic | Used by:333 | |
Symbol 333 MovieClip {Branche1} [Branche1] | Uses:332 |
Special Tags
FileAttributes (69) | Timeline Frame 1 | Access local files only, Metadata present, AS3. |
SWFMetaData (77) | Timeline Frame 1 | 457 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..." |
ScriptLimits (65) | Timeline Frame 1 | MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds |
ExportAssets (56) | Timeline Frame 1 | Symbol 1 as "com.kongregate.as3.client.KongregateAPI" |
ExportAssets (56) | Timeline Frame 1 | Symbol 2 as "RaikiriSound" |
ExportAssets (56) | Timeline Frame 1 | Symbol 3 as "Boum" |
ExportAssets (56) | Timeline Frame 1 | Symbol 4 as "KonataAction" |
ExportAssets (56) | Timeline Frame 1 | Symbol 5 as "Wow" |
ExportAssets (56) | Timeline Frame 1 | Symbol 6 as "Klakson2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 7 as "OhYeah" |
ExportAssets (56) | Timeline Frame 1 | Symbol 8 as "Klaxon" |
ExportAssets (56) | Timeline Frame 1 | Symbol 9 as "Prout" |
ExportAssets (56) | Timeline Frame 1 | Symbol 10 as "Murloc" |
ExportAssets (56) | Timeline Frame 1 | Symbol 11 as "Tututu" |
ExportAssets (56) | Timeline Frame 1 | Symbol 12 as "Sub" |
ExportAssets (56) | Timeline Frame 1 | Symbol 13 as "Police" |
ExportAssets (56) | Timeline Frame 1 | Symbol 14 as "SpeedSound" |
ExportAssets (56) | Timeline Frame 1 | Symbol 15 as "EtirementSound" |
ExportAssets (56) | Timeline Frame 1 | Symbol 16 as "Electricite" |
ExportAssets (56) | Timeline Frame 1 | Symbol 17 as "ParapluieSound" |
ExportAssets (56) | Timeline Frame 1 | Symbol 18 as "KonataGoodJob" |
ExportAssets (56) | Timeline Frame 1 | Symbol 19 as "Kiss" |
ExportAssets (56) | Timeline Frame 1 | Symbol 20 as "Kiss2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 21 as "ElasticSound" |
ExportAssets (56) | Timeline Frame 1 | Symbol 22 as "Fail" |
ExportAssets (56) | Timeline Frame 1 | Symbol 23 as "Grr" |
ExportAssets (56) | Timeline Frame 1 | Symbol 24 as "Saut" |
ExportAssets (56) | Timeline Frame 1 | Symbol 25 as "Elico" |
ExportAssets (56) | Timeline Frame 1 | Symbol 26 as "Gatling" |
ExportAssets (56) | Timeline Frame 1 | Symbol 27 as "Pouet" |
ExportAssets (56) | Timeline Frame 1 | Symbol 28 as "Tire1" |
ExportAssets (56) | Timeline Frame 1 | Symbol 29 as "Tire2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 30 as "Valid" |
ExportAssets (56) | Timeline Frame 1 | Symbol 31 as "Tir" |
ExportAssets (56) | Timeline Frame 1 | Symbol 33 as "SaveScore" |
ExportAssets (56) | Timeline Frame 1 | Symbol 35 as "ClickToStart" |
ExportAssets (56) | Timeline Frame 1 | Symbol 37 as "PlayAgain" |
ExportAssets (56) | Timeline Frame 1 | Symbol 39 as "WaitSprite" |
ExportAssets (56) | Timeline Frame 1 | Symbol 43 as "SuperMC" |
ExportAssets (56) | Timeline Frame 1 | Symbol 44 as "MenuZik" |
ExportAssets (56) | Timeline Frame 1 | Symbol 45 as "GameZik" |
ExportAssets (56) | Timeline Frame 1 | Symbol 53 as "ImageMenu" |
ExportAssets (56) | Timeline Frame 1 | Symbol 60 as "BallMovieClip" |
ExportAssets (56) | Timeline Frame 1 | Symbol 62 as "TeteKakashi" |
ExportAssets (56) | Timeline Frame 1 | Symbol 64 as "TeteMeme" |
ExportAssets (56) | Timeline Frame 1 | Symbol 66 as "TeteLuffy" |
ExportAssets (56) | Timeline Frame 1 | Symbol 68 as "TeteGrosse" |
ExportAssets (56) | Timeline Frame 1 | Symbol 70 as "TeteLara" |
ExportAssets (56) | Timeline Frame 1 | Symbol 72 as "TeteGros" |
ExportAssets (56) | Timeline Frame 1 | Symbol 74 as "TeteSpider" |
ExportAssets (56) | Timeline Frame 1 | Symbol 76 as "FumeVecto" |
ExportAssets (56) | Timeline Frame 1 | Symbol 80 as "ArrowAerial" |
ExportAssets (56) | Timeline Frame 1 | Symbol 82 as "KonataTete" |
ExportAssets (56) | Timeline Frame 1 | Symbol 102 as "CatapultMC" |
ExportAssets (56) | Timeline Frame 1 | Symbol 104 as "ArrowHeight" |
ExportAssets (56) | Timeline Frame 1 | Symbol 47 as "TPA" |
ExportAssets (56) | Timeline Frame 1 | Symbol 106 as "BackgroundMain" |
ExportAssets (56) | Timeline Frame 1 | Symbol 111 as "InfoAerial" |
ExportAssets (56) | Timeline Frame 1 | Symbol 117 as "InfoSpecial" |
ExportAssets (56) | Timeline Frame 1 | Symbol 122 as "InfoStart" |
ExportAssets (56) | Timeline Frame 1 | Symbol 131 as "InfoCharacter" |
ExportAssets (56) | Timeline Frame 1 | Symbol 132 as "HaloBitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 134 as "FumeVecto2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 136 as "FumeHeart" |
ExportAssets (56) | Timeline Frame 1 | Symbol 144 as "Spider" |
ExportAssets (56) | Timeline Frame 1 | Symbol 179 as "Lara" |
ExportAssets (56) | Timeline Frame 1 | Symbol 180 as "Background01BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 181 as "FeuillageBackgroundBitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 184 as "Konata" |
ExportAssets (56) | Timeline Frame 1 | Symbol 185 as "Herbe1er01BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 186 as "Herbe1er03BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 187 as "Herbe01BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 188 as "Arbre1st03BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 189 as "Arbre1st02BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 190 as "Arbre1st01BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 191 as "Arbre1st04BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 192 as "Herbe03BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 193 as "Herbe02BitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 228 as "Kakashi" |
ExportAssets (56) | Timeline Frame 1 | Symbol 229 as "SolBitmapData" |
ExportAssets (56) | Timeline Frame 1 | Symbol 231 as "Herbe01Teinte" |
ExportAssets (56) | Timeline Frame 1 | Symbol 232 as "Herbe03Teinte" |
ExportAssets (56) | Timeline Frame 1 | Symbol 256 as "Luffy" |
ExportAssets (56) | Timeline Frame 1 | Symbol 272 as "Vieille" |
ExportAssets (56) | Timeline Frame 1 | Symbol 300 as "Grosse" |
ExportAssets (56) | Timeline Frame 1 | Symbol 302 as "Batman" |
ExportAssets (56) | Timeline Frame 1 | Symbol 304 as "RoueBatmobile" |
ExportAssets (56) | Timeline Frame 1 | Symbol 314 as "BalezeBear" |
ExportAssets (56) | Timeline Frame 1 | Symbol 316 as "ArrowBalezeBear" |
ExportAssets (56) | Timeline Frame 1 | Symbol 318 as "Arbre03teinte" |
ExportAssets (56) | Timeline Frame 1 | Symbol 320 as "Arbre04teinte" |
ExportAssets (56) | Timeline Frame 1 | Symbol 322 as "Arbre2nd_01" |
ExportAssets (56) | Timeline Frame 1 | Symbol 324 as "Arbre02teinte" |
ExportAssets (56) | Timeline Frame 1 | Symbol 326 as "KonataTete2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 329 as "KonataMask" |
ExportAssets (56) | Timeline Frame 1 | Symbol 331 as "Branche2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 333 as "Branche1" |
ExportAssets (56) | Timeline Frame 1 | Symbol 284 as "grosse_fla.coeur_3" |
ExportAssets (56) | Timeline Frame 1 | Symbol 308 as "catapulte_fla.Symbole1_4" |
EnableDebugger2 (64) | Timeline Frame 1 | 31 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 |
|