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/keywords/KeywordButton.as | 95 +++++++++++++++++++++++++++++ bPod/com/keywords/KeywordScroller.as | 67 ++++++++++++++++++++ bPod/com/keywords/KeywordSelectionSystem.as | 85 ++++++++++++++++++++++++++ 3 files changed, 247 insertions(+) create mode 100644 bPod/com/keywords/KeywordButton.as create mode 100644 bPod/com/keywords/KeywordScroller.as create mode 100644 bPod/com/keywords/KeywordSelectionSystem.as (limited to 'bPod/com/keywords') diff --git a/bPod/com/keywords/KeywordButton.as b/bPod/com/keywords/KeywordButton.as new file mode 100644 index 0000000..aec9648 --- /dev/null +++ b/bPod/com/keywords/KeywordButton.as @@ -0,0 +1,95 @@ +import com.oop.UIButton; +import com.oop.SelectionSystem; +import mx.utils.Delegate; + +import mx.transitions.easing.*; +import mx.transitions.Tween; + +class com.keywords.KeywordButton extends UIButton +{ + private var title_mc:MovieClip; + private var desc_mc:MovieClip; + private var icon_mc:MovieClip; + private var bg_mc:MovieClip; + private var gridObj:Object; + private var shine_mc:MovieClip; + private var element_mc:MovieClip; + private var initialAlpha:Number = 60; + private var initialShine:Number = 30; + private var tint:Number; + + public var elementSymbol:String; + + private var installedX:Number = 0; + private var installedY:Number = 0; + + public function KeywordButton() {} + + public function init(_selectionSystem:SelectionSystem, _id:Number, _itemData:Object, _gridObj:Object ):Void { + gridObj = _gridObj; + super.init (_selectionSystem, _id, _itemData); + makeButton(itemData); + } + + public function hashColor (_inStr:String):Number { + switch (_inStr) { + case "ivory": return (0xE0E0D8); + case "orange": return (0xFFD799); + case "yellow": return (0xFFF7A8); + case "green": return (0xDAF4B2); + case "blue": return (0xCCCCFF); + case "purple": return (0xDDB1FF); + case "pink": return (0xFFAECD); + case "plain": return (0xE6f0f0); + default: return (0xFFFFFF); + } + } + + + private function makeButton(_val:Object):Void { + icon_mc._alpha = initialAlpha; + shine_mc._alpha = initialShine; + title_mc.title_txt.text = _val.name.toLowerCase(); + + var c:String = _val.name.charAt(0); // b + var cc:String = _val.name.charAt(1); // u + var u:String = c.toUpperCase(); // B (if b) + var uu:String = cc.toLowerCase(); // u (if U) + var tmp:String = u.concat (uu); // Bu + + element_mc.element_txt.text = tmp; + + elementSymbol = tmp; + + + var tmpColor:Number = hashColor ( _val.color.toString() ); + element_mc.element_txt.textColor = tmpColor; // &= 0x7F7F7F; + setPosition(); + } + + private function setPosition():Void { + _x = Math.round ( (gridObj.grid_x * _width) + (gridObj.horizSpace * gridObj.grid_x)); + _y = Math.round ( ((gridObj.grid_y-1) * _height) + (gridObj.vertSpace * (gridObj.grid_y-1))); + + installedX = _x; + installedY = _y; + } + + private function handleRollOver():Void { + var tTween = new Tween(icon_mc, "_alpha", Regular.easeOut, icon_mc._alpha, 100, 1, true); + var shineTween = new Tween(shine_mc, "_alpha", Regular.easeOut, shine_mc._alpha, 0, .2, true); + } + + private function handleRollOut():Void + { + if(visited) { var fadeVal:Number = initialAlpha; } + else { var fadeVal:Number = initialAlpha; } + + var tTween = new Tween (icon_mc, "_alpha", Regular.easeOut, icon_mc._alpha, initialAlpha, 1, true); + var shineTween = new Tween (shine_mc, "_alpha", Regular.easeOut, shine_mc._alpha, initialShine, .2, true); + } + + public function setSelected():Void + { + } +} \ No newline at end of file diff --git a/bPod/com/keywords/KeywordScroller.as b/bPod/com/keywords/KeywordScroller.as new file mode 100644 index 0000000..5bcda46 --- /dev/null +++ b/bPod/com/keywords/KeywordScroller.as @@ -0,0 +1,67 @@ +import com.oop.ScrollingMenuFrame; + +class com.keywords.KeywordScroller extends ScrollingMenuFrame +{ + var intRate:Number = 14; // scroller speed + var adornments:Number = 0 ; + + var tagArray:Array; + + public function doLoad(_dataArray:Array):Void { + holder_mc.attachMovie("KeywordSelectionSystem", "keywordTiles", 1000); + holder_mc["keywordTiles"].doInit(_dataArray, "KeywordButton"); + } + + public function insertAdornment():Void { + adornments++; + var adorn:MovieClip = holder_mc["keywordTiles"].attachMovie ("adornment", "adornment" + adornments , this.getNextHighestDepth()-adornments ); + _root.debug.text += "\nadorn: " + adorn; + adorn._y = _height; + } + + public function insertFeeds():Void { + holder_mc.attachMovie ("FeedSelectionSystem", "feeds", 2000); + holder_mc["feeds"]._y = _height; + holder_mc["feeds"].doInit ( buckyFeeds() , "KeywordButton"); + } + + public function insertTags(_inArray:Array):Void { + holder_mc.attachMovie ("KeywordSelectionSystem", "tags", 3000); + holder_mc["tags"]._y = _height; + holder_mc["tags"].doInit ( _inArray , "TagButton"); + } + + public function buckyFeeds():Array { + +// return []; + var feeds:Array = [ + {name:"bboing", color:"yellow", feed:"http://feeds.feedburner.com/boingboing/iBag" }, + {name:"drawn", color:"plain", feed:"http://drawn.ca/feed/" }, + {name:"daily rotn", color:"orange", feed:"http://feeds.dailyrotten.com/dailyrotten.rss" }, + + {name:"slashdot", color:"green", feed:"http://rss.slashdot.org/Slashdot/slashdot" }, + {name:"trailers", color:"blue", feed:"http://images.apple.com/trailers/rss/newtrailers.rss" }, + {name:"info", color:"yellow", feed:"http://feeds.infosthetics.com/infosthetics" }, + + {name:"reddit", color:"orange", feed:"http://reddit.com/.rss" }, + {name:"jerkcity", color:"yellow", feed:"http://www.jerkcity.com/jc.rss" }, + {name:"d.lic.us", color:"purple", feed:"http://del.icio.us/rss/" }, + + {name:"w4m", color:"pink", feed:"http://sfbay.craigslist.org/search/w4m?query=&minAsk=min&maxAsk=max&hasPic=1&format=rss" }, + {name:"m4m", color:"pink", feed:"http://sfbay.craigslist.org/search/m4m?query=&minAsk=min&maxAsk=max&hasPic=1&format=rss" }, + {name:"casual", color:"pink", feed:"http://sfbay.craigslist.org/search/cas?query=&minAsk=min&maxAsk=max&hasPic=1&format=rss" }, + + {name:"art farts", color:"ivory", feed:"http://www.asciiartfarts.com/farts.rss" } + + + + ]; + + + return (feeds); + + } + + + +}; \ No newline at end of file diff --git a/bPod/com/keywords/KeywordSelectionSystem.as b/bPod/com/keywords/KeywordSelectionSystem.as new file mode 100644 index 0000000..45183f4 --- /dev/null +++ b/bPod/com/keywords/KeywordSelectionSystem.as @@ -0,0 +1,85 @@ +import com.tubes.BuckyThreadTube; +import com.events.EventBroadcaster; +import com.oop.GridSelectionSystem; +import com.services.BuckyServices; + +class com.keywords.KeywordSelectionSystem extends GridSelectionSystem { + + private var tube:BuckyThreadTube; + private var cockblocker:Boolean = false; // to discourage crazy button clickage + private var lastClicked:Number; // failsafe for crazy button clickage + + private function doAction():Void { + if (!cockblocker) { + eraseExistingSpinners(); + lastClicked = currentSelection; + BuckyServices.setActiveKeyword ( selectedData() ); + EventBroadcaster.getInstance().addEventListener("threadListMade", this); + var tag_preamble:String; + if (selectedData().isTag) { + tag_preamble = "tag_"; + } else { + tag_preamble = ""; + } + tube = new BuckyThreadTube ( BuckyServices.threads + tag_preamble + selectedData().name); + startButtonSpinner(); + cockblocker = true; + } + } + + private function eraseExistingSpinners():Void { + for (var i:Number = 0 ; i < listItems.length ; i++) { + var t:MovieClip = listItems[i]; + t.element_mc._visible = true; + t.element_mc.element_txt.text = t.elementSymbol; + t["spinnerHolder"].removeMovieClip(); // kill if exists .. fail silently if not + } + EventBroadcaster.getInstance().removeEventListener("threadListMade", this); + } + + private function startButtonSpinner():Void { + var t:MovieClip = listItems[currentSelection]; + t.element_mc._visible = false; + t.createEmptyMovieClip ("spinnerHolder", t.getNextHighestDepth()); + t["spinnerHolder"].attachMovie ("Spinner", "spinner" , 100, {_x:40, _y:29, _width:27, _height:27}); + } + + + private function threadListMade (_evt:Object):Void { + eraseExistingSpinners(); + + if ((tube.articles.length != undefined) && (tube.articles.length != 0)) { + BuckyServices.threadsMC.doLoad( tube.articles, "ThreadButton" ); + EventBroadcaster.getInstance().broadcastEvent("switchToThreadsView", this); + BuckyServices.setActiveKeyword ( selectedData() ); + setCurrentSelection ( currentSelection ); + cockblocker = false; + } + + else if (tube.articles.length == 0) { + drawFrownyFace(); + cockblocker = false; + } + + else { trace ("sigh, some other weird scenario"); } + } + + + private function drawFrownyFace():Void { + listItems[lastClicked].element_mc.element_txt.text = listItems[lastClicked].elementSymbol = ":("; + } + + public function setSelection(_id:Number):Void { + + // overriding existing selection system's setSelection so tiles that get + // clicked do not killMouseEvents() -- the same tile can be clicked over and over. + + listItems[currentSelection].setUnselected(); + currentSelection = _id; + listItems[currentSelection].setSelected(); + doAction(); + } + + +}; + -- cgit v1.2.3-70-g09d2