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/bPod.fla | Bin 0 -> 245760 bytes bPod/bPod.swd | Bin 0 -> 345496 bytes bPod/bPod.swf | Bin 0 -> 66083 bytes bPod/beta2.tmproj | 27 +++ bPod/boxtester.fla | Bin 0 -> 55296 bytes bPod/boxtester.swf | Bin 0 -> 624 bytes bPod/com/events/Event.as | 7 + bPod/com/events/EventBroadcaster.as | 32 +++ bPod/com/events/RightClick.as | 15 ++ bPod/com/feeds/FeedButton.as | 36 ++++ bPod/com/feeds/FeedItemButton.as | 59 ++++++ bPod/com/feeds/FeedItemScroller.as | 17 ++ bPod/com/feeds/FeedItemSelectionSystem.as | 64 ++++++ bPod/com/feeds/FeedScroller.as | 16 ++ bPod/com/feeds/FeedSelectionSystem.as | 32 +++ bPod/com/feeds/ProcessRSS.as | 1 + bPod/com/files/FileButton.as | 89 ++++++++ bPod/com/files/FileScroller.as | 15 ++ bPod/com/files/FileSelectionSystem.as | 19 ++ bPod/com/graphics/BuckyGradientBox.as | 43 ++++ bPod/com/keywords/KeywordButton.as | 95 +++++++++ bPod/com/keywords/KeywordScroller.as | 67 ++++++ bPod/com/keywords/KeywordSelectionSystem.as | 85 ++++++++ bPod/com/oop/GridSelectionSystem.as | 49 +++++ bPod/com/oop/ScrollingMenuFrame.as | 148 +++++++++++++ bPod/com/oop/SelectionSwitcher.as | 194 ++++++++++++++++++ bPod/com/oop/SelectionSystem.as | 89 ++++++++ bPod/com/oop/UIButton.as | 171 ++++++++++++++++ bPod/com/player/Player.as | 131 ++++++++++++ bPod/com/player/Visuals.as | 85 ++++++++ bPod/com/services/BuckyServices.as | 133 ++++++++++++ bPod/com/tags/TagButton.as | 95 +++++++++ bPod/com/threads/ThreadButton.as | 57 ++++++ bPod/com/threads/ThreadScroller.as | 15 ++ bPod/com/threads/ThreadSelectionSystem.as | 74 +++++++ bPod/com/tubes/BuckyFileTube.as | 29 +++ bPod/com/tubes/BuckyKeywordTube.as | 46 +++++ bPod/com/tubes/BuckyThreadTube.as | 26 +++ bPod/com/tubes/BuckyTube.as | 23 +++ bPod/css/bogart.css | 228 +++++++++++++++++++++ bPod/index.html | 205 ++++++++++++++++++ bPod/main.as | 47 +++++ bPod/php/buckyFiles.php | 102 +++++++++ bPod/php/buckyf.php | 66 ++++++ bPod/php/buckyk.php | 37 ++++ bPod/php/buckyth.php | 34 +++ bPod/php/cybozuLab/rssParser/FetchingRss.as | 1 + bPod/php/cybozuLab/rssParser/ParsingRss.as | 1 + bPod/php/cybozuLab/rssParser/RssParserException.as | 1 + bPod/php/cybozuLab/rssParser/Utils.as | 1 + bPod/rssProxy.php | 11 + bPod/swfobject/swfobject.js | 138 +++++++++++++ 52 files changed, 2956 insertions(+) create mode 100644 bPod/bPod.fla create mode 100644 bPod/bPod.swd create mode 100644 bPod/bPod.swf create mode 100644 bPod/beta2.tmproj create mode 100644 bPod/boxtester.fla create mode 100644 bPod/boxtester.swf create mode 100644 bPod/com/events/Event.as create mode 100644 bPod/com/events/EventBroadcaster.as create mode 100644 bPod/com/events/RightClick.as create mode 100644 bPod/com/feeds/FeedButton.as create mode 100644 bPod/com/feeds/FeedItemButton.as create mode 100644 bPod/com/feeds/FeedItemScroller.as create mode 100644 bPod/com/feeds/FeedItemSelectionSystem.as create mode 100644 bPod/com/feeds/FeedScroller.as create mode 100644 bPod/com/feeds/FeedSelectionSystem.as create mode 100644 bPod/com/feeds/ProcessRSS.as create mode 100644 bPod/com/files/FileButton.as create mode 100644 bPod/com/files/FileScroller.as create mode 100644 bPod/com/files/FileSelectionSystem.as create mode 100644 bPod/com/graphics/BuckyGradientBox.as create mode 100644 bPod/com/keywords/KeywordButton.as create mode 100644 bPod/com/keywords/KeywordScroller.as create mode 100644 bPod/com/keywords/KeywordSelectionSystem.as create mode 100644 bPod/com/oop/GridSelectionSystem.as create mode 100644 bPod/com/oop/ScrollingMenuFrame.as create mode 100644 bPod/com/oop/SelectionSwitcher.as create mode 100644 bPod/com/oop/SelectionSystem.as create mode 100644 bPod/com/oop/UIButton.as create mode 100644 bPod/com/player/Player.as create mode 100644 bPod/com/player/Visuals.as create mode 100644 bPod/com/services/BuckyServices.as create mode 100644 bPod/com/tags/TagButton.as create mode 100644 bPod/com/threads/ThreadButton.as create mode 100644 bPod/com/threads/ThreadScroller.as create mode 100644 bPod/com/threads/ThreadSelectionSystem.as create mode 100644 bPod/com/tubes/BuckyFileTube.as create mode 100644 bPod/com/tubes/BuckyKeywordTube.as create mode 100644 bPod/com/tubes/BuckyThreadTube.as create mode 100644 bPod/com/tubes/BuckyTube.as create mode 100644 bPod/css/bogart.css create mode 100644 bPod/index.html create mode 100644 bPod/main.as create mode 100644 bPod/php/buckyFiles.php create mode 100644 bPod/php/buckyf.php create mode 100644 bPod/php/buckyk.php create mode 100644 bPod/php/buckyth.php create mode 100644 bPod/php/cybozuLab/rssParser/FetchingRss.as create mode 100644 bPod/php/cybozuLab/rssParser/ParsingRss.as create mode 100644 bPod/php/cybozuLab/rssParser/RssParserException.as create mode 100644 bPod/php/cybozuLab/rssParser/Utils.as create mode 100644 bPod/rssProxy.php create mode 100644 bPod/swfobject/swfobject.js (limited to 'bPod') diff --git a/bPod/bPod.fla b/bPod/bPod.fla new file mode 100644 index 0000000..c7c68b7 Binary files /dev/null and b/bPod/bPod.fla differ diff --git a/bPod/bPod.swd b/bPod/bPod.swd new file mode 100644 index 0000000..a50f546 Binary files /dev/null and b/bPod/bPod.swd differ diff --git a/bPod/bPod.swf b/bPod/bPod.swf new file mode 100644 index 0000000..77523ad Binary files /dev/null and b/bPod/bPod.swf differ diff --git a/bPod/beta2.tmproj b/bPod/beta2.tmproj new file mode 100644 index 0000000..5075db6 --- /dev/null +++ b/bPod/beta2.tmproj @@ -0,0 +1,27 @@ + + + + + documents + + + expanded + + name + beta2 + regexFolderFilter + !.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$ + sourceDirectory + + + + fileHierarchyDrawerWidth + 253 + metaData + + showFileHierarchyDrawer + + windowFrame + {{-21, 4}, {1177, 874}} + + diff --git a/bPod/boxtester.fla b/bPod/boxtester.fla new file mode 100644 index 0000000..f25fb96 Binary files /dev/null and b/bPod/boxtester.fla differ diff --git a/bPod/boxtester.swf b/bPod/boxtester.swf new file mode 100644 index 0000000..0a4ea4c Binary files /dev/null and b/bPod/boxtester.swf differ diff --git a/bPod/com/events/Event.as b/bPod/com/events/Event.as new file mode 100644 index 0000000..377ae1c --- /dev/null +++ b/bPod/com/events/Event.as @@ -0,0 +1,7 @@ + +class com.events.Event +{ + public function Event() {} + public var type:String; + public var params:Object; +}; \ No newline at end of file diff --git a/bPod/com/events/EventBroadcaster.as b/bPod/com/events/EventBroadcaster.as new file mode 100644 index 0000000..c8f3483 --- /dev/null +++ b/bPod/com/events/EventBroadcaster.as @@ -0,0 +1,32 @@ +import com.events.Event; +import mx.events.EventDispatcher; + +// var howdy:Object = new Object; +// howdy.bonghits = "five bonghits"; +// EventBroadcaster.getInstance().broadcastEvent("curtainsUp", howdy); + +class com.events.EventBroadcaster +{ + private var dispatchEvent:Function; + public var addEventListener:Function; + public var removeEventListener:Function; + private static var eventBroadcaster; + + private function EventBroadcaster() { + EventDispatcher.initialize (this); + } + + public static function getInstance():EventBroadcaster { + if (eventBroadcaster == undefined) { + eventBroadcaster = new EventBroadcaster(); + } + return eventBroadcaster; + } + + public function broadcastEvent (_eventName:String, _params:Object):Void { + var event:Event = new Event(); + event.type = _eventName; + event.params = _params; + dispatchEvent (event); + } +}; \ No newline at end of file diff --git a/bPod/com/events/RightClick.as b/bPod/com/events/RightClick.as new file mode 100644 index 0000000..df5f5d1 --- /dev/null +++ b/bPod/com/events/RightClick.as @@ -0,0 +1,15 @@ +class com.events.RightClick { + + private var rcMenu:ContextMenu; + + public function RightClick () { + rcMenu = new ContextMenu(); + rcMenu.hideBuiltInItems(); + rcMenu.customItems.push (new ContextMenuItem ("(c) 2007 carbon pictures", vanityPlate)); + _root.menu = rcMenu; + } + + private function vanityPlate():Void { +// getURL("https://www.carbonpictures.com/cgi-bin/bucky/profile?username=tfarnon"); + } +} \ No newline at end of file diff --git a/bPod/com/feeds/FeedButton.as b/bPod/com/feeds/FeedButton.as new file mode 100644 index 0000000..d8d1ed2 --- /dev/null +++ b/bPod/com/feeds/FeedButton.as @@ -0,0 +1,36 @@ +import mx.utils.Delegate; +import mx.transitions.easing.*; +import mx.transitions.Tween; +import com.events.EventBroadcaster; + +import com.keywords.KeywordButton; + +class com.feeds.FeedButton extends KeywordButton { + + private var username_mc:MovieClip; + private var backing:MovieClip; + private var initialAlpha:Number; + private var overlay:MovieClip; + + private function makeButton(_val:Object):Void { + + overlay._visible = false; + initialAlpha = backing._alpha; + title_mc.title_txt.text = _val.name; + + super.setPosition(); + } + + private function handleRollOver():Void { + var tTween = new Tween(backing, "_alpha", Regular.easeOut, backing._alpha, 40, .4, true); + } + + private function handleRollOut():Void { + + if(visited) { var fadeVal:Number = initialAlpha; } + else { var fadeVal:Number = initialAlpha; } + + var tTween = new Tween(backing, "_alpha", Regular.easeOut, backing._alpha, initialAlpha, .4, true); + } + +}; \ No newline at end of file diff --git a/bPod/com/feeds/FeedItemButton.as b/bPod/com/feeds/FeedItemButton.as new file mode 100644 index 0000000..8666253 --- /dev/null +++ b/bPod/com/feeds/FeedItemButton.as @@ -0,0 +1,59 @@ +import mx.utils.Delegate; +import mx.transitions.easing.*; +import mx.transitions.Tween; +import com.events.EventBroadcaster; + +import com.threads.ThreadButton; + +class com.feeds.FeedItemButton extends ThreadButton { + + private var username_mc:MovieClip; + private var alphabet_mc:MovieClip; + private var backing:MovieClip; + private var initialAlpha:Number; + private var overlay:MovieClip; + + private function makeButton(_val:Object):Void { + title_mc.title_txt.autoSize = true; + title_mc.title_txt.text = _val.name; + + if (title_mc._height > 26) { + title_mc.title_txt.autoSize = false; + title_mc.title_txt._height = 28.1; + } + + initialAlpha = backing._alpha; + + + title_mc._y = (_y + _height / 2) - (title_mc._height / 2) ; + + // backing._height = title_mc.title_txt._height; + + this.cacheAsBitmap = true; + super.setPosition(); + } + + + private function handleRollOver():Void { + var tTween = new Tween(backing, "_alpha", Regular.easeOut, backing._alpha, 40, .4, true); +// makeWhite(); + } + + private function handleRollOut():Void { + + if(visited) { var fadeVal:Number = initialAlpha; } + else { var fadeVal:Number = initialAlpha; } + + var tTween = new Tween(backing, "_alpha", Regular.easeOut, backing._alpha, initialAlpha, .4, true); +// makeBlack(); + } + + private function makeWhite():Void { + title_mc.title_txt.textColor =0xFFFFFF; + } + + private function makeBlack():Void { + title_mc.title_txt.textColor =0x000000; + } + +}; \ No newline at end of file diff --git a/bPod/com/feeds/FeedItemScroller.as b/bPod/com/feeds/FeedItemScroller.as new file mode 100644 index 0000000..960d5c2 --- /dev/null +++ b/bPod/com/feeds/FeedItemScroller.as @@ -0,0 +1,17 @@ +import com.oop.ScrollingMenuFrame; + +class com.feeds.FeedItemScroller extends ScrollingMenuFrame +{ + var intRate:Number = 20; // scroller speed + + public function doLoad(_dataArray:Array ):Void { + + + holder_mc.attachMovie("FeedItemSelectionSystem", "feeds", 1000); + holder_mc["feeds"].doInit(_dataArray, "FeedItemButton" ); + +// holder_mc._x = 0; // use as needed! this puts the horiz scroller back in view + holder_mc._y = 0; // when a keyword tile is clicked. + } + +}; \ No newline at end of file diff --git a/bPod/com/feeds/FeedItemSelectionSystem.as b/bPod/com/feeds/FeedItemSelectionSystem.as new file mode 100644 index 0000000..e928f73 --- /dev/null +++ b/bPod/com/feeds/FeedItemSelectionSystem.as @@ -0,0 +1,64 @@ +import com.threads.ThreadSelectionSystem; +import com.services.BuckyServices; + +class com.feeds.FeedItemSelectionSystem extends ThreadSelectionSystem { + + private var itemsPerRow:Number = 1; + private var vertSpace:Number = 1; + + public function doAction():Void { + + var theItem:Object = systemData[getCurrentSelection()]; + + var theDesc:String = stripTags (theItem.desc); + +/* if (theDesc.length <= 1 ) + trace ( stripTags (theItem.desc) ); + else + trace (theItem.link ); */ + + + getURL (theItem.link , "_blank"); + + +/* for (var prop in theItem) { + trace (prop + " : " + theItem[prop]); + }*/ + } + + + private function stripTags (s:String):String + { + var gay:Boolean = false; + + var a:Array = s.split (""); + var b:Array = new Array (); + + for (var i = 0; i < a.length; i++) + { + if (a[i] == '<') + { + gay = true; + } + else if (a[i] == '>') + { + gay = false; + } + else if (!gay) + { + b.push (a[i]); + } + } + +/* var final:String = b.join(""); + + trace ("final == " + final); + + return final; +*/ + return b.join (""); + + + } + +}; \ No newline at end of file diff --git a/bPod/com/feeds/FeedScroller.as b/bPod/com/feeds/FeedScroller.as new file mode 100644 index 0000000..2b3d835 --- /dev/null +++ b/bPod/com/feeds/FeedScroller.as @@ -0,0 +1,16 @@ +import com.oop.ScrollingMenuFrame; + +class com.feeds.FeedScroller extends ScrollingMenuFrame +{ + var intRate:Number = 20; // scroller speed + + public function doLoad( _dataArray:Array ):Void { + trace ( "FeedScroller: doLoad"); + holder_mc.attachMovie("FeedSelectionSystem", "feeds", 1000); + holder_mc["feeds"].doInit(_dataArray, "FeedItemButton" ); + +// holder_mc._x = 0; // use as needed! this puts the horiz scroller back in view + holder_mc._y = 0; // when a keyword tile is clicked. + } + +}; \ No newline at end of file diff --git a/bPod/com/feeds/FeedSelectionSystem.as b/bPod/com/feeds/FeedSelectionSystem.as new file mode 100644 index 0000000..56ef7c4 --- /dev/null +++ b/bPod/com/feeds/FeedSelectionSystem.as @@ -0,0 +1,32 @@ +import com.feeds.ProcessRSS; +import com.services.BuckyServices; +import com.events.EventBroadcaster; +import com.keywords.KeywordSelectionSystem; + +class com.feeds.FeedSelectionSystem extends KeywordSelectionSystem { + + private var vertSpace:Number = 1; + private var theArray:Array; + + private var newFeed:ProcessRSS; + + private function doAction():Void { + return; +// trace ( "FeedSelectionSystem: doAction"); + eraseExistingSpinners(); + startButtonSpinner(); + theArray = new Array(); + newFeed = new ProcessRSS (theArray, BuckyServices.rssProxy); + newFeed.loadFeed (selectedData().feed); + EventBroadcaster.getInstance().addEventListener("feedListMade", this); + } + + private function feedListMade():Void { + + BuckyServices.feedThreadsMC.doLoad( newFeed.target_txt , "FeedItemButton" ); + EventBroadcaster.getInstance().broadcastEvent("switchToFeedThreadsView", this); + eraseExistingSpinners(); + + } + +}; \ No newline at end of file diff --git a/bPod/com/feeds/ProcessRSS.as b/bPod/com/feeds/ProcessRSS.as new file mode 100644 index 0000000..1c09d8d --- /dev/null +++ b/bPod/com/feeds/ProcessRSS.as @@ -0,0 +1 @@ +import mx.utils.Delegate; import mx.controls.TextArea; import com.events.EventBroadcaster; class com.feeds.ProcessRSS { //declare public properties: //the TextArea component which will display the information public var target_txt:Array; //the address of the PHP proxy script public var proxyURL:String; //declare private properties: private var _xml:XML; private var items:Array; private var senderObj:LoadVars; private var loaderID:Number; //constructor function ProcessRSS (target:Array, proxy:String) { target_txt = target; proxyURL = proxy; _xml = new XML(); _xml.ignoreWhite = true; _xml.onLoad = Delegate.create(this, onLoadEvent); } private function onLoadEvent(success:Boolean):Void { if (success) { //terminate any running intervals clearInterval(loaderID); // target_txt.text = "

