class Website {
private var _mc:MovieClip;
public function Website(mc:MovieClip) {
_mc = mc;
Stage.scaleMode = 'noScale';
Stage.align = 'T';
_mc.beginFill(0xFFFFFF);
drawRect(_mc, 0, 0, 480, 2480);
_mc.endFill();
var title_fmt:TextFormat = new TextFormat();
title_fmt.font = 'Arial';
title_fmt.bold = true;
title_fmt.size = 32;
title_fmt.color = 0x666666;
title_fmt.letterSpacing = -2.5;
_mc.title_txt = _mc.createTextField('title_txt', _mc.getNextHighestDepth(), 38, 20, 20, 20);
_mc.title_txt.autoSize = 'left';
_mc.title_txt.selectable = false;
_mc.title_txt.antiAliasType = 'advanced';
_mc.title_txt.setNewTextFormat(title_fmt);
_mc.title_txt.text = 'SWFAddress Website';
_mc.home_mc = drawButton(_mc, 'HOME');
_mc.home_mc._x = 40;
_mc.home_mc._y = 80;
_mc.home_mc.onRelease = function() {
SWFAddress.setValue('/');
}
_mc.about_mc = drawButton(_mc, 'ABOUT');
_mc.about_mc._x = _mc.home_mc._x + _mc.home_mc._width + 2;
_mc.about_mc._y = 80;
_mc.about_mc.onRelease = function() {
SWFAddress.setValue('/about/');
}
_mc.contact_mc = drawButton(_mc, 'CONTACT');
_mc.contact_mc._x = _mc.about_mc._x + _mc.about_mc._width + 2;
_mc.contact_mc._y = 80;
_mc.contact_mc.onRelease = function() {
SWFAddress.setValue('/contact/');
}
_mc.self_mc = drawLink(_mc, 'MTASC Website (Same window)');
_mc.self_mc._x = 40;
_mc.self_mc._y = 120;
_mc.self_mc.onRelease = function() {
SWFAddress.href('http://www.mtasc.org/');
}
_mc.blank_mc = drawLink(_mc, 'MTASC Mailing List (Blank window)');
_mc.blank_mc._x = 40;
_mc.blank_mc._y = 140;
_mc.blank_mc.onRelease = function() {
SWFAddress.href('http://lists.motion-twin.com/mailman/listinfo/mtasc', '_blank');
}
_mc.mail_mc = drawLink(_mc, 'MTASC Mailing List Post (E-mail)');
_mc.mail_mc._x = 40;
_mc.mail_mc._y = 160;
_mc.mail_mc.onRelease = function() {
SWFAddress.href('mailto:mtasc@lists.motion-twin.com');
}
_mc.popup_mc = drawLink(_mc, 'MTASC Successor (Popup window)');
_mc.popup_mc._x = 40;
_mc.popup_mc._y = 180;
_mc.popup_mc.onRelease = function() {
SWFAddress.popup('http://www.haxe.org/','haxe',
'"toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=1,width=960,height=620,left=" + (screen.width - 960)/2 + ",top=" + (screen.height - 620)/2',
'popup.focus();');
}
_mc.back_mc = drawLink(_mc, '<< Back');
_mc.back_mc._x = 40;
_mc.back_mc._y = 240;
_mc.forward_mc = drawLink(_mc, 'Forward >>');
_mc.forward_mc._x = 100;
_mc.forward_mc._y = 240;
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, delegate(this, handleChange));
}
public function handleChange(e:SWFAddressEvent):Void {
_mc.home_mc.label_txt.textColor = (e.value == '/') ? 0xCCCCCC : 0xFFFFFF;
_mc.about_mc.label_txt.textColor = (e.value == '/about/') ? 0xCCCCCC : 0xFFFFFF;
_mc.contact_mc.label_txt.textColor = (e.value == '/contact/') ? 0xCCCCCC : 0xFFFFFF;
var title = 'SWFAddress Website';
for (var i = 0; i < e.pathNames.length; i++) {
title += ' / ' + e.pathNames[i].substr(0,1).toUpperCase() + e.pathNames[i].substr(1);
}
SWFAddress.setTitle(title);
}
public function delegate(target:Object, handler:Function):Function {
var f = function() {
var context:Function = arguments.callee;
var args:Array = arguments.concat(context.initial);
return context.handler.apply(context.target, args);
}
f.target = target;
f.handler = handler;
f.initial = arguments.slice(2);
return f;
}
public static function drawLink(mc:MovieClip, label:String):MovieClip {
var depth = mc.getNextHighestDepth();
var link_mc = mc.createEmptyMovieClip('link' + depth + '_mc', depth);
var label_fmt:TextFormat = new TextFormat();
label_fmt.font = 'Arial';
label_fmt.underline = true;
label_fmt.size = 12;
var label_txt = link_mc.createTextField('label_txt', 0, 0, 0, 60, 20);
label_txt.autoSize = 'left';
label_txt.selectable = false;
label_txt.antiAliasType = 'advanced';
label_txt.setNewTextFormat(label_fmt);
label_txt.html = true;
label_txt.htmlText = label;
label_txt.textColor = 0x000000;
return link_mc;
}
public static function drawButton(mc:MovieClip, label:String):MovieClip {
var depth = mc.getNextHighestDepth();
var button_mc = mc.createEmptyMovieClip('button' + depth + '_mc', depth);
var label_fmt:TextFormat = new TextFormat();
label_fmt.font = 'Arial';
label_fmt.bold = true;
label_fmt.size = 14;
var label_txt = button_mc.createTextField('label_txt', 0, 10, 0, 60, 20);
label_txt.autoSize = 'left';
label_txt.selectable = false;
label_txt.antiAliasType = 'advanced';
label_txt.setNewTextFormat(label_fmt);
label_txt.text = label;
label_txt.textColor = 0xFFFFFF;
button_mc.beginFill(0x000000);
drawRect(button_mc, 0, 0, label_txt._width + 20, label_txt._height);
button_mc.endFill();
return button_mc;
}
public static function drawRect(mc:MovieClip, x:Number, y:Number, w:Number, h:Number):Void {
mc.moveTo(x, y);
mc.lineTo(x + w, y);
mc.lineTo(x + w, y + h);
mc.lineTo(x, y + h);
mc.lineTo(x, y);
}
public static function main():Void {
_root.onEnterFrame = function() {
var bl:Number = this.getBytesLoaded();
var bt:Number = this.getBytesTotal();
if (bl && bt && bl == bt) {
var website:Website = new Website(_root);
delete this.onEnterFrame;
}
}
}
}