From 79670053c7247d3a49b607960efd284e93f057e5 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 2 Aug 2013 17:14:26 -0500 Subject: install.pl --- bPod/com/oop/SelectionSwitcher.as | 194 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 bPod/com/oop/SelectionSwitcher.as (limited to 'bPod/com/oop/SelectionSwitcher.as') diff --git a/bPod/com/oop/SelectionSwitcher.as b/bPod/com/oop/SelectionSwitcher.as new file mode 100644 index 0000000..f5685ea --- /dev/null +++ b/bPod/com/oop/SelectionSwitcher.as @@ -0,0 +1,194 @@ +import mx.utils.Delegate; +import com.services.BuckyServices; +import com.events.EventBroadcaster; +import mx.transitions.easing.Regular; +import mx.transitions.Tween; + +class com.oop.SelectionSwitcher extends MovieClip +{ + private static var slideAround:Boolean = true; // turn off while debugging only + + private var selectionsMC:MovieClip; // all scrolling selection systems + private var initX:Number; // where they start + private var initY:Number; + + private var bb:MovieClip; // back button + + private var bbX:Number; // starting positions of nav buttons; + private var thX:Number; + private var kwX:Number; + + private var initAlpha:Number = 70; + + private var openKeywordsBtn:MovieClip; // open keywords button + private var openThreadBtn:MovieClip; // open threads button + + private var currentView:String; // might as well be a string + private var agreedAlpha:Number = 75; + private var slideAmountX:Number = 210; + private var slideAmountY:Number = 210; + private var slideSpeed:Number = .4 + private var activeThread:String; // to open a new browser window instead of + // switching to keyword/thread/file view. + + public function SelectionSwitcher() { + establishStartingPoints(); + EventBroadcaster.getInstance().addEventListener("switchToKeywordsView", this); + EventBroadcaster.getInstance().addEventListener("switchToThreadsView", this); + EventBroadcaster.getInstance().addEventListener("switchToFilesView", this); + + EventBroadcaster.getInstance().addEventListener("switchToFeedThreadsView", this); + + + bb.onRelease = Delegate.create (this, handleBackButton); + openKeywordsBtn.onRelease = Delegate.create (this, handleOpenKeywordsBtn); + openThreadBtn.onRelease = Delegate.create (this, handleOpenThreadBtn); + } + + private function handleBackButton():Void { + switch (currentView) { + case "threads" : switchToKeywordsView(); break; + case "files" : switchToThreadsView(); break; + case "feeds" : switchToFeedsView(); break; + default : break; + } + } + + private function establishStartingPoints():Void { + initX = selectionsMC._x; + initY = selectionsMC._y; + bbX= bb._x; + thX= openThreadBtn._x; + kwX= openKeywordsBtn._x; + currentView = "keywords"; + hideBackButton(); + hideOpenThreadBtn(); + hideOpenKeywordsBtn(); + + bb._alpha = openKeywordsBtn._alpha = openThreadBtn._alpha = initAlpha; + } + + private function swapPlaces(_inA:MovieClip, _inB:MovieClip):Void { + + var oldX:Number = _inA._x; + var oldY:Number = _inA._y; + + _inA._x = _inB._x; + _inA._y = _inB._y; + + _inB._x = oldX; + _inB._y = oldY; + } + + private function handleOpenKeywordsBtn():Void { + switchToKeywordsView(); + } + + public function handleOpenThreadBtn():Void { + getURL ( BuckyServices.activeThreadPath , "_blank"); + } + + public function switchToKeywordsView(_evt:Object):Void { + removeAnyThumbnails(); + hideBackButton(); + hideOpenKeywordsBtn(); + hideOpenThreadBtn(); + _root.thumbnail.removeMovieClip(); + + // swapPlaces ( BuckyServices.threadsMC , BuckyServices.feedThreadsMC ); + + if (slideAround) { + var sTween = new Tween(selectionsMC, "_x", Regular.easeOut, selectionsMC._x, initX, slideSpeed, true); + } + currentView = "keywords"; + } + + + public function switchToFeedsView(_evt:Object):Void { + removeAnyThumbnails(); + hideBackButton(); + hideOpenKeywordsBtn(); + hideOpenThreadBtn(); + _root.thumbnail.removeMovieClip(); + +// swapPlaces ( BuckyServices.threadsMC , BuckyServices.feedThreadsMC ); + + if (slideAround) { + var xTween = new Tween(selectionsMC, "_x", Regular.easeOut, selectionsMC._x, initX, slideSpeed, true); + var yTween = new Tween(selectionsMC, "_y", Regular.easeOut, selectionsMC._y, initY, slideSpeed, true); + } + currentView = "feeds"; + } + + + + + public function switchToThreadsView(_evt:Object):Void { + removeAnyThumbnails(); + hideOpenKeywordsBtn(); + hideOpenThreadBtn(); + _root.thumbnail.removeMovieClip(); + + if (slideAround) { + var sTween = new Tween(selectionsMC, "_x", Regular.easeOut, selectionsMC._x, -slideAmountX, slideSpeed, true); + sTween.onMotionFinished = Delegate.create (this, showBackButton); + } + currentView = "threads"; + } + + + + public function switchToFeedThreadsView(_evt:Object):Void { + removeAnyThumbnails(); + hideOpenKeywordsBtn(); + hideOpenThreadBtn(); + _root.thumbnail.removeMovieClip(); + + if (slideAround) { + var sTween = new Tween(selectionsMC, "_y", Regular.easeOut, selectionsMC._y, -slideAmountY, slideSpeed, true); + var sTween = new Tween(selectionsMC, "_x", Regular.easeOut, selectionsMC._x, -slideAmountX, slideSpeed, true); + sTween.onMotionFinished = Delegate.create (this, showBackButton); + } + currentView = "feeds"; + } + + + + + + + + public function switchToFilesView(_evt:Object):Void { +// removeAnyThumbnails(); + showOpenKeywordsBtn(); + showOpenThreadBtn(); + + if (slideAround) { + var sTween = new Tween(selectionsMC, "_x", Regular.easeOut, selectionsMC._x, -slideAmountX*2, slideSpeed, true); + sTween.onMotionFinished = Delegate.create (this, showBackButton); + } + currentView = "files"; + } + + + + + + + + public function removeAnyThumbnails():Void { + _root.imagesHolder.thumbnail.unloadMovie(); + } + + + private function showBackButton():Void { bb._x = bbX; } + private function showOpenKeywordsBtn():Void { openKeywordsBtn._x = kwX; } + private function showOpenThreadBtn():Void { openThreadBtn._x = thX; } + + private function hideBackButton():Void { bb._x = -5000; } + private function hideOpenKeywordsBtn():Void { openKeywordsBtn._x = -5000; } + private function hideOpenThreadBtn():Void { openThreadBtn._x = -5000; } + + + +} -- cgit v1.2.3-70-g09d2