Click a headline to open that entry in a new window.


"; //populate "items" array items = getNodes(_xml, "item"); displayContent(items); } else { // target_txt.text = "

XML failed to load.

"; } } public function loadFeed(feedURL:String):Void { //initialization: //terminate any running intervals clearInterval(loaderID); //start with an empty array - replace any previous content items = new Array(); //clear any previous text // target_txt.text = ""; //reset scroll position of TextArea component // target_txt.vPosition = 0; //create LoadVars Object senderObj = new LoadVars(); //assign a value to a property of the LoadVars Object senderObj.rss = feedURL; /* The LoadVars.sendAndLoad method conveniently accepts an XML Object as its target. We can send a string (url) to the PHP proxy script and get an XML document back. */ senderObj.sendAndLoad(proxyURL, _xml, "GET"); /* Use setInterval to monitor load progress every 25 milliseconds. Pass the XML document whose download progress you wish to monitor as the 4th argument. Ue of "this" in "this.loaderID" is critical for telling the loadingFeedback() method in what scope to find the XML object. Thanks to Colin Moock for the code this is based loosely on. */ this.loaderID = setInterval(this, "loadingFeedback", 25, _xml); } /* getNodes(): a recursive method for "walking" the XML tree searching for a match to a node name. This is based on an ActionScript 1 XML prototype by Peter Hall. The method returns an array of all XML nodes that match "name". It is used to populate the "items" array with all nodes in the rss document named "item". Note that a node of nodeType 3 is a text node (a string). We don't want to waste time with that now, so the script skips them. */ private function getNodes(node:XMLNode, name:String):Array { var nodes:Array = new Array(); var c:XMLNode = node.firstChild; while (c) { if (c.nodeType != 3) { if (c.nodeName == name) { nodes.push(c); } nodes = nodes.concat(getNodes(c, name)); } c = c.nextSibling; } return nodes; } /* displayContent() is the method responsible for extracting the data I am interested in (the text content of title, link and description) and formatting it for the TextArea component. */ private function displayContent(source:Array):Void { var entries:Number = source.length; var currentNode:XMLNode; var tempTitle:String; var tempLink:String; var tempDescription:String; for (var i:Number = 0; i"+tempTitle+ "

"+ tempDescription+"


