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

swfchan turned sixteen years old today! (5may2024)

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

461959_MoonWish.swf

This is the info page for
Flash #43120

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


ActionScript [AS3]
Section 1
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.0.0.0"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 2
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.0.0.0"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 3
//FontAsset (mx.core.FontAsset) package mx.core { import flash.text.*; public class FontAsset extends Font implements IFlexAsset { mx_internal static const VERSION:String = "3.0.0.0"; } }//package mx.core
Section 4
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 5
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 6
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 7
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 8
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.0.0.0"; } }//package mx.core
Section 9
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.0.0.0"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var _local2:String; var _local4:String; var _local5:Array; var _local3:DisplayObject = _arg1; while (_local3 != null) { if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){ break; }; _local4 = _local3.name; if ((_local3 is IRepeaterClient)){ _local5 = IRepeaterClient(_local3).instanceIndices; if (_local5){ _local4 = (_local4 + (("[" + _local5.join("][")) + "]")); }; }; _local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2); _local3 = _local3.parent; }; return (_local2); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 10
//Boat (sitting.Boat) package sitting { public class Boat extends Animated { private static var img:Class = Boat_img; public function Boat(){ super(new img().bitmapData); anchor.x = (w / 2); anchor.y = h; z = Sitting.Z_BOAT; floats = true; } private function overMe(_arg1:Entity):Boolean{ return ((((_arg1.restingOver == this)) && ((_arg1 is Person)))); } public function rower():Person{ var _local1:Array = world.filterEntities(overMe); var _local2:int; while (_local2 != _local1.length) { if ((_local1[_local2] as Person).rowingSpeed() > 0){ return (Person(_local1[_local2])); }; _local2++; }; return (null); } } }//package sitting
Section 11
//Boat_img (sitting.Boat_img) package sitting { import mx.core.*; public class Boat_img extends BitmapAsset { } }//package sitting
Section 12
//Boy (sitting.Boy) package sitting { import flash.geom.*; import utils.*; public class Boy extends Person { private var moonAnim:Animation; public var hasMoon:Boolean;// = false private static var img:Class = Boy_img; private static var img_rowing:Class = Boy_img_rowing; private static var img_falling:Class = Boy_img_falling; private static var img_mooned:Class = Boy_img_mooned; public function Boy(){ super(new img().bitmapData, 10, 18); rowingAnim = new Animation(new img_rowing().bitmapData, 13, 19, 250); sittingAnim = new Animation(new img().bitmapData, 13, 18, 0); fallingAnim = new Animation(new img_falling().bitmapData, 13, 18, 200); moonAnim = new Animation(new img_mooned().bitmapData, 16, 18, 0); anim = sittingAnim; anim.play(true); updates.unshift(doFall, doSitHappily, doRow, doSmallMoon, doWatchGirl, doBeSad, doWatchMoon); } protected function doWatchGirl():Boolean{ if (((Sitting.girl.isOnMoon()) && (Sitting.girl.isHarping()))){ anim = sittingAnim; anim.play(true); expression.seek(Sitting.girl); return (true); }; return (false); } override protected function eyes():Point{ var _local1:Point = new Point(6, 5); if (anim == fallingAnim){ _local1.x = (_local1.x - 3); _local1.y = (_local1.y - 3); } else { if (anim == rowingAnim){ _local1.x = (_local1.x + 1); _local1.y = (_local1.y - 4); } else { if (anim == moonAnim){ _local1.x = (_local1.x - 3); } else { if (anim == sittingAnim){ _local1.x = (_local1.x + 1); }; }; }; }; if (lookingDir == 1){ _local1.x = (_local1.x - 3); }; return (_local1); } protected function doWatchMoon():Boolean{ if (!Sitting.moon.isGone()){ anim = sittingAnim; anim.play(true); expression.seek(Sitting.moon); return (true); }; return (false); } protected function doBeSad():Boolean{ if (Sitting.moon.isGone()){ anim = sittingAnim; anim.play(true); expression.sad(); return (true); }; return (false); } protected function doSitHappily():Boolean{ if (isOnMoon()){ anim = sittingAnim; anim.play(true); expression.happy(); return (true); }; return (false); } protected function doSmallMoon():Boolean{ if (((!(hasMoon)) && (isTouching(Sitting.smallMoon)))){ hasMoon = true; Sitting.main.removeEntity(Sitting.smallMoon); }; if (hasMoon){ anim = moonAnim; expression.happy(); return (true); }; return (false); } } }//package sitting
Section 13
//Boy_img (sitting.Boy_img) package sitting { import mx.core.*; public class Boy_img extends BitmapAsset { } }//package sitting
Section 14
//Boy_img_falling (sitting.Boy_img_falling) package sitting { import mx.core.*; public class Boy_img_falling extends BitmapAsset { } }//package sitting
Section 15
//Boy_img_mooned (sitting.Boy_img_mooned) package sitting { import mx.core.*; public class Boy_img_mooned extends BitmapAsset { } }//package sitting
Section 16
//Boy_img_rowing (sitting.Boy_img_rowing) package sitting { import mx.core.*; public class Boy_img_rowing extends BitmapAsset { } }//package sitting
Section 17
//Girl (sitting.Girl) package sitting { import flash.geom.*; import mx.core.*; import utils.*; import flash.media.*; public class Girl extends Person { private var music:SoundChannel; private var isSatisfied:Boolean;// = false private var hasHarp:Boolean;// = false private var music_sound:SoundAsset; private var music_asset:Class; private var harpingAnim:Animation; private static const ACTIVITY_HARPING:int = 2; private static var img_sitting:Class = Girl_img_sitting; private static var img_harp:Class = Girl_img_harp; private static var img_fall:Class = Girl_img_fall; private static var img:Class = Girl_img; public function Girl(){ music_asset = Girl_music_asset; super(new img_sitting().bitmapData, 13, 19, 250); music_sound = (new music_asset() as SoundAsset); anim.play(true); rowingAnim = new Animation(new img().bitmapData, 13, 19, 250); fallingAnim = new Animation(new img_fall().bitmapData, 13, 19, 150); sittingAnim = new Animation(new img_sitting().bitmapData, 13, 19, 0); harpingAnim = new Animation(new img_harp().bitmapData, 13, 19, 800); harpingAnim.play(true); fallingAnim.play(true); anim = rowingAnim; updates.unshift(doFall, doRow, doPlayHarp, doBeAngry, doBeSad, doWantToHarp, doBeRegretful, doSit); } override public function onRemoved():void{ if (music != null){ music.stop(); }; super.onRemoved(); } public function isHarping():Boolean{ return (hasHarp); } protected function doBeRegretful():Boolean{ if (Sitting.boy.expression.status == Expression.SAD){ activity = NONE; anim = sittingAnim; anim.stop(); expression.guilty(Sitting.boy); return (true); }; return (false); } override protected function eyes():Point{ var _local1:Point = new Point(7, 6); if (isFalling){ _local1.y = 5; } else { if (anim == rowingAnim){ _local1.y = (_local1.y - 4); } else { if (anim == harpingAnim){ _local1.x = (_local1.x - 3); _local1.y = (_local1.y + 1); }; }; }; if (lookingDir == 1){ if (anim != harpingAnim){ _local1.x = (_local1.x - 6); }; }; return (_local1); } protected function doSit():Boolean{ activity = NONE; anim = sittingAnim; anim.stop(); expression.guilty(Sitting.boy); return (false); } protected function doWantToHarp():Boolean{ if (((((!(isHarping())) && (Sitting.boy.isOnBoat()))) && (isOnMoon()))){ lookingDir = ((area().x > Sitting.boy.area().x)) ? 1 : 0; activity = NONE; anim = sittingAnim; anim.stop(); expression.seek(Sitting.boy); hasHarp = true; music = music_sound.play(0, 5); return (doPlayHarp()); }; return (false); } protected function doPlayHarp():Boolean{ if (hasHarp){ isSatisfied = true; activity = ACTIVITY_HARPING; expression.happy(); anim = harpingAnim; return (true); }; return (false); } override public function chaseMoon():Boolean{ return (Sitting.boy.isOnMoon()); } protected function doBeSad():Boolean{ if (Sitting.boy.isGone()){ if (!isHarping()){ activity = NONE; anim = sittingAnim; anim.stop(); expression.sad(); return (true); }; }; return (false); } protected function doBeAngry():Boolean{ if (Sitting.boy.hasMoon){ expression.angry(Sitting.boy); return (true); }; return (false); } override public function getGravityPull():Number{ return (0.75); } override public function update():void{ isSatisfied = false; activity = NONE; super.update(); } } }//package sitting
Section 18
//Girl_img (sitting.Girl_img) package sitting { import mx.core.*; public class Girl_img extends BitmapAsset { } }//package sitting
Section 19
//Girl_img_fall (sitting.Girl_img_fall) package sitting { import mx.core.*; public class Girl_img_fall extends BitmapAsset { } }//package sitting
Section 20
//Girl_img_harp (sitting.Girl_img_harp) package sitting { import mx.core.*; public class Girl_img_harp extends BitmapAsset { } }//package sitting
Section 21
//Girl_img_sitting (sitting.Girl_img_sitting) package sitting { import mx.core.*; public class Girl_img_sitting extends BitmapAsset { } }//package sitting
Section 22
//Girl_music_asset (sitting.Girl_music_asset) package sitting { import mx.core.*; public class Girl_music_asset extends SoundAsset { } }//package sitting
Section 23
//Gull (sitting.Gull) package sitting { import flash.geom.*; import utils.*; public class Gull extends Animated { private static var img:Class = Gull_img; public function Gull(){ super(new img().bitmapData, 15, 12, 200); anim.play(true); anchor.y = (h / 2); gravity = false; z = Sitting.Z_BIRD; } override public function update():void{ x = (x - 0.5); if (x < (-(w) * 3)){ teleport(world.w, Utils.rand(39, (95 - h))); }; super.update(); } override public function area():Rectangle{ var _local1:Rectangle = super.area(); _local1.y = (_local1.y + 6); _local1.height = (_local1.height - 6); return (_local1); } } }//package sitting
Section 24
//Gull_img (sitting.Gull_img) package sitting { import mx.core.*; public class Gull_img extends BitmapAsset { } }//package sitting
Section 25
//Moon (sitting.Moon) package sitting { public class Moon extends Animated { private var horizon:Number; private static var img:Class = Moon_img; public function Moon(){ super(new img().bitmapData); anchor.x = (w / 2); anchor.y = (h / 2); gravity = false; z = Sitting.Z_MOON; } override public function update():void{ var _local1:Array = world.filterEntities(overMe); if (_local1.length == 0){ y = (y - 0.2); } else { if (distanceToHorizon() > 0){ y = (y + 0.2); }; }; if (y > horizon){ y = horizon; }; if (area().x < ((MoonWish.WIDTH - w) - 2)){ x = (x + Sitting.SCENE_SPEED); }; var _local2:Person = Sitting.boat.rower(); if (_local2 != null){ x = (x - _local2.rowingSpeed()); }; super.update(); } override public function onAdded():void{ horizon = y; super.onAdded(); } public function distanceToHorizon():Number{ return ((horizon - y)); } public function isGone():Boolean{ return ((y < 0)); } private function overMe(_arg1:Entity):Boolean{ return ((((_arg1.restingOver == this)) && ((_arg1 is Person)))); } private function isFar():Boolean{ return ((x > 75)); } } }//package sitting
Section 26
//Moon_img (sitting.Moon_img) package sitting { import mx.core.*; public class Moon_img extends BitmapAsset { } }//package sitting
Section 27
//Person (sitting.Person) package sitting { import flash.display.*; import flash.geom.*; import utils.*; public class Person extends Animated { protected var rowingFast:Boolean;// = false private var heart:BitmapData; protected var updates:Array; protected var activity:int;// = 0 public var expression:Expression; public var drown:Boolean;// = false protected var rowingAnim:Animation; protected var sittingAnim:Animation; protected var fallingAnim:Animation; protected static const NONE:int = 0; protected static const ACTIVITY_ROWING:int = 1; private static var img_love:Class = Person_img_love; public function Person(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int=-1){ updates = new Array(); super(_arg1, _arg2, _arg3, _arg4); heart = new img_love().bitmapData; anchor.y = h; anchor.x = (w / 2); expression = new Expression(this); z = Sitting.Z_GIRL; } protected function seekOther():void{ lookingDir = ((area().x < myOther.area().x)) ? 0 : 1; expression.seek(myOther); } override public function update():void{ var _local1:int; while (_local1 != updates.length) { if (updates[_local1]()){ break; }; _local1++; }; super.update(); } override public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ super.draw(_arg1, _arg2, _arg3); expression.draw(_arg1, (_arg2 + eyes().x), (_arg3 + eyes().y)); if (expression.status == Expression.HAPPY){ if (lookingDir == 0){ Utils.drawImage(_arg1, heart, ((_arg2 + (w / 2)) + 3), (_arg3 - 2)); } else { Utils.drawImage(_arg1, heart, (((_arg2 + (w / 2)) - heart.width) - 3), (_arg3 - 2)); }; }; } override public function area():Rectangle{ var _local1:Rectangle = super.area(); if (anim == rowingAnim){ _local1.height = (rowingAnim.strip.frameH - 4); }; return (_local1); } public function isOnBoat():Boolean{ return ((((restingOver == Sitting.boat)) && (!(Sitting.boat.isFalling)))); } public function isOnMoon():Boolean{ return ((((restingOver == Sitting.moon)) && (!(isFalling)))); } public function get myOther():Entity{ return (((this == Sitting.boy)) ? Sitting.moon : Sitting.boy); } public function chaseMoon():Boolean{ return (true); } public function rowingSpeed():Number{ if (activity == ACTIVITY_ROWING){ if (rowingFast){ return ((Sitting.SCENE_SPEED * 2)); }; return (Sitting.SCENE_SPEED); }; return (0); } protected function eyes():Point{ return (new Point()); } override public function canHit(_arg1:Entity):Boolean{ if ((_arg1 is Person)){ return (false); }; return (super.canHit(_arg1)); } protected function doFall():Boolean{ if (isFalling){ anim = fallingAnim; anim.play(true); expression.falling(); if (Sitting.water.isSubmerged(this)){ drown = true; }; return (true); }; return (false); } protected function doRow():Boolean{ if (((((chaseMoon()) && (!(Sitting.moon.isGone())))) && (isOnBoat()))){ activity = ACTIVITY_ROWING; anim = rowingAnim; y = (y + 4); if (Math.abs((Sitting.moon.x - Sitting.boat.x)) > Sitting.IDEAL_MOON_DISTANCE){ rowingFast = true; expression.efforting(myOther); anim.setFrameTime(100); } else { rowingFast = false; expression.seek(myOther); anim.setFrameTime(300); }; anim.play(true); lookingDir = ((myOther.area().x > area().x)) ? 0 : 1; return (true); }; return (false); } public function isGone():Boolean{ return (drown); } public function isOnGull():Boolean{ return ((((restingOver == Sitting.gull)) && (!(isFalling)))); } } }//package sitting
Section 28
//Person_img_love (sitting.Person_img_love) package sitting { import mx.core.*; public class Person_img_love extends BitmapAsset { } }//package sitting
Section 29
//Sitting (sitting.Sitting) package sitting { import flash.display.*; import flash.geom.*; import utils.*; public class Sitting extends World { public static const Z_BOAT:int = 3; public static const Z_MOON:int = 1; public static const Z_WATER:int = 6; public static const SCENE_SPEED:Number = 0.25; public static const Z_GIRL:int = 4; public static const Z_BACK:int = 0; public static const Z_HARP:int = 5; public static const Z_BIRD:int = 7; public static var moon:Moon; public static var boat:Boat; public static var boy:Boy; private static var backgroundImage:BitmapData; public static var water:Water; public static var posStarSpinCenter:Point; public static var girl:Girl; private static var back_asset:Class = Sitting_back_asset; public static var smallMoon:SmallMoon; public static var IDEAL_MOON_DISTANCE:Number = 58; public static var gull:Gull; public static var starsBand:Point = new Point(); public static var main:Sitting; public function Sitting(){ super(0, 0, 140, 135); main = this; backgroundImage = new back_asset().bitmapData; addEntityAt((water = new Water())); addEntityAt((boat = new Boat()), 20, water.y); addEntityAt((girl = new Girl()), (boat.x - 10), boat.top()); addEntityAt((moon = new Moon()), 68, 62); IDEAL_MOON_DISTANCE = Math.abs((moon.x - boat.x)); addEntityAt((smallMoon = new SmallMoon()), 75, 62); addEntityAt((boy = new Boy()), (moon.x - 2), moon.top()); posStarSpinCenter = new Point((w / 2), (h - water.area().height)); starsBand.x = 3; starsBand.y = (water.area().y - 20); var _local1 = 7; var _local2:int; while (_local2 != _local1) { addEntityAt(new Star(), (_local2 * (w / _local1)), Utils.rand(starsBand.x, starsBand.y)); _local2++; }; addEntityAt((gull = new Gull()), (w + 20), 50); } override public function isDone():Boolean{ return (!((ending() == null))); } override public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ cache.copyPixels(backgroundImage, new Rectangle(0, 0, backgroundImage.width, backgroundImage.height), new Point(0, 0)); super.draw(_arg1, _arg2, _arg3); } public function ending():String{ if (((boy.drown) || (girl.drown))){ return ("Tragedy Ending"); }; if (((boy.hasMoon) && (!(girl.drown)))){ return ("Bring me the Moon Ending"); }; if (((((boy.isOnBoat()) && (girl.isOnBoat()))) && (moon.isGone()))){ return ("Lost Love Ending"); }; if (((((boy.isOnBoat()) && (girl.isOnMoon()))) && (girl.isHarping()))){ return ("I am your Moon Ending"); }; if (((boy.isOnGull()) && (girl.isOnGull()))){ return ("Seagull Trip Ending"); }; return (null); } } }//package sitting
Section 30
//Sitting_back_asset (sitting.Sitting_back_asset) package sitting { import mx.core.*; public class Sitting_back_asset extends BitmapAsset { } }//package sitting
Section 31
//SmallMoon (sitting.SmallMoon) package sitting { public class SmallMoon extends Animated { private static var img:Class = SmallMoon_img; public function SmallMoon(){ super(new img().bitmapData); anchor.x = (w / 2); anchor.y = (h / 2); gravity = false; background = true; z = Sitting.Z_MOON; visible = true; } override public function update():void{ if (Sitting.moon.isGone()){ visible = true; if (y < 30){ y = (y + 0.2); }; }; super.update(); } override public function onAdded():void{ y = (-(h) * 2.35); super.onAdded(); } } }//package sitting
Section 32
//SmallMoon_img (sitting.SmallMoon_img) package sitting { import mx.core.*; public class SmallMoon_img extends BitmapAsset { } }//package sitting
Section 33
//Star (sitting.Star) package sitting { import flash.geom.*; import utils.*; public class Star extends Animated { private static var img:Class = Star_img; private static var img_star2:Class = Star_img_star2; public function Star(){ super(new img().bitmapData, 10, 10, 100); if (Utils.rand(0, 2) == 0){ anim = new Animation(new img_star2().bitmapData, 10, 10, 100); }; anim.setBouncingSequence(); background = true; gravity = false; z = Sitting.Z_BACK; } override public function update():void{ if (!Sitting.main.isDone()){ if (!isInside()){ x = world.w; y = Utils.rand(Sitting.starsBand.x, Sitting.starsBand.y); }; x = (x - 0.4); } else { anim.play(true); }; super.update(); } override public function onAdded():void{ } public function distToCenter():Number{ return (new Point((x - Sitting.posStarSpinCenter.x), (y - Sitting.posStarSpinCenter.y)).length); } } }//package sitting
Section 34
//Star_img (sitting.Star_img) package sitting { import mx.core.*; public class Star_img extends BitmapAsset { } }//package sitting
Section 35
//Star_img_star2 (sitting.Star_img_star2) package sitting { import mx.core.*; public class Star_img_star2 extends BitmapAsset { } }//package sitting
Section 36
//Water (sitting.Water) package sitting { import flash.display.*; import utils.*; public class Water extends Entity { private var bumpAnim:Animation; private var curve:Sprite; private var offset:Number;// = 0 private var strip:Strip; private var waveStrip:Strip; private static var img:Class = Water_img; private static var bump_asset:Class = Water_bump_asset; private static var img_waves:Class = Water_img_waves; public function Water(){ w = MoonWish.WIDTH; h = 4; y = (MoonWish.HEIGHT - h); z = Sitting.Z_WATER; gravity = false; liquid = true; pixelPerfectCollision = false; strip = new Strip(new img().bitmapData, 34, 14); waveStrip = new Strip(new img_waves().bitmapData, 34, 2); bumpAnim = new Animation(new bump_asset().bitmapData, 58, 11, 300); bumpAnim.play(true); curve = new Sprite(); } public function isSubmerged(_arg1:Entity):Boolean{ return ((_arg1.area().y > y)); } override public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ var _local4:Number = (y + (Sitting.moon.distanceToHorizon() / 3)); var _local5:Number = ((world.w / strip.frameW) + 2); var _local6:Number = (int(offset) - strip.frameW); var _local7:int; while (_local7 != int(_local5)) { strip.draw(_arg1, _local6, y, 0); _local6 = (_local6 + strip.frameW); _local7++; }; } override public function update():void{ bumpAnim.update(); var _local1:Person = Sitting.boat.rower(); if (_local1 != null){ offset = (offset - _local1.rowingSpeed()); offset = (offset % strip.frameW); }; super.update(); } } }//package sitting
Section 37
//Water_bump_asset (sitting.Water_bump_asset) package sitting { import mx.core.*; public class Water_bump_asset extends BitmapAsset { } }//package sitting
Section 38
//Water_img (sitting.Water_img) package sitting { import mx.core.*; public class Water_img extends BitmapAsset { } }//package sitting
Section 39
//Water_img_waves (sitting.Water_img_waves) package sitting { import mx.core.*; public class Water_img_waves extends BitmapAsset { } }//package sitting
Section 40
//Animation (utils.Animation) package utils { import flash.display.*; public class Animation { public var sequence:Array; private var currentTime:int;// = 0 public var strip:Strip; private var frameTime:int; public var currentFrame:int;// = 0 private var looping:Boolean;// = false private var running:Boolean;// = false public function Animation(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int){ strip = new Strip(_arg1, _arg2, _arg3); this.frameTime = _arg4; sequence = new Array(strip.frameCount); var _local5:int; while (_local5 != sequence.length) { sequence[_local5] = _local5; _local5++; }; } public function play(_arg1:Boolean=false):void{ running = true; looping = _arg1; } public function draw(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int=0, _arg5:int=0, _arg6:Number=1):void{ strip.draw(_arg1, _arg2, _arg3, sequence[currentFrame], _arg4, _arg5, _arg6); } public function setFrameTime(_arg1:int):void{ frameTime = _arg1; } public function stop():void{ running = false; } public function setFrame(_arg1:int):void{ currentFrame = _arg1; } public function setBouncingSequence():void{ var _local1:Array = new Array((strip.frameCount * 2)); var _local2:int; var _local3:int; _local3 = 0; while (_local3 != strip.frameCount) { var _temp1 = _local2; _local2 = (_local2 + 1); var _local4 = _temp1; _local1[_local4] = _local3; _local3++; }; _local3 = 0; while (_local3 != strip.frameCount) { var _temp2 = _local2; _local2 = (_local2 + 1); _local4 = _temp2; _local1[_local4] = ((strip.frameCount - _local3) - 1); _local3++; }; sequence = _local1; } public function isRunning():Boolean{ return (running); } public function update():void{ if (frameTime <= 0){ stop(); return; }; if (running){ currentTime = (currentTime + Utils.frameTime()); if (currentTime >= frameTime){ currentTime = (currentTime - frameTime); if (currentFrame < (sequence.length - 1)){ currentFrame++; } else { if (looping){ currentFrame = 0; } else { stop(); }; }; }; }; } } }//package utils
Section 41
//Game (utils.Game) package utils { import flash.events.*; import flash.display.*; public class Game extends Sprite { public var backbuffer:BitmapData; public static var game:Game; public function Game(){ game = this; this.height = stage.stageHeight; this.width = stage.stageWidth; backbuffer = new BitmapData(stage.stageWidth, stage.stageHeight, false); stage.addChild(new Bitmap(backbuffer)); stage.addEventListener(Event.ENTER_FRAME, updateFrame); } protected function update(_arg1:BitmapData):void{ } private function updateFrame(_arg1:Event):void{ backbuffer.lock(); update(backbuffer); backbuffer.unlock(); } } }//package utils
Section 42
//Strip (utils.Strip) package utils { import flash.display.*; import flash.geom.*; public class Strip { private var rowSize:int; public var img:BitmapData; public var frameCount:int; public var frameW:int; public var frameH:int; public function Strip(_arg1:BitmapData, _arg2:int, _arg3:int){ this.img = _arg1; this.frameW = _arg2; this.frameH = _arg3; rowSize = (_arg1.width / _arg2); frameCount = (rowSize * (_arg1.height / _arg3)); } public function draw(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int=0, _arg6:int=0, _arg7:Number=1):void{ var _local10:Matrix; var _local8:int = (Math.floor((_arg4 / rowSize)) * frameH); var _local9:int = ((_arg4 % rowSize) * frameW); if ((_arg6 & Utils.ANCHOR_HCENTER) != 0){ _arg2 = (_arg2 - (frameW / 2)); }; if (_arg5 == 0){ if (_arg7 == 1){ _arg1.copyPixels(img, new Rectangle(_local9, _local8, frameW, frameH), new Point(_arg2, _arg3), null, null, true); } else { _local10 = new Matrix(); _local10.translate((_local9 + _arg2), (_local9 + _arg3)); _arg1.draw(img, _local10, new ColorTransform(1, 1, 1, _arg7), null, new Rectangle((_local9 + _arg2), (_local8 + _arg3), frameW, frameH)); }; } else { Utils.drawFlipH(_arg1, img, new Rectangle(_local9, _local8, frameW, frameH), new Point(_arg2, _arg3), _arg7); }; } } }//package utils
Section 43
//Utils (utils.Utils) package utils { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.utils.*; public class Utils { public static const ANCHOR_HCENTER:int = 4; public static const ANCHOR_RIGHT:int = 1; public static const ANCHOR_BOTTOM:int = 2; private static var textField:TextField; private static var overrideFrameTime:Number = -1; private static var textWrap:MovieClip; public static function newMatrix(_arg1:int, _arg2:int, _arg3:Function=null):Array{ var _local6:int; var _local4:Array = new Array(_arg1); var _local5:int; while (_local5 != _arg1) { _local4[_local5] = new Array(_arg2); if (_arg3 != null){ _local6 = 0; while (_local6 != _arg2) { _local4[_local5][_local6] = _arg3(_local5, _local6); _local6++; }; }; _local5++; }; return (_local4); } public static function getClass(_arg1:Object):Class{ return (Class(getDefinitionByName(getQualifiedClassName(_arg1)))); } public static function remove(_arg1:Array, _arg2:Object):void{ var _local3:int; if (_arg2 != null){ _local3 = _arg1.indexOf(_arg2); if (_local3 != -1){ _arg1.splice(_local3, 1); }; }; } public static function fillRect(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:uint, _arg7:Number=1):void{ var _local8:Sprite = new Sprite(); _local8.graphics.beginFill(_arg6); _local8.graphics.drawRect(0, 0, _arg4, _arg5); _local8.graphics.endFill(); var _local9:Matrix = new Matrix(); _local9.translate(_arg2, _arg3); _arg1.draw(_local8, _local9, new ColorTransform(1, 1, 1, _arg7)); } public static function drawTargetOutline(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ _arg1.lineStyle(1, 4294967295); drawLine(_arg1, _arg2, _arg3, (_arg2 + _arg6), _arg3); drawLine(_arg1, _arg2, _arg3, _arg2, (_arg3 + _arg6)); drawLine(_arg1, (_arg2 + _arg4), _arg3, ((_arg2 + _arg4) - _arg6), _arg3); drawLine(_arg1, (_arg2 + _arg4), _arg3, (_arg2 + _arg4), (_arg3 + _arg6)); drawLine(_arg1, (_arg2 + _arg4), (_arg3 + _arg5), ((_arg2 + _arg4) - _arg6), (_arg3 + _arg5)); drawLine(_arg1, (_arg2 + _arg4), (_arg3 + _arg5), (_arg2 + _arg4), ((_arg3 + _arg5) - _arg6)); drawLine(_arg1, _arg2, (_arg3 + _arg5), (_arg2 + _arg6), (_arg3 + _arg5)); drawLine(_arg1, _arg2, (_arg3 + _arg5), _arg2, ((_arg3 + _arg5) - _arg6)); } public static function textSize(_arg1:String, _arg2:TextFormat, _arg3:int):Rectangle{ return (drawText(null, _arg1, _arg2, _arg3, 0, 0)); } public static function fillRoundRect(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:uint, _arg8:Number=1):void{ var _local9:Sprite = new Sprite(); _local9.graphics.beginFill(_arg7); _local9.graphics.drawRoundRect(0, 0, _arg4, _arg5, _arg6); _local9.graphics.endFill(); var _local10:Matrix = new Matrix(); _local10.translate(_arg2, _arg3); _arg1.draw(_local9, _local10, new ColorTransform(1, 1, 1, _arg8)); } public static function drawText(_arg1:BitmapData, _arg2:String, _arg3:TextFormat, _arg4:int, _arg5:int, _arg6:int, _arg7:Number=1, _arg8:int=0):Rectangle{ var _local9:Matrix; if (textField == null){ textField = new TextField(); textWrap = new MovieClip(); textWrap.addChild(textField); textField.selectable = false; textField.antiAliasType = AntiAliasType.ADVANCED; textField.type = TextFieldType.DYNAMIC; textField.autoSize = TextFieldAutoSize.LEFT; textField.multiline = true; textField.wordWrap = true; textField.sharpness = 400; textField.gridFitType = "pixel"; textField.embedFonts = true; }; textField.width = _arg4; textField.text = _arg2; textField.setTextFormat(_arg3); if (_arg1 != null){ _local9 = new Matrix(); if ((_arg8 & ANCHOR_RIGHT) != 0){ _local9.translate((_arg5 - textField.textWidth), _arg6); } else { if ((_arg8 & ANCHOR_BOTTOM) != 0){ _local9.translate(_arg5, (_arg6 - textField.textHeight)); } else { if ((_arg8 & ANCHOR_HCENTER) != 0){ _local9.translate((_arg5 - (textField.textWidth / 2)), _arg6); } else { _local9.translate(_arg5, _arg6); }; }; }; _arg1.draw(textWrap, _local9, new ColorTransform(1, 1, 1, _arg7)); }; return (new Rectangle(0, 0, Math.min(_arg4, textField.textWidth), (textField.textHeight + 3))); } public static function drawFlipH(_arg1:BitmapData, _arg2:BitmapData, _arg3:Rectangle, _arg4:Point, _arg5:Number=1):void{ var _local6:Matrix = new Matrix(); _local6.scale(-1, 1); _local6.translate((_arg4.x + _arg3.width), _arg4.y); var _local7:BitmapData = new BitmapData(_arg3.width, _arg3.height, true, 0); _local7.copyPixels(_arg2, _arg3, new Point()); _arg1.draw(_local7, _local6, ((_arg5 == 1)) ? null : new ColorTransform(1, 1, 1, _arg5)); } public static function drawLine(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ _arg1.moveTo(_arg2, _arg3); _arg1.lineTo(_arg4, _arg5); } public static function frameTime():Number{ if (overrideFrameTime == -1){ return ((1000 / Game.game.stage.frameRate)); }; return (overrideFrameTime); } public static function iterateMatrix(_arg1:Array, _arg2:Function):void{ var _local4:int; var _local3:int; while (_local3 != _arg1.length) { _local4 = 0; while (_local4 != _arg1[0].length) { _arg1[_local3][_local4] = _arg2(_local3, _local4); _local4++; }; _local3++; }; } public static function fitRectangle(_arg1:Rectangle, _arg2:Rectangle):Rectangle{ var _local3:Rectangle = new Rectangle(); _local3.x = ((_arg1.x < _arg2.x)) ? _arg2.x : (((_arg1.x + _arg1.width) > (_arg2.x + _arg2.width))) ? ((_arg2.x + _arg2.width) - _arg1.width) : _arg1.x; _local3.y = ((_arg1.y < _arg2.y)) ? _arg2.y : (((_arg1.y + _arg1.height) > (_arg2.y + _arg2.height))) ? ((_arg2.y + _arg2.height) - _arg1.height) : _arg1.y; _local3.width = _arg1.width; _local3.height = _arg1.height; return (_local3); } public static function rand(_arg1:int, _arg2:int):int{ if (_arg1 >= _arg2){ return (int(_arg2)); }; _arg2 = (_arg2 + 1); var _local3:int = (_arg2 - _arg1); var _local4:Number = ((Math.random() * _local3) + _arg1); return (_local4); } public static function drawTextCentered(_arg1:BitmapData, _arg2:String, _arg3:TextFormat, _arg4:int, _arg5:int, _arg6:int):Rectangle{ var _local7:Rectangle = textSize(_arg2, _arg3, _arg4); drawText(_arg1, _arg2, _arg3, _arg4, (_arg5 - (_local7.width / 2)), (_arg6 - _local7.height)); return (_local7); } public static function beginFrameOverride(_arg1:Number):void{ overrideFrameTime = _arg1; } public static function drawImage(_arg1:BitmapData, _arg2:BitmapData, _arg3:Number, _arg4:Number):void{ _arg1.copyPixels(_arg2, new Rectangle(0, 0, _arg2.width, _arg2.height), new Point(_arg3, _arg4), null, null, true); } public static function shuffle(_arg1:Array):Array{ var _local4:uint; var _local2:Array = new Array(); var _local3:Array = _arg1.slice(); while (_local3.length > 0) { _local4 = Math.floor((Math.random() * _local3.length)); _local2.push(_local3.splice(_local4, 1)); }; return (_local2); } public static function drawAlpha(_arg1:BitmapData, _arg2:BitmapData, _arg3:Rectangle, _arg4:Point, _arg5:Number=1):void{ var _local6:Matrix = new Matrix(); _local6.translate(_arg4.x, _arg4.y); _arg1.draw(_arg2, _local6, ((_arg5 == 1)) ? null : new ColorTransform(1, 1, 1, _arg5)); } public static function cloneArray(_arg1:Array):Array{ var _local2:Array = new Array(_arg1.length); var _local3:int; while (_local3 < _arg1.length) { _local2[_local3] = _arg1[_local3]; _local3++; }; return (_local2); } public static function endFrameOverride():void{ overrideFrameTime = -1; } } }//package utils
Section 44
//Animated (Animated) package { import flash.display.*; import utils.*; public class Animated extends Entity { protected var anim:Animation; public var lookingDir:int;// = 0 public var alpha:Number;// = 1 public function Animated(_arg1:BitmapData, _arg2:int=-1, _arg3:int=-1, _arg4:int=-1){ if ((((_arg2 == -1)) || ((_arg3 == -1)))){ _arg2 = _arg1.width; _arg3 = _arg1.height; }; if (_arg4 == -1){ _arg4 = 0; }; anim = new Animation(_arg1, _arg2, _arg3, _arg4); w = _arg2; h = _arg3; } override public function update():void{ anim.update(); super.update(); } override public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ anim.draw(_arg1, int(_arg2), int(_arg3), ((lookingDir == 0)) ? 0 : 1, alpha); } } }//package
Section 45
//Entity (Entity) package { import flash.display.*; import flash.geom.*; import flash.utils.*; public class Entity { public var restingOver:Entity;// = null public var snapped:Boolean;// = false public var world:World;// = null public var visible:Boolean;// = true public var floats:Boolean;// = false private var _y:Number;// = 0 public var overAnchor:Point; public var background:Boolean;// = false protected var gravityPull:Number;// = -1 public var liquid:Boolean;// = false public var anchor:Point; public var pixelPerfectCollision:Boolean;// = true public var alive:Boolean;// = true public var gravity:Boolean;// = true public var canBePhotographed:Boolean;// = true public var h:Number;// = 0 public var w:Number;// = 0 private var _x:Number;// = 0 public var z:Number;// = 0 public var isFalling:Boolean;// = false public function Entity(){ anchor = new Point(0, 0); overAnchor = new Point(0, 0); super(); } public function get y():Number{ return (_y); } public function onRemoved():void{ } private function overMe(_arg1:Entity):Boolean{ return ((_arg1.restingOver == this)); } public function area():Rectangle{ return (new Rectangle((x - anchor.x), (y - anchor.y), w, h)); } private function fallingOver(_arg1:Entity):Boolean{ var _local2:Rectangle = collisionArea(); _local2.height = (_local2.height + getGravityPull()); return (world.collides(this, _arg1, false, _local2)); } public function getGravityPull():Number{ if (gravityPull == -1){ return (world.defaultGravityPull); }; return (gravityPull); } private function fall():void{ var _local1:Number; var _local2:Rectangle; var _local3:Array; var _local4:Boolean; var _local5:int; var _local6:Entity; var _local7:Number; if (restingOver != null){ if (fallingOver(restingOver)){ _local1 = (restingOver.collisionArea().top - collisionArea().bottom); y = (y + _local1); } else { restingOver = null; }; }; if (restingOver == null){ _local2 = collisionArea(); _local2.height = (_local2.height + getGravityPull()); _local3 = world.collisions(this, false, _local2); _local4 = false; _local5 = 0; while (_local5 < _local3.length) { _local6 = _local3[_local5]; if (((((bottom() + getGravityPull()) >= _local6.collisionArea().top)) && ((top() < _local6.top())))){ _local4 = true; _local7 = (_local6.collisionArea().top - bottom()); _y = (_y + _local7); if (restingOver != _local6){ onHit(_local6); restingOver = _local6; overAnchor.x = (_x - restingOver._x); }; }; _local5++; }; isFalling = !(_local4); if (isFalling){ restingOver = null; _y = (_y + getGravityPull()); }; }; } public function isTouching(_arg1:Entity):Boolean{ var _local4:Entity; var _local2:Array = world.collisions(this, true); var _local3:int; while (_local3 < _local2.length) { _local4 = _local2[_local3]; if ((((_local4 == _arg1)) && (collisionArea().intersects(_arg1.collisionArea())))){ return (perfectHit(_local4)); }; _local3++; }; return (false); } public function canHit(_arg1:Entity):Boolean{ if (((_arg1.background) || (background))){ return (false); }; if (((((_arg1.liquid) && (!(floats)))) || (((liquid) && (!(_arg1.floats)))))){ return (false); }; return (true); } public function teleport(_arg1:Number, _arg2:Number):void{ var _local5:Number; var _local6:Number; var _local3:Array = world.filterEntities(overMe); var _local4:int; while (_local4 != _local3.length) { _local5 = (x - _local3[_local4].x); _local6 = (y - _local3[_local4].y); _local3[_local4]._x = (_arg1 + _local5); _local3[_local4]._y = (_arg2 + _local6); _local4++; }; x = _arg1; y = _arg2; } public function onPictured():void{ } public function bottom():Number{ return (area().bottom); } protected function onHit(_arg1:Entity):void{ } public function restingOverMe():Array{ return (world.filterEntities(restingOverMeFilter)); } protected function perfectHit(_arg1:Entity):Boolean{ var _local2:BitmapData; var _local3:BitmapData; if (((pixelPerfectCollision) && (_arg1.pixelPerfectCollision))){ _local2 = new BitmapData(area().width, area().height, true, 0); draw(_local2, 0, 0); _local3 = new BitmapData(_arg1.area().width, _arg1.area().height, true, 0); _arg1.draw(_local3, 0, 0); return (_local2.hitTest(new Point(area().x, area().y), 0xFF, _local3, new Point(_arg1.area().x, _arg1.area().y), 0xFF)); }; return (true); } public function update():void{ if (((((gravity) && ((top() < world.area().height)))) && (canFall()))){ fall(); }; var _local1:Array = restingOverMe(); var _local2:int; while (_local2 != _local1.length) { _local1[_local2]._x = (_x + _local1[_local2].overAnchor.x); _local2++; }; } public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ } private function restingOverMeFilter(_arg1:Entity):Boolean{ return ((_arg1.restingOver == this)); } final public function clone():Object{ var _local1:Class = Class(getDefinitionByName(getQualifiedClassName(this))); var _local2:Object = new (_local1); copy(_local2); return (_local2); } public function isInside():Boolean{ return (new Rectangle(0, 0, world.area().width, world.area().height).intersects(area())); } public function collisionArea():Rectangle{ return (area()); } public function onAdded():void{ } public function paint(_arg1:BitmapData):void{ draw(_arg1, (x - anchor.x), (y - anchor.y)); } public function isContained(_arg1:Entity):Boolean{ return (_arg1.area().containsRect(area())); } protected function canFall():Boolean{ return (true); } public function top():Number{ return (area().y); } public function set x(_arg1:Number):void{ if (restingOver != null){ overAnchor.x = (overAnchor.x - (_x - _arg1)); }; _x = _arg1; } public function set y(_arg1:Number):void{ _y = _arg1; } protected function copy(_arg1:Object):void{ var _local2:Entity = Entity(_arg1); _local2._x = _x; _local2._y = _y; _local2.w = w; _local2.h = h; _local2.z = z; _local2.visible = visible; _local2.anchor = anchor.clone(); _local2.world = world; _local2.gravity = gravity; _local2.liquid = liquid; _local2.floats = floats; _local2.background = background; _local2.pixelPerfectCollision = pixelPerfectCollision; _local2.gravityPull = gravityPull; _local2.canBePhotographed = canBePhotographed; _local2.isFalling = isFalling; _local2.restingOver = restingOver; _local2.overAnchor = overAnchor.clone(); _local2.snapped = false; _local2.alive = false; } public function onPlaced(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; restingOver = null; snapped = false; } public function get x():Number{ return (_x); } } }//package
Section 46
//Expression (Expression) package { import flash.display.*; import utils.*; public class Expression { public var seekTarget:Entity; private var from:Entity; public var status:int;// = 1 private var strip:Strip; public static const HAPPY:int = 1; public static const ANGRY:int = 8; public static const EFFORT:int = 6; public static const SEPARATION:int = 3; public static const SAD:int = 2; public static const SEEK:int = 3; public static const GUILTY:int = 5; public static const FALLING:int = 4; private static var img:Class = Expression_img; public function Expression(_arg1:Entity){ strip = new Strip(new img().bitmapData, 2, 3); this.from = _arg1; } public function happy():void{ status = HAPPY; } public function angry(_arg1:Entity):void{ status = ANGRY; seekTarget = _arg1; } public function guilty(_arg1:Entity):void{ status = GUILTY; seekTarget = _arg1; } public function falling():void{ status = FALLING; } private function drawSeekerEye(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Boolean):void{ var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; if (seekTarget != null){ _local5 = 0; if (seekTarget.area().x > from.area().x){ _local5 = 1; }; _local6 = (from.area().y - seekTarget.area().y); _local7 = (from.area().x - seekTarget.area().x); _local8 = -(Math.atan((_local6 / _local7))); if (_local8 < (-(Math.PI) / 8)){ _local9 = 2; } else { if (_local8 > (Math.PI / 8)){ _local9 = 0; } else { _local9 = 1; }; }; if (_local5 == 1){ strip.draw(_arg1, _arg2, _arg3, _local9); } else { strip.draw(_arg1, _arg2, _arg3, (_local9 + 3)); }; }; } public function draw(_arg1:BitmapData, _arg2:int, _arg3:int):void{ drawEye(_arg1, _arg2, _arg3, true); drawEye(_arg1, (_arg2 + SEPARATION), _arg3, false); } private function drawEye(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Boolean):void{ switch (status){ case HAPPY: strip.draw(_arg1, _arg2, _arg3, 6); break; case EFFORT: strip.draw(_arg1, _arg2, _arg3, (_arg4) ? 11 : 12); drawSeekerEye(_arg1, _arg2, _arg3, _arg4); break; case FALLING: strip.draw(_arg1, _arg2, _arg3, 10); strip.draw(_arg1, _arg2, _arg3, (_arg4) ? 2 : 3); break; case ANGRY: strip.draw(_arg1, _arg2, _arg3, (_arg4) ? 14 : 15); drawSeekerEye(_arg1, _arg2, _arg3, _arg4); break; case SAD: strip.draw(_arg1, _arg2, _arg3, (_arg4) ? 8 : 9); strip.draw(_arg1, _arg2, _arg3, (_arg4) ? 2 : 3); break; case GUILTY: strip.draw(_arg1, _arg2, _arg3, (_arg4) ? 8 : 9); drawSeekerEye(_arg1, _arg2, _arg3, _arg4); break; case SEEK: strip.draw(_arg1, _arg2, _arg3, 7); drawSeekerEye(_arg1, _arg2, _arg3, _arg4); break; }; } public function efforting(_arg1:Entity):void{ status = EFFORT; seekTarget = _arg1; } public function sad():void{ status = SAD; } public function seek(_arg1:Entity):void{ status = SEEK; seekTarget = _arg1; } } }//package
Section 47
//Expression_img (Expression_img) package { import mx.core.*; public class Expression_img extends BitmapAsset { } }//package
Section 48
//MoonWish (MoonWish) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; import sitting.*; import mx.core.*; import utils.*; import flash.media.*; import flash.ui.*; public class MoonWish extends Game { private var curWorldIndex:int;// = 0 public var field:BitmapData; private var mouseClicked:Boolean;// = false private var cameraH:Number;// = 20 private var snapped:Array; private var playNext:Boolean;// = false private var snapshot:BitmapData; private var cameraW:Number;// = 24 private var cameraX:Number;// = 0 private var cameraY:Number;// = 0 private var music_asset:Class; private var photoSnd:Class; private var currentWorld:World; private var cameraOutline:Shape; private var worlds:Array; private var rewind_asset:Class; private var anchorPoints:Array; public var endings:Array; private var hasPhoto:Boolean;// = false public static const WIDTH:int = 100; public static const HEIGHT:int = 120; public static const SCALE:int = 4; private static const POLAROID_BORDER:int = 2; private static var font_asset:Class = MoonWish_font_asset; private static var defaultFont:TextFormat; public static var main:MoonWish; public function MoonWish(){ endings = new Array(); rewind_asset = MoonWish_rewind_asset; photoSnd = MoonWish_photoSnd; music_asset = MoonWish_music_asset; cameraOutline = new Shape(); snapped = new Array(); anchorPoints = new Array(); super(); main = this; Mouse.hide(); scaleX = 1; scaleY = 1; defaultFont = new TextFormat(); defaultFont.size = 25; defaultFont.font = new font_asset().fontName; defaultFont.color = "0xffffff"; defaultFont.bold = false; field = new BitmapData(WIDTH, HEIGHT, false, 4278190080); stage.addEventListener(MouseEvent.CLICK, onMouseClick); stage.addEventListener(KeyboardEvent.KEY_UP, onKey); Utils.drawTargetOutline(cameraOutline.graphics, 0, 0, (cameraW * SCALE), (cameraH * SCALE), 10); stage.addChild(cameraOutline); snapshot = new BitmapData((cameraW * SCALE), (cameraH * SCALE), true, 0); resetWorlds(); resetWorld(); var _local1:SoundAsset = (new music_asset() as SoundAsset); var _local2:SoundChannel = _local1.play(0, 40); } private function resetWorlds():void{ worlds = new Array(Sitting); } public function playNextWorld():void{ playNext = true; } private function resetWorld():void{ var _local1:Array; var _local2:int; if (currentWorld != null){ _local1 = Utils.cloneArray(currentWorld.entities); _local2 = 0; while (_local2 != _local1.length) { currentWorld.removeEntity(_local1[_local2]); _local2++; }; }; currentWorld = new (worlds[curWorldIndex]); hasPhoto = false; } public function onKey(_arg1:KeyboardEvent):void{ var _local2:SoundAsset; var _local3:SoundChannel; if (_arg1.keyCode == 82){ playNextWorld(); _local2 = (new rewind_asset() as SoundAsset); _local3 = _local2.play(0, 1); }; } private function captureEntities():void{ var _local5:Entity; var _local6:Rectangle; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:int; var _local1:SoundAsset = (new photoSnd() as SoundAsset); var _local2:SoundChannel = _local1.play(); snapped.length = 0; anchorPoints.length = 0; var _local3:Rectangle = new Rectangle(cameraX, cameraY, cameraW, cameraH); var _local4:int; while (_local4 < currentWorld.entities.length) { _local5 = currentWorld.entities[_local4]; if (_local5.collisionArea().intersects(_local3)){ _local6 = _local5.collisionArea().intersection(_local3); _local7 = (_local6.width * _local6.height); _local8 = (_local5.collisionArea().width * _local5.collisionArea().height); _local9 = (_local7 / _local8); if (_local9 > 0.75){ anchorPoints.push(new Point((_local5.x - _local3.x), (_local5.y - _local3.y))); snapped.push(_local5); _local5.onPictured(); _local5.snapped = true; }; }; _local4++; }; snapped.sortOn("z", Array.DESCENDING); if (snapped.length == 0){ _local10 = 18; while (_local10 >= 1) { grabPicture(_local10, _local10, true); _local10 = (_local10 - 2); }; }; } public function onMouseClick(_arg1:MouseEvent):void{ mouseClicked = true; } private function grabPicture(_arg1:Number, _arg2:Number, _arg3:Boolean=false):void{ var _local4:BitmapData; if (_arg3){ _local4 = new BitmapData(snapshot.width, snapshot.height, true, 2130706432); snapshot.copyPixels(backbuffer, new Rectangle((cameraOutline.x + _arg1), (cameraOutline.y + _arg2), (cameraW * SCALE), (cameraH * SCALE)), new Point(0, 0), _local4, new Point(0, 0), true); } else { snapshot.copyPixels(backbuffer, new Rectangle((cameraOutline.x + _arg1), (cameraOutline.y + _arg2), (cameraW * SCALE), (cameraH * SCALE)), new Point(0, 0)); }; } override protected function update(_arg1:BitmapData):void{ var _local3:Number; var _local4:Number; var _local5:String; if (playNext){ playNext = false; curWorldIndex++; if (curWorldIndex == worlds.length){ resetWorlds(); curWorldIndex = 0; }; resetWorld(); }; cameraX = ((stage.mouseX / SCALE) - (cameraW / 2)); cameraY = ((stage.mouseY / SCALE) - (cameraH / 2)); cameraOutline.x = (cameraX * SCALE); cameraOutline.y = (cameraY * SCALE); currentWorld.update(); currentWorld.draw(field, 0, 0); var _local2:Matrix = new Matrix(); _local2.scale(SCALE, SCALE); backbuffer.draw(field, _local2); if (mouseClicked){ mouseClicked = false; if (hasPhoto){ hasPhoto = false; placeEntities(); } else { grabPicture(0, 0); hasPhoto = true; captureEntities(); }; }; if (hasPhoto){ _local3 = cameraOutline.x; _local4 = cameraOutline.y; Utils.drawAlpha(backbuffer, snapshot, new Rectangle(0, 0, snapshot.width, snapshot.height), new Point((cameraOutline.x / scaleX), (cameraOutline.y / scaleY)), 0.7); backbuffer.fillRect(new Rectangle((_local3 - POLAROID_BORDER), (_local4 - POLAROID_BORDER), (snapshot.width + (POLAROID_BORDER * 2)), POLAROID_BORDER), 4294901502); backbuffer.fillRect(new Rectangle((_local3 - POLAROID_BORDER), _local4, POLAROID_BORDER, snapshot.height), 4294901502); backbuffer.fillRect(new Rectangle((_local3 + snapshot.width), _local4, POLAROID_BORDER, snapshot.height), 4294901502); backbuffer.fillRect(new Rectangle((_local3 - POLAROID_BORDER), (_local4 + snapshot.height), (snapshot.width + (POLAROID_BORDER * 2)), 13), 4294901502); cameraOutline.visible = false; } else { cameraOutline.visible = true; }; if (Sitting.main.isDone()){ _local5 = Sitting.main.ending(); if (endings.indexOf(_local5) == -1){ endings.push(_local5); }; _local5 = (_local5 + "\n"); if (endings.length < 5){ _local5 = (_local5 + ((5 - endings.length) + " undiscovered endings")); _local5 = (_local5 + "\nPress [R] to rewind"); } else { _local5 = (_local5 + "You discovered all endings!"); }; Utils.drawText(backbuffer, _local5, defaultFont, stage.stageWidth, 3, 3, 1); }; } private function placeEntities():void{ var _local2:Entity; var _local3:Point; var _local1:int; while (_local1 != snapped.length) { _local2 = snapped[_local1]; _local3 = anchorPoints[_local1]; _local2.onPlaced((cameraX + _local3.x), (cameraY + _local3.y)); _local1++; }; } } }//package
Section 49
//MoonWish_font_asset (MoonWish_font_asset) package { import mx.core.*; public class MoonWish_font_asset extends FontAsset { } }//package
Section 50
//MoonWish_music_asset (MoonWish_music_asset) package { import mx.core.*; public class MoonWish_music_asset extends SoundAsset { } }//package
Section 51
//MoonWish_photoSnd (MoonWish_photoSnd) package { import mx.core.*; public class MoonWish_photoSnd extends SoundAsset { } }//package
Section 52
//MoonWish_rewind_asset (MoonWish_rewind_asset) package { import mx.core.*; public class MoonWish_rewind_asset extends SoundAsset { } }//package
Section 53
//World (World) package { import flash.display.*; import flash.geom.*; import utils.*; public class World extends Entity { public var entities:Array; public var cache:BitmapData; public var defaultGravityPull:Number;// = 1 public function World(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ entities = new Array(); super(); cache = new BitmapData(_arg3, _arg4, true, 4278190080); this.x = _arg1; this.y = _arg2; this.w = _arg3; this.h = _arg4; } override public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ var _local7:Entity; super.draw(cache, _arg2, _arg3); var _local4:Array = Utils.cloneArray(entities); _local4.sortOn("z"); var _local5:int; while (_local5 < _local4.length) { _local7 = _local4[_local5]; if (_local7.visible){ _local7.paint(cache); }; _local5++; }; var _local6:Matrix = new Matrix(); _local6.translate(x, y); _arg1.copyPixels(cache, new Rectangle(0, 0, cache.width, cache.height), new Point(x, y), null, null, true); } public function removeEntity(_arg1:Entity):void{ if (_arg1 != null){ Utils.remove(entities, _arg1); _arg1.onRemoved(); }; } public function collisions(_arg1:Entity, _arg2:Boolean, _arg3:Rectangle=null):Array{ var _local6:Entity; var _local4:Array = new Array(); var _local5:int; while (_local5 < entities.length) { _local6 = entities[_local5]; if (collides(_arg1, _local6, _arg2, _arg3)){ _local4.push(_local6); }; _local5++; }; return (_local4); } override public function update():void{ var _local3:Entity; var _local1:Array = Utils.cloneArray(entities); _local1.sortOn("y", Array.DESCENDING); var _local2:int; while (_local2 < _local1.length) { _local3 = _local1[_local2]; _local3.update(); _local2++; }; } public function isDone():Boolean{ return (false); } public function collides(_arg1:Entity, _arg2:Entity, _arg3:Boolean, _arg4:Rectangle=null):Boolean{ var _local5:Rectangle = ((_arg4 == null)) ? _arg1.collisionArea() : _arg4; return (((((!((_arg2 == _arg1))) && (((_arg3) || (((_arg1.canHit(_arg2)) && (_arg2.canHit(_arg1)))))))) && (_local5.intersects(_arg2.collisionArea())))); } public function addEntityAt(_arg1:Entity, _arg2:int=-1, _arg3:int=-1):Entity{ if (_arg2 != -1){ _arg1.x = _arg2; }; if (_arg3 != -1){ _arg1.y = _arg3; }; _arg1.world = this; entities.push(_arg1); _arg1.onAdded(); return (_arg1); } public function filterEntities(_arg1:Function):Array{ var _local4:Entity; var _local2:Array = new Array(); var _local3:int; while (_local3 < entities.length) { _local4 = entities[_local3]; if (_arg1(_local4)){ _local2.push(_local4); }; _local3++; }; return (_local2); } public function getEntitiesIn(_arg1:Rectangle, _arg2:Entity=null):Array{ var _local5:Entity; var _local6:Rectangle; var _local3:Array = new Array(); var _local4:int; while (_local4 < entities.length) { _local5 = entities[_local4]; _local6 = _arg1; _local6.inflate(1, 1); if (((!((_local5 == _arg2))) && (_arg1.containsRect(_local5.collisionArea())))){ _local3.push(_local5); }; _local4++; }; return (_local3); } } }//package

