blob: 45183f41ea08a2a3960b830ca0d682d57f8895c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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();
}
};
|