"; var tmpObj:Object = new Object(); tmpObj.name = tempTitle; tmpObj.link = tempLink; tmpObj.desc = tempDescription; target_txt.push (tmpObj); // target_txt.text += oneEntry; } EventBroadcaster.getInstance().broadcastEvent("feedListMade", null); } /* extractContent() is a modified version of getNodes(). Like getNodes(), it searches the source node recursively for a match to "name", but what it returns when it does find a match is the text content of that node. */ private function extractContent (source:XMLNode, name:String):String { var nodeTxt:String = ""; var c:XMLNode = source.firstChild; while (c) { if (c.nodeType != 3) { if (c.nodeName == name) { nodeTxt = c.firstChild.nodeValue; } nodeTxt += extractContent(c, name); } c = c.nextSibling; } return nodeTxt; } //the progress monitor called by setInterval private function loadingFeedback(xmlObj:XML):Void { var amtLoaded:Number = xmlObj.getBytesLoaded(); if (amtLoaded <= 4){ // target_txt.text = "

Requesting Data...

"; } else { // target_txt.text = "

Loaded: "+ Math.floor(amtLoaded/1024) + " kilobytes

"; } } } \ No newline at end of file diff --git a/bPod/com/files/FileButton.as b/bPod/com/files/FileButton.as new file mode 100644 index 0000000..f5adced --- /dev/null +++ b/bPod/com/files/FileButton.as @@ -0,0 +1,89 @@ + +import com.services.BuckyServices; +import com.threads.ThreadButton; + +class com.files.FileButton extends ThreadButton { + private var username_mc:MovieClip; + private var backing:MovieClip; + private var initialAlpha:Number; + + private function handleRollOut():Void { +// _root.thumbnail.removeMovieClip(); + makeBlack(); + super.handleRollOut(); + } + + private function handleRollOver():Void { + super.handleRollOver(); + if ( (itemData.filetype == "JPG") || + (itemData.filetype == "GIF") || + (itemData.filetype == "PNG") ) { displayImageThumbnail (BuckyServices.getThumbURL (itemData.filename)); + makeWhite(); + } + } + + private function displayImageThumbnail(_inURL:String):Void { + + _root.imagesHolder.thumbnail.unloadMovie(); + _root.imagesHolder.createEmptyMovieClip ("thumbnail", _root.getNextHighestDepth()); + + try { + _root.imagesHolder.thumbnail.loadMovie (_inURL); + } + + catch (_err:Error) {} + + _root.imagesHolder.thumbnail._alpha = 50; + + var j:MovieClip = _root.imagesHolder.thumbnail; + + j._xscale = j._yscale = 200; +/* j._x = (Stage.width/2 - j._width/2); + j._y = (Stage.height/2 - j._height/2); +*/ + +// _root.imagesHolder.thumbnail._xscale = _root.imagesHolder.thumbnail._yscale = 250; + } + + + + + private function makeWhite():Void { + title_mc.title_txt.textColor =0xFFFFFF; + } + + private function makeBlack():Void { + title_mc.title_txt.textColor =0x000000; + } + + + + private function makeButton(_val:Object):Void { + title_mc.title_txt.text = _val.filename; + title_mc.title_txt.autoSize = true; + + + if (title_mc._height > 28.1) { + title_mc.title_txt.autoSize = false; + title_mc.title_txt._height = 28.1; + } + + initialAlpha = backing._alpha; + + if (_val.filetype == "MP3") { + transformTheButtonColor(); + } + + + title_mc._y = (_y + _height / 2) - (title_mc._height / 2) ; + + // backing._height = title_mc.title_txt._height; + + this.cacheAsBitmap = true; + super.setPosition(); + } + + private function transformTheButtonColor():Void { + } + +}; \ No newline at end of file diff --git a/bPod/com/files/FileScroller.as b/bPod/com/files/FileScroller.as new file mode 100644 index 0000000..991cf9c --- /dev/null +++ b/bPod/com/files/FileScroller.as @@ -0,0 +1,15 @@ +import com.oop.ScrollingMenuFrame; + +class com.files.FileScroller extends ScrollingMenuFrame +{ + var intRate:Number = 20; // scroller speed + + public function doLoad(_dataArray:Array):Void { + holder_mc.attachMovie("FileSelectionSystem", "files", 1000); + holder_mc["files"].doInit(_dataArray, "FileButton"); + +// holder_mc._x = 0; // use as needed! this puts the vert scroller back in view + holder_mc._y = 0; // when a keyword tile is clicked. + } + +}; \ No newline at end of file diff --git a/bPod/com/files/FileSelectionSystem.as b/bPod/com/files/FileSelectionSystem.as new file mode 100644 index 0000000..d93ea58 --- /dev/null +++ b/bPod/com/files/FileSelectionSystem.as @@ -0,0 +1,19 @@ +import com.threads.ThreadSelectionSystem; +import com.services.BuckyServices; + +class com.files.FileSelectionSystem extends ThreadSelectionSystem { + + private var itemsPerRow:Number = 1; + private var vertSpace:Number = 1; + + public function doAction():Void { + + var theItem:Object = systemData[getCurrentSelection()]; + var fileURL:String = BuckyServices.singleFilePath + theItem.filename; + + _root.debug.text = theItem.theURL; + + if (theItem.filetype == "MP3") { _root.player.init ( theItem ); } + else { getURL (theItem.theURL, "_blank"); } + } +}; \ No newline at end of file diff --git a/bPod/com/graphics/BuckyGradientBox.as b/bPod/com/graphics/BuckyGradientBox.as new file mode 100644 index 0000000..ffae2de --- /dev/null +++ b/bPod/com/graphics/BuckyGradientBox.as @@ -0,0 +1,43 @@ +// +// Gradient Box!!!!!!! +// +// Created by Brian Ortiz on 2007-09-08. +// Copyright (c) 2007 BONER FACTORY LTD. All rights reserved. +// + +import flash.geom.Matrix; + +class com.graphics.BuckyGradientBox extends MovieClip + { + private var _bar:MovieClip; + private var matrix:Matrix; + private var lineWidth:Number = 2; + + public function BuckyGradientBox() + { + } + + public function initColors(inColorOne:Number, inColorTwo:Number, inColorThree:Number, inW:Number, inH:Number) + { + + if (inColorOne == undefined) + inColorOne = 0xFFFFFF; + if (inColorTwo == undefined) + inColorTwo = 0xDDDDDD; + if (inColorThree == undefined) + inColorThree = 0x000000; + + matrix = new Matrix(); + matrix.createGradientBox(inW, inH, 0, 0, 0); + + beginGradientFill("radial", [inColorOne, inColorTwo], [100, 100], [0, 0xFF], matrix); + lineStyle(lineWidth, inColorThree, 100, true, "none", "none", "miter", 1); + + moveTo(0, 0); + lineTo(inW, 0); + lineTo(inW, inH); + lineTo(0, inH); + lineTo(0, 0); + endFill(); + } + }; \ No newline at end of file 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(); + } + + +}; + diff --git a/bPod/com/oop/GridSelectionSystem.as b/bPod/com/oop/GridSelectionSystem.as new file mode 100644 index 0000000..c9694ca --- /dev/null +++ b/bPod/com/oop/GridSelectionSystem.as @@ -0,0 +1,49 @@ +import com.oop.SelectionSystem; + +class com.oop.GridSelectionSystem extends SelectionSystem +{ + private var itemsPerRow:Number = 3; + private var currentRow:Number = 0; + private var currentColumn:Number = 0; + + //space between rows and columns + private var horizSpace:Number = -6; //60; + private var vertSpace:Number = 0; //50; + + public function GridSelectionSystem() {} + + private function attachButtonItems():Void { + //get placement object according to counts + for (var i:Number = 0; i < systemData.length; i++) { + updateGrid(i); + var item:MovieClip = this.attachMovie(exportName, "Item_" + i, i ); + item.init(this, i, systemData[i], getItemPositionObj()); + listItems.push(item); + } + } + + + + private function updateGrid(_index:Number) { + if(!(_index % itemsPerRow)) { currentColumn = 0; currentRow++; } + else { currentColumn++; } + } + + + private function getItemPositionObj():Object { + var obj:Object = new Object(); + obj.horizSpace = horizSpace; + obj.vertSpace = vertSpace; + obj.grid_x = currentColumn; + obj.grid_y = currentRow; + return obj; + } + + + + private function selectedData():MovieClip { + return systemData[ getCurrentSelection() ]; + } + + +} \ No newline at end of file diff --git a/bPod/com/oop/ScrollingMenuFrame.as b/bPod/com/oop/ScrollingMenuFrame.as new file mode 100644 index 0000000..5c91751 --- /dev/null +++ b/bPod/com/oop/ScrollingMenuFrame.as @@ -0,0 +1,148 @@ + +class com.oop.ScrollingMenuFrame extends MovieClip +{ + private var hotSpot_mc:MovieClip; // used to detect mouse events + private var holder_mc:MovieClip; // holder for the flat-list SelectionSystem + private var hotSpotMask:MovieClip; // bluh .. also used i guess + + private var initY:Number; + private var initX:Number; + + private var initHolderX:Number; + private var initHolderY:Number; + + var intRate:Number = 10; // scroller speed + + + public function ScrollingMenuFrame() { + doInit(); + } + + +/* public function doLoad(_dataArray:Array):Void { + holder_mc.attachMovie("KeywordSelectionSystem", "keywordTiles", 1000); + holder_mc["keywordTiles"].doInit(_dataArray, "KeywordButton"); + } +*/ + public function enableMenu():Void { + initMenuScroll(); + initMouseWatch(); + setHotSpot(true); + } + + + public function disableMenu():Void { + killMouseWatch(); + killMenuScroll(); + setHotSpot(false); + } + + + private function doInit():Void { + + initY = _x; + initX = _y; + + initHolderX = holder_mc._x; + initHolderY = holder_mc._y; + + initMenuScroll(); + + holder_mc.onMouseDown = function() { + if (this.hitTest(_root._xmouse, _root._ymouse, true)) { +// _parent.disableMenu(); + } + } + } + + + private function setHotSpot(_isMenuEnabled:Boolean):Void { + if (_isMenuEnabled) { + hotSpot_mc.onRollOver = undefined; + } else { + hotSpot_mc.onRollOver = function() { + this._parent.enableMenu(); + } + } + } + + + + private function initMouseWatch():Void { + this.onMouseMove = function() { + if (!this.hitTest(_root._xmouse, _root._ymouse, true)) { + disableMenu(); + } + } + } + + + private function killMouseWatch():Void { + this.onMouseMove = undefined; + } + + + private function initMenuScroll():Void { + this.onEnterFrame = function() { + if ((holder_mc._height >= hotSpotMask._height) || (holder_mc._width >= hotSpotMask._width)) { + doMenuScroll(); + } + } + } + + + private function killMenuScroll():Void { + this.onEnterFrame = undefined; + } + + + private function doMenuScroll():Void { + var intTop:Number = initHolderY; + var intLeft:Number = initHolderX; + var intBottom:Number = intTop + hotSpotMask._height; + var intRight:Number = intLeft + hotSpotMask._width; + + + var intZero:Number = (intBottom + intTop) / 2; + var intZeroW:Number = (intRight + intLeft) / 2; + + var intMousePos:Number = _ymouse - intZero; + var intMousePosW:Number = _xmouse - intZeroW; + + var intMaxUp:Number = intTop - intZero; + var intMaxLeft:Number = intLeft - intZeroW; + var intMaxDown:Number = intBottom - intZero; + var intMaxRight:Number = intRight - intZeroW; + + var _isHit:Boolean = this.hitTest(_root._xmouse, _root._ymouse, true); + + if (_isHit) { + + if (holder_mc._height > hotSpotMask._height ) { + + // top & bottom bounds check + + if (intMousePos > 0) { // below intZero? scroll up + holder_mc._y = Math.max(holder_mc._y - intRate * Math.pow((intMousePos/intMaxDown),2), intBottom - holder_mc._height) ; + } + else if (intMousePos < 0) { // above intZero? scroll down + holder_mc._y = Math.min(holder_mc._y + intRate * Math.pow((intMousePos/intMaxUp),2), intTop ); + } + + + // left & right bounds check + +/* if (intMousePosW > 0) { // right of intZero? scroll left + holder_mc._x = Math.max(holder_mc._x - intRate * Math.pow((intMousePosW/intMaxRight),2), intRight - holder_mc._width); + } + else if (intMousePosW < 0) { // left of intZero? scroll right + holder_mc._x = Math.min(holder_mc._x + intRate * Math.pow((intMousePosW/intMaxLeft),2), intLeft); + } +*/ + + } + + } + + } +} 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; } + + + +} diff --git a/bPod/com/oop/SelectionSystem.as b/bPod/com/oop/SelectionSystem.as new file mode 100644 index 0000000..2c89bf0 --- /dev/null +++ b/bPod/com/oop/SelectionSystem.as @@ -0,0 +1,89 @@ +/* + Manages a set of UI Buttons and controls selection state +*/ + +class com.oop.SelectionSystem extends MovieClip +{ + +//---------------------------------------------------------------------------------- + + + + // Data array passed in at instantiation + private var systemData:Array; + + // Linkage name of button clip + private var exportName:String; + + // Store our current state as a number + private var currentSelection:Number; + + // Store references to our items + private var listItems:Array; + + + + + +//---------------------------------------------------------------------------------- + + public function SelectionSystem() + { + + } + +//---------------------------------------------------------------------------------- + + public function doInit(_systemData:Array, _exportName:String):Void + { + systemData = _systemData; + exportName = _exportName; + listItems = new Array(); + attachButtonItems(); + + } + + + + public function setSelection(_id:Number):Void + { + if(currentSelection!=_id) + { + listItems[currentSelection].setUnselected(); + currentSelection = _id; + listItems[currentSelection].setSelected(); + doAction(); + } + } + + private function attachButtonItems():Void { + //override + } + + + private function doAction():Void + { + //override + } + + + // Getter/setters + + public function getSystemData():Array + { + return systemData; + } + + public function getCurrentSelection():Number + { + return currentSelection; + } + + public function setCurrentSelection(_val:Number):Void + { + currentSelection = _val; + } + + + +} \ No newline at end of file diff --git a/bPod/com/oop/UIButton.as b/bPod/com/oop/UIButton.as new file mode 100644 index 0000000..035c16c --- /dev/null +++ b/bPod/com/oop/UIButton.as @@ -0,0 +1,171 @@ + + +import com.oop.SelectionSystem; + +class com.oop.UIButton extends MovieClip +{ + +//-------------------------------------------------------------------------------------------- + + // Stores a reference to a SelectionSystem instance + private var selectionSystem:Object; + + // Numeric id passed in by SelectionSystem when attached + private var id:Number; + + + + + // Keeps track of the selection status of this clip + private var selected:Boolean; + + // Holds any custom visual information (such as title) + private var itemData:Object; + + // stores the history of this item + private var visited:Boolean; + + + + +//-------------------------------------------------------------------------------------------- +// constructor +//-------------------------------------------------------------------------------------------- + + public function UIButton() + { + } + +//-------------------------------------------------------------------------------------------- + + /* + Set up our reference, ID, and item data + then take care of the clip's ui + */ + public function init(_selectionSystem:SelectionSystem, _id:Number, _itemData:Object ):Void + { + selectionSystem = _selectionSystem; + itemData = _itemData; + id = _id; + _focusrect = false; + initMouseEvents(); + } + +//-------------------------------------------------------------------------------------------- + + /* + Select this clip. It will stay visually selected + because the mouse is rolled over it + */ + private function setSelected():Void + { + selected = visited = true; + killMouseEvents(); + } + +//-------------------------------------------------------------------------------------------- + + /* + Unselect this clip + */ + private function setUnselected():Void + { + selected = false; + initMouseEvents(); + } + +//-------------------------------------------------------------------------------------------- + + private function setTitle(_val:Object):Void + { + // override + } + +//-------------------------------------------------------------------------------------------- + + private function setPosition():Void + { + //override + } + +//-------------------------------------------------------------------------------------------- + + /* + Tell selectionSystem about the click and pass this clips ID with it + */ + private function handleRelease():Void + { + selectionSystem.setSelection(id); + } + +//-------------------------------------------------------------------------------------------- + + private function handlePress():Void + { + //override + } + +//-------------------------------------------------------------------------------------------- + + private function handleRollOver():Void + { + //override + } + +//-------------------------------------------------------------------------------------------- + + private function handleRollOut():Void + { + //override + } + +//-------------------------------------------------------------------------------------------- + + /* + Capture all of our mouse events and pass them + to the internal hander methods + */ + private function initMouseEvents() : Void + { + useHandCursor = false; + onRollOver = handleRollOver; + onRollOut = handleRollOut; + onReleaseOutside = handleRollOut; + onPress = handlePress; + onRelease = handleRelease; + } + +//-------------------------------------------------------------------------------------------- + + /* + Remove all mouse events while the clip is selected + */ + private function killMouseEvents():Void + { + useHandCursor = false; + delete onRollOver; + delete onRollOut; + delete onReleaseOutside; + delete this.onPress; + delete this.onRelease; + } + +//-------------------------------------------------------------------------------------------- +// Getter/Setters +//-------------------------------------------------------------------------------------------- + + public function getId():Number + { + return id; + } + +//-------------------------------------------------------------------------------------------- + + public function setId(_val:Number):Void + { + id = _val; + } + +//-------------------------------------------------------------------------------------------- + +} diff --git a/bPod/com/player/Player.as b/bPod/com/player/Player.as new file mode 100644 index 0000000..81acd3b --- /dev/null +++ b/bPod/com/player/Player.as @@ -0,0 +1,131 @@ + +import mx.utils.Delegate; +import com.services.BuckyServices; + +import mx.transitions.easing.*; +import mx.transitions.Tween; + + +class com.player.Player extends MovieClip +{ + var songList:Array; + public static var s:Sound; + + var currentSongTitle:String; + var currentSongInfo:String; + + var backing:MovieClip; + var collapseBtn:MovieClip; + var infoBtn:MovieClip; + var playPauseBtn:MovieClip; + + + var collapsed:Boolean; + var dragging:Boolean; + var initted:Boolean; + var infoState:Boolean; + var isPlaying:Boolean; + + var title_txt:TextField; + + var initBacking:Number; + var oldX:Number; + var oldY:Number; + + public function Player() { + initted = dragging = collapsed = infoState = useHandCursor = _focusrect = isPlaying = false; + } + + + public function init(_inObject:Object):Void { + + if (!initted) { + var t:Tween = new Tween(this, "_y", Elastic.easeOut, _y, 120, 1, true); + initted = true; + } + + infoBtn.gotoAndStop ("info"); + infoBtn._rotation = 0; + infoState = false; + collapseBtn.gotoAndStop ("collapse"); + playPauseBtn.gotoAndStop ("pauseIcon"); + + isPlaying = true; + + currentSongTitle = _inObject.filename; + title_txt.text = currentSongTitle; + songList.push (_inObject.theURL); + initBacking = backing._alpha; + + currentSongInfo = BuckyServices.activeKeyword + " > " + BuckyServices.activeThread; + + + stopAllSounds(); + + + s = new Sound(_root); + s.loadSound ( _inObject.theURL , true ); + s.start(); + } + + + + + private function doCollapse():Void { + if (!collapsed) { + oldX = _x; oldY = _y; + var vFunc:Function = function () { + var xTween = new Tween(this, "_x", Regular.easeOut, _x, 11, .2, true); + var yTween = new Tween(this, "_y", Regular.easeOut, _y, 9, .2, true); + collapsed = true; + } + var bTween = new Tween (collapseBtn, "_rotation", Regular.easeOut, collapseBtn._rotation, 90, .4, true); + var rTween = new Tween (this, "_rotation", Regular.easeOut, _rotation, -90, .4, true); + rTween.onMotionFinished = Delegate.create (this, vFunc); + } else { + var xTween = new Tween(this, "_x", Regular.easeOut, _x, oldX, .4, true); + var bTween = new Tween (collapseBtn, "_rotation", Elastic.easeOut, collapseBtn._rotation, 0, .8, true); + var yTween = new Tween(this, "_y", Regular.easeOut, _y, oldY, .4, true); + rTween = new Tween (this, "_rotation", Regular.easeOut, _rotation, 0, .4, true); + collapsed = false; + } + } + + private function doInfoBtn():Void { + var r:Number = infoState == true ? 0 : 180; + title_txt.text = infoState == true ? currentSongTitle : currentSongInfo; + new Tween(infoBtn, "_rotation", Regular.easeOut, infoBtn._rotation, r, .4, true); + infoState = !infoState; + } + + + private function doPlayPause():Void { + if (isPlaying) { s.stop(); isPlaying = false; playPauseBtn.gotoAndStop ("playIcon"); } + else { s.start(); isPlaying = true; playPauseBtn.gotoAndStop ("pauseIcon"); } + } + + + private function onPress():Void { + if (collapseBtn.hitTest (_root._xmouse, _root._ymouse)) { + doCollapse(); + } + else if (infoBtn.hitTest (_root._xmouse, _root._ymouse)) + { + doInfoBtn(); + } + else if (playPauseBtn.hitTest (_root._xmouse, _root._ymouse)) + { + doPlayPause(); + } + else { + var aTween:Tween = new Tween(this, "_alpha", Regular.easeOut, _alpha, 20, .4, true); + startDrag(this); + } + } + + private function onRelease():Void { + stopDrag(); + var aTween:Tween = new Tween(this, "_alpha", Regular.easeOut, _alpha, 100, .4, true); + } + +} \ No newline at end of file diff --git a/bPod/com/player/Visuals.as b/bPod/com/player/Visuals.as new file mode 100644 index 0000000..2a4ac7b --- /dev/null +++ b/bPod/com/player/Visuals.as @@ -0,0 +1,85 @@ + + +class com.player.Visuals extends MovieClip { + +// private var theRoot:MovieClip; + private var numParticles:Number = 10; + private var minDist:Number = 50; + private var springAmount:Number = .001; + + private var vbounds:MovieClip; + + public function Visuals() {} + + public function init():Void + { + setMask (vbounds); + + for(var i:Number=0; i< numParticles;i++) { + var particle:MovieClip = this.attachMovie("particle", "p" + i, i); + particle._x = Math.random() * vbounds._width; + particle._y = Math.random() * vbounds._height; + particle.vx = Math.random() * 6 - 3; + particle.vy = Math.random() * 6 - 3; + particle._xscale = particle._yscale = 10 + Math.random() * 100; + particle.mass = particle._xscale / 100; + } + +// onEnterFrame = initAnimation; + + + } + + private function onEnterFrame():Void + { + for(var i:Number = 0;i vbounds._width) { + particle._x = vbounds._x; + } + else if(particle._x < -10) { + particle._x = vbounds._width; + } + if(particle._y > vbounds._height) { + particle._y = vbounds._y; + } + else if(particle._y < -46) { + particle._y = vbounds._height; + } + } + + clear(); + for(i=0;i= 0 ; i--) { + var t:MovieClip = listItems[i]; + + t.overlay._visible = ( currentSelection == i) ? true : false; + + } + } + + private function eraseExistingSpinners():Void { + for (var i:Number = 0 ; i < listItems.length ; i++) { + var t:MovieClip = listItems[i]; + t.alphabet_mc._visible = true; + t.username_mc.username_txt.text = systemData[i].user; + 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.alphabet_mc._visible = false; + t.username_mc.username_txt.text = "loading!!!"; + t.createEmptyMovieClip ("spinnerHolder", t.getNextHighestDepth()); + t["spinnerHolder"].attachMovie ("Spinner", "spinner" , 100, {_x:196, _y:15, _width:18, _height:18}); + } + + + private function fileListMade (_evt:Object):Void { + + eraseExistingSpinners(); + + _root.debug.text = tube.articles.length; + + if (( tube.articles.length != undefined) && ( tube.articles.length != 0 )) { + + BuckyServices.setActiveThread ( selectedData() ); + + setCurrentSelection ( currentSelection ); + showSelectedFeedback(); + + BuckyServices.filesMC.doLoad( tube.articles , "FileButton" ); + + EventBroadcaster.getInstance().broadcastEvent("switchToFilesView", null); + + } else if ( tube.articles.length == 0 ) { + + _root.switcher.handleOpenThreadBtn(); + var t:MovieClip = listItems[currentSelection]; + t.username_mc.username_txt.text = "opening " + selectedData().user + "'s thread.."; + + } + } +}; \ No newline at end of file diff --git a/bPod/com/tubes/BuckyFileTube.as b/bPod/com/tubes/BuckyFileTube.as new file mode 100644 index 0000000..958523b --- /dev/null +++ b/bPod/com/tubes/BuckyFileTube.as @@ -0,0 +1,29 @@ +import com.events.EventBroadcaster; +import com.tubes.BuckyTube; + +class com.tubes.BuckyFileTube extends BuckyTube { + + public function BuckyFileTube(_inQuery:String) { + super (_inQuery); + } + + private function buildArray():Void { + articles = new Array(); + for ( var i=0 ; i < theTube.numItems ; i++) { + var fileNameStr:String = new String( theTube["filename"+i] ); + var fileSizeStr:String = new String( theTube["size"+i] ); + var urlStr:String = new String( theTube["url"+i] ); + var filetypeStr:String = new String( theTube["filetype"+i] ); + + var tmpObj:Object = new Object(); + tmpObj.filename = fileNameStr; + tmpObj.filesize = fileSizeStr; + tmpObj.filetype = filetypeStr; + tmpObj.theURL = urlStr; + +// if (filetypeStr == "MP3" || filetypeStr == "JPG" || filetypeStr == "GIF") + articles.push (tmpObj); + } + EventBroadcaster.getInstance().broadcastEvent("fileListMade", null); + } +}; \ No newline at end of file diff --git a/bPod/com/tubes/BuckyKeywordTube.as b/bPod/com/tubes/BuckyKeywordTube.as new file mode 100644 index 0000000..cff96ef --- /dev/null +++ b/bPod/com/tubes/BuckyKeywordTube.as @@ -0,0 +1,46 @@ +import com.events.EventBroadcaster; +import com.tubes.BuckyTube; + +class com.tubes.BuckyKeywordTube extends BuckyTube { + + public var tags:Array; + private var tagColor:Number = 0xFFFFFF; + + public function BuckyKeywordTube(_inQuery:String) { + super (_inQuery); + tags = new Array(); + } + + private function buildArray() { + articles = new Array(); + + + for ( var i=0 ; i < theTube.numItems ; i++) { + var keywordStr:String = new String( theTube["keyword"+i] ); + var colorStr:String = new String( theTube["color"+i] ); + + var tmpObj:Object = new Object(); + tmpObj.name = keywordStr; + tmpObj.color = colorStr; + + articles.push (tmpObj); + } + + if ( theTube.numTags ) + { + + for (var i:Number = 0 ; i < theTube.numTags ; i++) + { + var tagName:String = new String( theTube["tag"+i] ); + + var tmpObj:Object = new Object(); + tmpObj.name = tagName; +// tmpObj.color = tagColor; + tmpObj.isTag = 1; + tags.push (tmpObj); + } + } + + EventBroadcaster.getInstance().broadcastEvent("curtainsUp", null); + } +}; \ No newline at end of file diff --git a/bPod/com/tubes/BuckyThreadTube.as b/bPod/com/tubes/BuckyThreadTube.as new file mode 100644 index 0000000..f0fc0ad --- /dev/null +++ b/bPod/com/tubes/BuckyThreadTube.as @@ -0,0 +1,26 @@ +import com.events.EventBroadcaster; +import com.tubes.BuckyTube; + +class com.tubes.BuckyThreadTube extends BuckyTube { + + public function BuckyThreadTube(_inQuery:String) { + super (_inQuery); + } + + private function buildArray() { + articles = new Array(); + for ( var i=0 ; i < theTube.numItems ; i++) { + var titleStr:String = new String( theTube["title"+i] ); + var userStr:String = new String( theTube["user"+i] ); + var idStr:String = new String( theTube["id"+i] ); + + var tmpObj:Object = new Object(); + tmpObj.name = titleStr; + tmpObj.user = userStr; + tmpObj.id = idStr; + + articles.push (tmpObj); + } + EventBroadcaster.getInstance().broadcastEvent("threadListMade", null); + } +}; \ No newline at end of file diff --git a/bPod/com/tubes/BuckyTube.as b/bPod/com/tubes/BuckyTube.as new file mode 100644 index 0000000..8e57a80 --- /dev/null +++ b/bPod/com/tubes/BuckyTube.as @@ -0,0 +1,23 @@ +import com.events.EventBroadcaster; +import mx.utils.Delegate; + +class com.tubes.BuckyTube { + + private var query:String; + private var theTube:LoadVars; + public var articles:Array; + + public function BuckyTube(_inQuery:String) { + query = _inQuery; + init(); + } + + private function init() { + theTube = new LoadVars(); + theTube.onLoad = Delegate.create (this, buildArray); + theTube.sendAndLoad( query, theTube, "POST"); + } + + private function buildArray() {} // override plz; + +}; \ No newline at end of file diff --git a/bPod/css/bogart.css b/bPod/css/bogart.css new file mode 100644 index 0000000..d07ef77 --- /dev/null +++ b/bPod/css/bogart.css @@ -0,0 +1,228 @@ + + +#console { + display: box; +/* visibility: hidden; + height: 0px; initial state */ +} + + +body { + background-color: #eaf0f0; + color: #111111; + font-size: 10px; + font-family: Trebuchet MS, Helvetica, Arial, sans-serif; + margin: 20px; +} +small + { + font-size: 10px; + } +table { + border: 0px; + margin: 3px; +} +.threadmain { + border: 0px; +} +.main { + border: 1px solid #e0e8e8; +} +.head { + background-color: #d8e0e8; +} +.head a:link { color: #000;} +.head a:visited { color: #000;} +.head a:active { color: #000;} +.head a:hover { color: #558;} +.bare { + background-color: #e6f0f0; + padding: 0px; + margin: 0px; +} +tr:hover { } +tr.row + { + background-color: #e6f0f0; + } +tr.row0 + { + background-color: #e6f0f0; + } +tr.row0:hover + { + background-color: #d8e0ec; + color: #000000; + } +tr.row1 + { + background-color: #e0e8e8; + } +tr.row1:hover + { + background-color: #d8e0ec; + color: #000000; + } + +td.row0 + { + background-color: #eaf0f0; + border-bottom: 1px solid #e8eaea; + } +td.row0:hover + { + background-color: #d9e0ec; + color: #000000; + border-bottom: 1px solid #d0d3d3; + } +td.row1 + { + background-color: #dde6e6; + border-bottom: 1px solid #e8eaea; + } +td.row1:hover + { + background-color: #d9e0ec; + color: #000000; + border-bottom: 1px solid #d0d3d3; + } + +td { + color: #111111; + font-size: .71em; + font-family: Trebuchet MS, Helvetica, Arial, sans-serif; + margin: 0; + padding: 1px; + border: 0px; +} +.bluebox { + background-color: #d8e0ec; + color: #000000; + text-align: center; + border: 2px solid #201010; + padding: 3px; + margin: 3px; +} +.message { + background-color: #d8e0ec; + color: #000000; + width: 200px; + text-align: center; + border: 2px solid #201010; + padding: 3px; + margin: 3px; +} +.new { + font-weight: bold; + color: #000000; +} +.recent { + color: #001111; +} +.med { + color: #203838; +} +.old { + color: #425050; +} +.older { + color: #5D6464; +} +.quiet { + color: #787878; +} +.nfo { + background-color: #e0e8e8; + color: #000000; + border: 2px solid #201010; + width: 570px; + font-size: 12px; + font-family: Courier New, Fixedsys, monospace; + white-space: pre; + text-align: left; + margin-left: 90px; + padding: 3px; +} +a:link { color: #2050ca; text-decoration: underline; } +a:visited { color: #1030aa; text-decoration: none; } +a:active { color: #a0a0c7; text-decoration: underline; } +a:hover { color: #2040f0; text-decoration: underline; } +hr { + background-color: #201010; +} +.commentbox + { + padding: 0px; + margin: 1px; + text-align: left; + width: 100%; + } +.commentuser + { + padding: 0px 2px 6px 0px; + text-align: right; + font-size: 9px; + border: 0px; + color: #454565; + border-top: 1px #666 solid; + margin: 0px; + } +.comment + { + border: 0px; + padding: 0px 2px 0px 2px; + font-size: 11px; + } +.commenttop + { + border: 0px; + padding: 2px 2px 0px 2px; + font-size: 11px; + } +.threadname + { + padding: 3px; + font-size: 11px; + font-family: georgia, garamond, serif; + } +.bigtitle + { + font-size: 30px; + font-weight: bold; + } +.clicky + { + font-size: 10px; + font-family: Trebuchet MS, Helvetica, Arial, sans-serif; + font-weight: bold; + color: #140A0A; + border: 2px #140A0A solid; + padding: 1px; + margin: 3px; + background-color: #c8d0dc; + } +.thumb + { + border: 1px solid #38383d; + padding: 0px; margin: 0px; + } +.thumb a + { + color: #38383d; + } +.filename + { + text-align: left; + padding-left: 5px; + padding-right: 10px; + } +.filesize + { + text-align: right; + padding-left: 10px; + padding-right: 5px; + } + + + + diff --git a/bPod/index.html b/bPod/index.html new file mode 100644 index 0000000..e40d925 --- /dev/null +++ b/bPod/index.html @@ -0,0 +1,205 @@ + + + buckyPhone: 1.0 beta + + + + +
+ + + + +
+ +
+ + +
buckyPhone: 1.0 beta
+ + + + + +
+
+
+home | library | +dump | +post | +ftp | +inbox | +profile | +logout + +jules, rfleming [6m], rakubian [26m], tfarnon [1h3m], pants [1h13m], winslow [5h], marc [20h] | userlist +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
up13 · show all · post · ftp · settings
marc · BUCK-E-VITE: up13 party SAT FEB 24 2-Mar-2007  4:06 am14 c.756.0 mb. in 57 f.
marc · murphy's quest 26-Feb-2007 12:48 pm2 c.1.2 mb. in 10 f.
jules : Civilization ll Multiplayer GOLD 26-Feb-2007 10:22 am1 c.52.9 mb. in 1 f.
marc · up13 circa 2007 13-Feb-2007  3:23 pm3.6 mb. in 24 f.
tfarnon · up13 circa 2001 5-Feb-2007  8:20 am3 c.3.8 mb. in 63 f.
jules · Buckminster suggestion dome 3-Mar-2007  8:12 pm42 c.50 kb. in 1 f.
winslow · Youtube Depot 3-Mar-2007  2:13 am71 c.
OWL · OWL - oogy boogy 1-Mar-2007 10:47 pm1 c.638 kb. in 2 f.
winslow · Fivel and I Folk it up (not really an album) 1-Mar-2007  1:28 pm5 c.2.0 mb. in 2 f.
cocco · whos bot omhboys delay? 1-Mar-2007  1:26 pm3 c.
bwhit · vid 4 jules 1-Mar-2007  1:26 pm3 c.27.6 mb. in 1 f.
ilya · Attack of the Kino-Eye ('mysterious' trailer) 1-Mar-2007  2:12 am10 c.100.5 mb. in 3 f.
flop4andy · Mac Software from Leafcutter John 27-Feb-2007 11:20 am1 c.
PHOTOS · Sampson at Arby's 23-Feb-2007  9:38 pm1.6 mb. in 9 f.
bwhit · pics for jules 22-Feb-2007  7:14 pm4 c.12.8 mb. in 6 f.
marc · cortland and mission 13-Feb-2007  7:18 pm2 c.3.4 mb. in 11 f.
marc · more like bernal whites... 13-Feb-2007  5:06 pm1 c.6.7 mb. in 41 f.
marc · Donuts 6-Feb-2007  7:17 pm1 c.1.1 mb. in 13 f.
cocco · daft punk samples revealed 21-Feb-2007  7:51 pm13 c.
marc · OMG you guys 19-Feb-2007  7:12 pm2 c.10.9 mb. in 1 f.
hireo · adobe audition for mac??? 19-Feb-2007  3:04 pm2 c.
winslow · jamsogooood 18-Feb-2007  4:53 pm2 c.20.0 mb. in 1 f.
SAMPLES · Sample Act Royale 18-Feb-2007  8:25 am1 c.33.3 mb. in 26 f.
winslow · FOR MY DEAREST WINSLITO 18-Feb-2007 12:26 am208.8 mb. in 1 f.
marc · hellay channelz 17-Feb-2007  9:35 pm1 c.174.3 mb. in 5 f.
jules · rock club today? 17-Feb-2007  7:33 pm4 c.38.3 mb. in 6 f.
winslow · songforwinslow 16-Feb-2007  9:15 pm3 c.111.1 mb. in 1 f.
rakubian · Happy D-DAY 15-Feb-2007  7:52 am3 c.5.4 mb. in 6 f.
winslow · Ilya song, end theme 15-Feb-2007  3:57 am1 c.173.1 mb. in 2 f.
HELLAY · hellay jasperfied 20070127 14-Feb-2007  4:08 pm9 c.124.4 mb. in 13 f.
cocco · studio jam 14-Feb-2007  7:16 am1 c.
cocco · new avalanches!!!!!!! 13-Feb-2007  7:29 pm2 c.9.5 mb. in 2 f.
cocco · so this kid gets his report card 10-Feb-2007 11:30 pm3 c.
SAMPLES · Winslow's Sample Library CD 4 10-Feb-2007  4:52 pm1 c.70.7 mb. in 3 f.
cocco · help my pc died!!! 8-Feb-2007  9:45 pm3 c.
bwhit · fly fishing shows 5-Feb-2007  6:57 pm1 c.271.5 mb. in 7 f.
ALBUMS · Eccentric Soul - Deep City Label 27-Feb-2007 11:06 pm1 c.84.1 mb. in 18 f.
winslow · David Axelrod- Heavy Axe 27-Feb-2007 11:02 am1 c.134.7 mb. in 10 f.
winslow · Pixies, Coachella 5/1/04 26-Feb-2007 10:51 pm145.2 mb. in 23 f.
winslow · Pixies, Newport Jazz Fest 05 26-Feb-2007  2:18 pm1 c.177.9 mb. in 23 f.
rakubian · Joe Gibbs and the Professionals - African Dub 25-Feb-2007  5:17 pm1 c.68.5 mb. in 11 f.
rakubian · Augustus Pablo - East of the River Nile (dub) 25-Feb-2007 12:53 pm1 c.87.6 mb. in 19 f.
MOVIES · Space Is The Place (1974) 26-Feb-2007  2:40 pm1 c.682.8 mb. in 2 f.
al · Zardoz (1974) 23-Feb-2007  3:49 pm2 c.698.5 mb. in 2 f.
al · Assault On Precinct 13 (1976) 22-Feb-2007  1:11 pm2 c.696.0 mb. in 2 f.
tfarnon · The Prestige (2006) 22-Feb-2007  1:57 am2 c.700.7 mb. in 2 f.
al · Beyond The Valley Of The Dolls (1970) 20-Feb-2007 12:58 am2 c.701.8 mb. in 2 f.
pants · Hollywoodland (2006) 15-Feb-2007  9:34 pm3 c.1 020.8 mb. in 2 f.
TV · Metalocalypse season one 27-Feb-2007  2:15 am4 c.2 010.5 mb. in 21 f.
marc · Stephen King - La Rebelion De Las Maquinas 13-Feb-2007 11:22 pm1 c.696.6 mb. in 2 f.
WAREZ · Toast 7.1.2 for Mac 28-Feb-2007  3:27 pm4 c.81.0 mb. in 2 f.
jules · FL Studio v7.0.0 XXL 22-Feb-2007  4:21 pm11 c.158.7 mb. in 21 f.
tonylim80 · ableton live for winslow 21-Feb-2007  9:05 pm4 c.50.1 mb. in 2 f.
cocco · wavelabbe 5.01b 21-Feb-2007  8:13 pm1 c.26.3 mb. in 1 f.
marc · Renoise 1.52 OSX - tracker 14-Feb-2007 12:02 am4 c.15.2 mb. in 1 f.
tonylim80 · reaktor UB(for intel mac) 13-Feb-2007 12:06 am8 c.192.2 mb. in 1 f.
next 50 threads >>
+
+buckyPhone: 1.0 beta +
+you are using 5 327.9 mb. in 95 files
+ + + +
+ + + + + + + +
+quick-start a new thread +
+ +
+ + + +subject:
+ +
+ +description:
+ +
+ + +
+
+
+ + + + + + + +
+
+ + + + + +
+ + + +
+
+
king kill 33 [revisionisthistory.org]
marc at 1-Mar-2007 4:30 pm
Rabbit Rabbit!
winslow at 1-Mar-2007 3:30 pm
HOOT BONGS
jules at 1-Mar-2007 12:53 pm
anybody but anybody got some kind of audio tracker program that isn't fruity?
flop4andy at 27-Feb-2007 11:04 am
hmoob earcammed it from through the vent
jules at 25-Feb-2007 10:42 pm
wewp w3wp w00p! Any body capture any of it on various electronic devices besides marc?
rakubian at 25-Feb-2007 4:00 pm
Awesome Party Dude!
winslow at 25-Feb-2007 9:37 am
up with wangs / down with chungs
tfarnon at 23-Feb-2007 11:38 am
CPA 4 life!
winslow at 21-Feb-2007 10:26 pm
Consider this: a man, alone, watching TV, craving ice cream.
rfleming at 21-Feb-2007 5:52 pm
gotta have an O / M / G .. if you wanna be / with / me
tfarnon at 21-Feb-2007 11:50 am
Mayb e we can change it to Carl Weathers' Day
rakubian at 20-Feb-2007 4:24 pm
Carl Weathers, Carl Weathers, talk to me about, Carl Weathers!
winslow at 20-Feb-2007 11:23 am
+
+ +
+ +
+
+ + + + diff --git a/bPod/main.as b/bPod/main.as new file mode 100644 index 0000000..0c7ef13 --- /dev/null +++ b/bPod/main.as @@ -0,0 +1,47 @@ +import com.tubes.BuckyKeywordTube; +import com.events.EventBroadcaster; +import com.events.RightClick; +import com.services.BuckyServices; + +var tube:BuckyKeywordTube; + +initApp(); + +function initApp():Void { + _root.debug.text = _root.activeUser; + new RightClick(); + BuckyServices.init(); + EventBroadcaster.getInstance().addEventListener("curtainsUp", this); + + tube = new BuckyKeywordTube ( BuckyServices.keywords ); +} + +function curtainsUp(_evt:Object):Void { + + // these vals passed in via html SWFObject. + + if (_root.debuggerVisible) + _root.debug._x = 4; // _root.debuggerVisible; + + _root.squareBackground.initColors (_root.uiGradient1, _root.uiGradient2, _root.uiStroke, 208, 208); + + if (_root.backgroundImage != undefined) + { + _root.squareBackground.image.loadMovie ( _root.backgroundImage); + _root.squareBackground.image._alpha = _root.backgroundImageAlpha; + } + + BuckyServices.keywordsMC.doLoad( tube.articles ); + + BuckyServices.keywordsMC.insertAdornment(); + if (tube.tags.length > 0) + { + BuckyServices.keywordsMC.insertTags ( tube.tags ); + } + + if (_root.showFeeds) + { + BuckyServices.keywordsMC.insertAdornment(); + BuckyServices.keywordsMC.insertFeeds(); + } +} \ No newline at end of file diff --git a/bPod/php/buckyFiles.php b/bPod/php/buckyFiles.php new file mode 100644 index 0000000..00fdafd --- /dev/null +++ b/bPod/php/buckyFiles.php @@ -0,0 +1,102 @@ +
"; + if ($startIndex > 0) { + echo "previous " . ($page+1) . ""; + echo "  |  "; + } + + echo "next " . ($page+1) . ""; + echo "
files " . $startIndex . " - " . $endIndex . " on bucky:
"; + + for ($i=$startIndex; $i <= $endIndex; $i++) { + $row = mysql_fetch_array($query); + if (doubleCheck ($row)) + { + echo "
"; + echo $i . " "; + echo fileExt($row['filename'] . ": "); + echo "on "; + echo strtolower (date("D M j", $row['date'] )); + echo " "; + echo $row['username']; + echo " uploaded "; + echo "" . + "". + $row['filename']. + "". + ""; + echo " (" . sizeinK ($row['size']) . ")"; + } + } + } + + function doubleCheck ($row) { + if (!$row['filename'] || !$row['date'] || !$row['username'] || !$row['parent_id'] || !$row['size']) + { + echo "
(this file looks weird/null -- not listing)"; + return (false); + } else { + return (true); + } + } + + function fileExt ($inStr) { + return strtoupper (end(explode('.',$inStr))); + } + + function sizeinK($bytes) { + $size = $bytes / 1024; + if($size < 1024) { + $size = number_format($size, 2); + $size .= 'k'; + } else { if ($size / 1024 < 1024) { + $size = number_format($size / 1024, 2); + $size .= 'mb'; + } else if ($size / 1024 / 1024 < 1024) { + $size = number_format($size / 1024 / 1024, 2); + $size .= ' GB'; + } + } + return $size; + } +?> \ No newline at end of file diff --git a/bPod/php/buckyf.php b/bPod/php/buckyf.php new file mode 100644 index 0000000..3f92939 --- /dev/null +++ b/bPod/php/buckyf.php @@ -0,0 +1,66 @@ + + + + + (this file looks weird/null -- not listing)"; + return (false); + } else { + return (true); + } + } + + function fileExt ($inStr) { + return strtoupper (end(explode('.',$inStr))); + } + + + function sizeinK($bytes) { + $size = $bytes / 1024; + if($size < 1024) { + $size = number_format($size, 2); + $size .= 'k'; + } else { if ($size / 1024 < 1024) { + $size = number_format($size / 1024, 2); + $size .= 'mb'; + } else if ($size / 1024 / 1024 < 1024) { + $size = number_format($size / 1024 / 1024, 2); + $size .= ' GB'; + } + } + return $size; + } +?> \ No newline at end of file diff --git a/bPod/php/buckyk.php b/bPod/php/buckyk.php new file mode 100644 index 0000000..bda0355 --- /dev/null +++ b/bPod/php/buckyk.php @@ -0,0 +1,37 @@ + \ No newline at end of file diff --git a/bPod/php/buckyth.php b/bPod/php/buckyth.php new file mode 100644 index 0000000..617e354 --- /dev/null +++ b/bPod/php/buckyth.php @@ -0,0 +1,34 @@ + -1; $i--) { + $row = mysql_fetch_array($query); + $rString .= "&title" .$i ."=". $row['title']; + $rString .= "&user" .$i ."=". $row['username']; + $rString .= "&id" .$i ."=". $row['id']; + } + echo $rString; +?> \ No newline at end of file diff --git a/bPod/php/cybozuLab/rssParser/FetchingRss.as b/bPod/php/cybozuLab/rssParser/FetchingRss.as new file mode 100644 index 0000000..bca92c1 --- /dev/null +++ b/bPod/php/cybozuLab/rssParser/FetchingRss.as @@ -0,0 +1 @@ +/* Action script 2.0 RSS parser package Copyright (C) 2006 Cybozu Labs, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /* class: com.cybozuLab.rssParser.FetchingRss version: 0.1 modified: 31/Jan/2006 Fetching RSS2.0 feed and set Action Script 2.0 XML tree. */ import com.cybozuLab.rssParser.*; class com.cybozuLab.rssParser.FetchingRss { private static var DEBUG:Boolean = false; private var targetURL:String; //target rss feed URL private var httpStatusCode:Number; private var httpStatusType:String; private var errorMessage:String; private var rssXml:XML; private var rssParser:ParsingRss; private var calledParserFlag:Boolean; /* function: FetchingRss constructor */ public function FetchingRss( url:String ) { var thisObj:FetchingRss = this; calledParserFlag = false; if( url != undefined ) { targetURL = url; } rssXml = new XML(); rssXml.ignoreWhite = true; rssXml.onHTTPStatus = function( httpStatus:Number ) { thisObj.FetchingRssOnHTTPStatus( httpStatus ); } rssXml.onLoad = function( successFlag:Boolean ) { thisObj.FetchingRssOnLoad( successFlag, thisObj.rssXml.status ); if( successFlag == true ) { thisObj.calledParserFlag = true; thisObj.rssParser = new ParsingRss( thisObj.rssXml ); } thisObj.onLoad( successFlag, thisObj.errorMessage ); } } public function load( url:String ):Boolean { if( url != undefined ) { targetURL = url; } if( targetURL == undefined ) { errorMessage = "Setting Error : Called without source URL."; return false; } calledParserFlag = false; rssXml.load( targetURL ); return true; } public function onLoad( success:Boolean, errorMessage:String ) { } public function getTargetUrl():String { return targetURL; } public function getRssXml():XML { return rssXml; } public function getRssObject():Object { if( calledParserFlag ) { return rssParser.getRssObject(); } return new Object(); } public function traceRssObject():Void { if( calledParserFlag ) { Utils.traceObj( rssParser.getRssObject() ); } } public function getErrorMessage():String { return errorMessage; } /* function: FetchingRssOnHTTPStatus Classify an HTTP status code. */ private function FetchingRssOnHTTPStatus( httpStatus:Number ) { httpStatusCode = httpStatus; if( httpStatus < 100 ) { httpStatusType = "flashError"; } else if( httpStatus < 200 ) { httpStatusType = "information"; } else if( httpStatus < 300 ) { httpStatusType = "successful"; } else if( httpStatus < 400 ) { httpStatusType = "redirection"; } else if( httpStatus < 500 ) { httpStatusType = "client error"; } else if (httpStatus < 600 ) { httpStatusType = "server error"; } else { httpStatusType = "unknown"; } if( DEBUG ) { trace( "httpStatus : " + httpStatusCode ); trace( "httpStatusType : " + httpStatusType ); } } private function FetchingRssOnLoad( successFlag:Boolean, statusNum:Number ) { var eMessage:String; if( successFlag ) { switch ( statusNum ) { case 0 : eMessage = "Parse was completed successfully."; break; case -2 : eMessage = "A CDATA section was not properly terminated."; break; case -3 : eMessage = "The XML declaration was not properly terminated."; break; case -4 : eMessage = "The DOCTYPE declaration was not properly terminated."; break; case -5 : eMessage = "A comment was not properly terminated."; break; case -6 : eMessage = "An XML element was malformed."; break; case -7 : eMessage = "Out of memory."; break; case -8 : eMessage = "An attribute value was not properly terminated."; break; case -9 : eMessage = "A start-tag was not matched with an end-tag."; break; case -10 : eMessage = "An end-tag was encountered without a matching start-tag."; break; default : eMessage = "An unknown error has occurred."; break; } if( statusNum != 0 ) { errorMessage = "Parsing Error : XML was loaded successfully, but was unable to be parsed. (Error : "+eMessage+")"; } else { errorMessage = eMessage; } } else { errorMessage = "Loading Error : Failed to load RSS feed. ( httpStatus : "+httpStatusCode+" - "+httpStatusType+")"; } } } \ No newline at end of file diff --git a/bPod/php/cybozuLab/rssParser/ParsingRss.as b/bPod/php/cybozuLab/rssParser/ParsingRss.as new file mode 100644 index 0000000..bff2161 --- /dev/null +++ b/bPod/php/cybozuLab/rssParser/ParsingRss.as @@ -0,0 +1 @@ +/* Action script 2.0 RSS parser package Copyright (C) 2006 Cybozu Labs, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /* class: com.cybozuLab.rssParser.ParsingRss version: 0.1 Last-modified: 01/Feb/2006 Parsing RSS 2.0 feed for Action Script 2.0 */ import com.cybozuLab.rssParser.*; class com.cybozuLab.rssParser.ParsingRss { private static var DEBUG:Boolean = false; private var targetRssXml:XMLNode; //rss feed XML Node tree private var errorMessage:String; private var parsedRssObj:Object; private var parsedRssChannelObj:Object; private var parsedRssItemObj:Array; private var isInRssTag:Boolean; private var isInChannelTag:Boolean; private var isInItemTag:Boolean; private var currentChannelNum:Number; private var currentItemNum:Number; private var channelStackArray:Array; private var itemStackArray:Array; private var nodeObjStack:Array; /* function: ParsingRss constructor */ public function ParsingRss ( sourceData:XMLNode ) { if( sourceData == undefined ) { errorMessage = "Parsing Error : Called without source data."; throw new RssParserException( errorMessage ); } targetRssXml = sourceData; isInRssTag = false; isInChannelTag = false; isInItemTag = false; currentItemNum = 0; channelStackArray = new Array(); itemStackArray = new Array(); parsedRssObj = new Object(); parsedRssChannelObj = new Object(); parsedRssItemObj = new Array(); parseRss( targetRssXml ); parsedRssObj["channel"] = parsedRssChannelObj; parsedRssObj["channel"]["item"] = parsedRssItemObj; } public function getRssObject():Object { return parsedRssObj; } public function traceRssObject():Void { Utils.traceObj( parsedRssObj ); } private function parseRss( currentNode:XMLNode ):Void { for ( var aNode:XMLNode = currentNode; aNode != null; aNode = aNode.nextSibling ) { if( isInItemTag ) { itemStackArray.unshift( aNode.nodeName ); } else if( isInChannelTag ) { channelStackArray.unshift( aNode.nodeName ); } /* Parse attributes. */ if( ! isInRssTag && aNode.nodeName.toLowerCase() == "rss" && Utils.countProperty( aNode.attributes ) >0 ) { nodeObjStack = Array(); appendAttribute( parsedRssObj, aNode.attributes ); } else if( isInItemTag && Utils.countProperty( aNode.attributes) >0 ) { nodeObjStack = itemStackArray.slice( 0 ); appendAttribute( parsedRssItemObj[ currentItemNum ], aNode.attributes ); } else if( isInChannelTag && Utils.countProperty( aNode.attributes ) >0 ) { nodeObjStack = channelStackArray.slice( 0 ); appendAttribute( parsedRssChannelObj, aNode.attributes ); } /* Parse child node or data. */ if( ! isInRssTag && aNode.nodeName.toLowerCase() == "rss" ) { isInRssTag = true; parseRss(aNode.firstChild); isInRssTag = false; } else if( ! isInChannelTag && aNode.nodeName.toLowerCase() == "channel" ) { isInChannelTag = true; parseRss(aNode.firstChild); isInChannelTag = false; currentChannelNum++; } else if( ! isInItemTag && channelStackArray.length == 1 && aNode.nodeName.toLowerCase() == "item" ) { isInItemTag = true; parsedRssItemObj[ currentItemNum ] = new Object(); parseRss(aNode.firstChild); isInItemTag = false; currentItemNum++; } else if( aNode.firstChild.nodeType == 1 ) { parseRss( aNode.firstChild ); } else if( aNode.firstChild.nodeType == 3 ) { if( isInItemTag ) { nodeObjStack = itemStackArray.slice( 0 ); appendNodeValue( parsedRssItemObj[ currentItemNum ], aNode.firstChild.nodeValue ); } else if( isInChannelTag ) { nodeObjStack = channelStackArray.slice( 0 ); appendNodeValue( parsedRssChannelObj, aNode.firstChild.nodeValue ); } else { trace("no rss value : "+ aNode.firstChild.nodeValue); } } if( isInItemTag ) { itemStackArray.shift( ); } else if( isInChannelTag ) { channelStackArray.shift( ); } } // close for loop } // close function private function appendNodeValue( nodeObj:Object, nodeValue:String ) { if( nodeObjStack.length > 0 ) { var key = nodeObjStack.pop(); if( nodeObj[ key ] == undefined ) { nodeObj[ key ] = new Object(); if( key != key.toLowerCase() ) { nodeObj[ key.toLowerCase() ] = new Object(); } } appendNodeValue( nodeObj[ key ], nodeValue ); if( key != key.toLowerCase() ) { appendNodeValue( nodeObj[ key.toLowerCase() ], nodeValue ); } } else { nodeObj["value"] = nodeValue; } } private function appendAttribute( nodeObj:Object, attributes:Object ) { if( nodeObjStack.length > 0 ) { var key = nodeObjStack.pop(); if( nodeObj[ key ] == undefined ) { nodeObj[ key ] = new Object(); if( key != key.toLowerCase() ) { nodeObj[ key.toLowerCase() ] = new Object(); } } appendAttribute( nodeObj[ key ], attributes ); if( key != key.toLowerCase() ) { appendAttribute( nodeObj[ key.toLowerCase() ], attributes ); } } else { nodeObj["attrs"] = attributes; } } } \ No newline at end of file diff --git a/bPod/php/cybozuLab/rssParser/RssParserException.as b/bPod/php/cybozuLab/rssParser/RssParserException.as new file mode 100644 index 0000000..6b8f9dc --- /dev/null +++ b/bPod/php/cybozuLab/rssParser/RssParserException.as @@ -0,0 +1 @@ +/* Action script 2.0 RSS parser package Copyright (C) 2006 Cybozu Labs, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /* class: com.cybozuLab.rssParser.RssParserException modified: 12/Jan/2006 Exception Class for RssParser package. */ class com.cybozuLab.rssParser.RssParserException extends Error { public function RssParserException( errMessage:String ) { message = errMessage; } } \ No newline at end of file diff --git a/bPod/php/cybozuLab/rssParser/Utils.as b/bPod/php/cybozuLab/rssParser/Utils.as new file mode 100644 index 0000000..ddfe31c --- /dev/null +++ b/bPod/php/cybozuLab/rssParser/Utils.as @@ -0,0 +1 @@ +/* Action script 2.0 RSS parser package Copyright (C) 2006 Cybozu Labs, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /* class: com.cybozuLab.rssParser.Utils modified: 20/Jan/2006 Utilities for RSS parser package. */ class com.cybozuLab.rssParser.Utils { private static var INTEND_SPACE_NUMBER:Number = 3; static public function traceObj( targetObj:Object, hierarchyLevel:Number ):Void { if( hierarchyLevel == undefined ) { hierarchyLevel = 0; } for( var prop in targetObj ) { if( typeof( targetObj[prop] ) != "object" ) { trace( makeIntendSpace( hierarchyLevel ) + prop + " : " + targetObj[prop] ); } else { trace( makeIntendSpace( hierarchyLevel ) + prop ); hierarchyLevel++; traceObj( targetObj[prop], hierarchyLevel ); hierarchyLevel--; } } } static public function objToString( targetObj:Object, hierarchyLevel:Number ):String { var resultStr:String = ""; if( hierarchyLevel == undefined ) { hierarchyLevel = 0; } for( var prop in targetObj ) { if( typeof( targetObj[prop] ) != "object" ) { resultStr += makeIntendSpace( hierarchyLevel ) + prop + " : " + targetObj[prop] + "\n"; } else { resultStr += makeIntendSpace( hierarchyLevel ) + prop + "\n"; hierarchyLevel++; resultStr += objToString( targetObj[prop], hierarchyLevel ); hierarchyLevel--; } } return resultStr; } static private function makeIntendSpace( hierarchyLevel:Number ):String { var resultString:String = ""; for( var i:Number=0; i < INTEND_SPACE_NUMBER * hierarchyLevel; i++ ) { resultString += " "; } return resultString+"|-"; } static public function countProperty( targetObj:Object ):Number { var i:Number = 0; for( var prop in targetObj ) { i++; } return i; } } \ No newline at end of file diff --git a/bPod/rssProxy.php b/bPod/rssProxy.php new file mode 100644 index 0000000..d9c6e44 --- /dev/null +++ b/bPod/rssProxy.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/bPod/swfobject/swfobject.js b/bPod/swfobject/swfobject.js new file mode 100644 index 0000000..7345ef0 --- /dev/null +++ b/bPod/swfobject/swfobject.js @@ -0,0 +1,138 @@ +/** + * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ + * + * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for + * legal reasons. + */ +if(typeof deconcept=="undefined"){var deconcept=new Object();} +if(typeof deconcept.util=="undefined"){deconcept.util=new Object();} +if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();} +deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){if(!document.getElementById){return;} +this.DETECT_KEY=_b?_b:"detectflash"; +this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY); +this.params=new Object(); +this.variables=new Object(); +this.attributes=new Array(); +if(_1){this.setAttribute("swf",_1);} +if(id){this.setAttribute("id",id);} +if(w){this.setAttribute("width",w);} +if(h){this.setAttribute("height",h);} +if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));} +this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion(); +if(c){this.addParam("bgcolor",c);} +var q=_8?_8:"high"; +this.addParam("quality",q); +this.setAttribute("useExpressInstall",_7); +this.setAttribute("doExpressInstall",false); +var _d=(_9)?_9:window.location; +this.setAttribute("xiRedirectUrl",_d); +this.setAttribute("redirectUrl",""); +if(_a){this.setAttribute("redirectUrl",_a);}}; +deconcept.SWFObject.prototype={setAttribute:function(_e,_f){ +this.attributes[_e]=_f; +},getAttribute:function(_10){ +return this.attributes[_10]; +},addParam:function(_11,_12){ +this.params[_11]=_12; +},getParams:function(){ +return this.params; +},addVariable:function(_13,_14){ +this.variables[_13]=_14; +},getVariable:function(_15){ +return this.variables[_15]; +},getVariables:function(){ +return this.variables; +},getVariablePairs:function(){ +var _16=new Array(); +var key; +var _18=this.getVariables(); +for(key in _18){_16.push(key+"="+_18[key]);} +return _16;},getSWFHTML:function(){var _19=""; +if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){ +if(this.getAttribute("doExpressInstall")){ +this.addVariable("MMplayerType","PlugIn");} +_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>"; +}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");} +_19=""; +_19+=""; +var _1d=this.getParams(); +for(var key in _1d){_19+="";} +var _1f=this.getVariablePairs().join("&"); +if(_1f.length>0){_19+="";}_19+="";} +return _19; +},write:function(_20){ +if(this.getAttribute("useExpressInstall")){ +var _21=new deconcept.PlayerVersion([6,0,65]); +if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){ +this.setAttribute("doExpressInstall",true); +this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl"))); +document.title=document.title.slice(0,47)+" - Flash Player Installation"; +this.addVariable("MMdoctitle",document.title);}} +if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){ +var n=(typeof _20=="string")?document.getElementById(_20):_20; +n.innerHTML=this.getSWFHTML();return true; +}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}} +return false;}}; +deconcept.SWFObjectUtil.getPlayerVersion=function(){ +var _23=new deconcept.PlayerVersion([0,0,0]); +if(navigator.plugins&&navigator.mimeTypes.length){ +var x=navigator.plugins["Shockwave Flash"]; +if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));} +}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");} +catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); +_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";} +catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");} +catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}} +return _23;}; +deconcept.PlayerVersion=function(_27){ +this.major=_27[0]!=null?parseInt(_27[0]):0; +this.minor=_27[1]!=null?parseInt(_27[1]):0; +this.rev=_27[2]!=null?parseInt(_27[2]):0; +}; +deconcept.PlayerVersion.prototype.versionIsValid=function(fv){ +if(this.majorfv.major){return true;} +if(this.minorfv.minor){return true;} +if(this.rev