Library Items

Symbol 1 Sound {MoonWish_rewind_asset} [MoonWish_rewind_asset]
Symbol 2 Sound {MoonWish_photoSnd} [MoonWish_photoSnd]
Symbol 3 Sound {MoonWish_music_asset} [MoonWish_music_asset]
Symbol 4 Sound {sitting.Girl_music_asset} [sitting.Girl_music_asset]
Symbol 5 Bitmap {sitting.Boat_img}
Symbol 6 Bitmap {sitting.SmallMoon_img}
Symbol 7 Bitmap {sitting.Boy_img_falling}
Symbol 8 Bitmap {sitting.Gull_img}
Symbol 9 Font {MoonWish_font_asset}
Symbol 10 Bitmap {sitting.Water_img}
Symbol 11 Bitmap {sitting.Sitting_back_asset}
Symbol 12 Bitmap {sitting.Girl_img}
Symbol 13 Bitmap {sitting.Water_bump_asset}
Symbol 14 Bitmap {sitting.Boy_img_mooned}
Symbol 15 Bitmap {sitting.Moon_img}
Symbol 16 Bitmap {sitting.Person_img_love}
Symbol 17 Bitmap {sitting.Boy_img_rowing}
Symbol 18 Bitmap {sitting.Boy_img}
Symbol 19 Bitmap {sitting.Water_img_waves}
Symbol 20 Bitmap {sitting.Star_img}
Symbol 21 Bitmap {sitting.Girl_img_fall}
Symbol 22 Bitmap {Expression_img}
Symbol 23 Bitmap {sitting.Girl_img_sitting}
Symbol 24 Bitmap {sitting.Star_img_star2}
Symbol 25 Bitmap {sitting.Girl_img_harp}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1457 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "MoonWish_rewind_asset"
ExportAssets (56)Timeline Frame 1Symbol 2 as "MoonWish_photoSnd"
ExportAssets (56)Timeline Frame 1Symbol 3 as "MoonWish_music_asset"
ExportAssets (56)Timeline Frame 1Symbol 4 as "sitting.Girl_music_asset"
SerialNumber (41)Timeline Frame 1

Labels

"MoonWish"Frame 1




http://swfchan.com/9/43120/info.shtml
Created: 9/5 -2019 15:39:12 Last modified: 9/5 -2019 15:39:12 Server time: 06/05 -2024 00:50:52