Section 1
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "2.0.1.0";
}
}//package mx.core
Section 2
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 3
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 4
//Application (Application)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.net.*;
public class Application extends Sprite {
var bottomLevel:Number;
var keyListener:Object;
var charsOnLevel:Number;
var levelTxt:TextField;
var title:TextField;
var speed:Number;
var speedChangeHard:Number;// = 0.2
var submitScoreScreen:Sprite;
var submitScoreLink:Sprite;
var scoreTxt:TextField;
var startNumChars:Number;// = 20
var state:Number;// = 0
var startPos:Number;// = -15
var score:Number;// = 0
private var euph:Class;
var playTxt:TextField;
var hardLinkTxt:TextField;
var difficultyLinks:Sprite;
var username:String;// = ""
var speedChange:Number;
var mediumLinkTxt:TextField;
var titleScreen:Sprite;
var lastChar:TextField;
var levelOffSet:Number;
var easyLink:Sprite;
var mediumLink:Sprite;
var maxDist:Number;// = 35
var speedChangeMedium:Number;// = 0.15
var submitScoreForm:Sprite;
var playLink:Sprite;
var noLink:Sprite;
var levelScore:Sprite;
var stageWidth:Number;
var speedChangeEasy:Number;// = 0.1
var yesLink:Sprite;
var level:Number;// = 1
var hardLink:Sprite;
var cancelLink:Sprite;
var easyLinkTxt:TextField;
var usernameTxt:TextField;
var difficulty:Number;// = 1
var stageHeight:Number;
var tchars:Array;
var numChars:Number;// = 0
public function Application(){
euph = Application_euph;
numChars = 0;
state = 0;
speedChangeEasy = 0.1;
speedChangeMedium = 0.15;
speedChangeHard = 0.2;
startNumChars = 20;
maxDist = 35;
startPos = -15;
username = "";
difficulty = 1;
score = 0;
level = 1;
super();
addEventListener(Event.ENTER_FRAME, getStageDimensions);
}
function setDifficultyHard(_arg1:Event){
easyLinkTxt.text = "Beginner";
mediumLinkTxt.text = "Intermediate";
hardLinkTxt.text = "[Advanced]";
difficulty = 3;
}
function nextLevel(){
level++;
numChars = 0;
charsOnLevel = (charsOnLevel + 2);
speed = (speed + speedChange);
levelTxt.text = ("" + level);
}
function handleLetter(_arg1:Number){
var _local2:Number;
var _local3:TypeCharacter;
var _local4:Number;
var _local5:Number;
var _local6:Score;
if ((((_arg1 >= 97)) && ((_arg1 <= 122)))){
_arg1 = (_arg1 - 32);
};
_local3 = tchars[(_arg1 - 65)];
if (_local3.visible){
_local4 = (_local3.y + _local3.height);
_local5 = stageHeight;
if (_local4 < (_local5 / 4)){
_local2 = 20;
} else {
if (_local4 < (_local5 / 2)){
_local2 = 10;
} else {
if (_local4 < (_local5 * 0.75)){
_local2 = 10;
} else {
_local2 = 5;
};
};
};
_local6 = new Score({str:("+" + _local2), app:this});
addChild(_local6);
_local6.y = _local3.y;
_local6.x = _local3.x;
removeChar(_arg1);
} else {
_local2 = -10;
_local6 = new Score({str:_local2, app:this});
addChild(_local6);
_local6.y = ((stageHeight / 2) - (_local6.height / 2));
_local6.x = ((stageWidth / 2) - (_local6.width / 2));
};
if (state == 1){
this.score = (this.score + _local2);
scoreTxt.text = ("" + this.score);
};
}
function getCharacter():String{
return (String.fromCharCode((65 + int((Math.random() * 26)))));
}
function getKeyPress(_arg1:KeyboardEvent){
var _local2:Number;
_local2 = _arg1.charCode;
handleLetter(_local2);
}
function showSubmitScoreForm(_arg1:Event){
submitScoreScreen.visible = false;
submitScoreForm.visible = true;
}
function update(_arg1:Event){
if (state == 1){
if (lastChar == null){
newCharacter();
} else {
if (lastChar.y > startPos){
newCharacter();
} else {
if (!lastChar.visible){
newCharacter();
};
};
};
};
}
public function init(){
var _local1:Number;
var _local2:Number;
var _local3:TextField;
var _local4:Number;
var _local5:TextFormat;
var _local6:TextFormat;
var _local7:TextFormat;
var _local8:TextFormat;
var _local9:TextFormat;
var _local10:TextFormat;
var _local11:TextFormat;
_local1 = (stageWidth * 0.7);
_local2 = (stageWidth * 0.33);
tchars = new Array(26);
_local4 = 0;
while (_local4 < 26) {
tchars[_local4] = new TypeCharacter({ascii:(_local4 + 65), speed:0, app:this, stageHeight:stageHeight});
addChild(tchars[_local4]);
tchars[_local4].visible = false;
_local4++;
};
_local5 = new TextFormat();
_local6 = new TextFormat();
_local6.size = 20;
_local6.font = "Trebuchet MS Bold";
_local6.color = 0;
_local6.align = "center";
levelScore = new Sprite();
addChild(levelScore);
_local3 = new TextField();
_local3.width = 0;
_local3.x = _local1;
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.RIGHT;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.defaultTextFormat = _local6;
_local3.text = "Score: ";
_local3.y = (stageHeight - _local3.height);
levelScore.addChild(_local3);
scoreTxt = new TextField();
scoreTxt.embedFonts = true;
scoreTxt.autoSize = TextFieldAutoSize.LEFT;
scoreTxt.selectable = false;
scoreTxt.embedFonts = true;
scoreTxt.defaultTextFormat = _local6;
scoreTxt.y = (stageHeight - _local3.height);
scoreTxt.x = _local1;
levelScore.addChild(scoreTxt);
_local3 = new TextField();
_local3.width = 0;
_local3.x = _local2;
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.RIGHT;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.defaultTextFormat = _local6;
_local3.text = "Level: ";
_local3.y = (stageHeight - _local3.height);
levelScore.addChild(_local3);
levelTxt = new TextField();
levelTxt.embedFonts = true;
levelTxt.autoSize = TextFieldAutoSize.LEFT;
levelTxt.selectable = false;
levelTxt.embedFonts = true;
levelTxt.defaultTextFormat = _local6;
levelTxt.y = (stageHeight - _local3.height);
levelTxt.x = _local2;
levelScore.addChild(levelTxt);
_local7 = new TextFormat();
_local7.size = 30;
_local7.font = "Trebuchet MS Bold";
_local7.color = 0;
_local7.align = "center";
_local8 = new TextFormat();
_local8.size = 40;
_local8.font = "Trebuchet MS Bold";
_local8.color = 0;
_local8.align = "center";
_local9 = new TextFormat();
_local9.size = 18;
_local9.font = "Trebuchet MS Bold";
_local9.color = 0;
_local9.align = "center";
_local10 = new TextFormat();
_local10.size = 25;
_local10.font = "Trebuchet MS Bold";
_local10.color = 0;
_local10.align = "center";
_local11 = new TextFormat();
_local11.size = 20;
_local11.font = "Trebuchet MS Bold";
_local11.color = 0;
submitScoreScreen = new Sprite();
addChild(submitScoreScreen);
_local3 = new TextField();
_local3.width = 0;
_local3.x = (stageWidth / 2);
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.defaultTextFormat = _local9;
_local3.text = "Submit your score to\naBowman.com?";
_local3.y = 70;
submitScoreScreen.addChild(_local3);
submitScoreScreen.visible = false;
yesLink = new Sprite();
submitScoreScreen.addChild(yesLink);
yesLink.x = ((stageWidth / 2) - 30);
yesLink.y = ((stageHeight / 2) + yesLink.height);
_local3 = new TextField();
_local3.width = 0;
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.defaultTextFormat = _local10;
_local3.text = "Yes";
yesLink.addChild(_local3);
yesLink.buttonMode = true;
yesLink.mouseChildren = false;
yesLink.addEventListener(MouseEvent.MOUSE_DOWN, showSubmitScoreForm);
noLink = new Sprite();
submitScoreScreen.addChild(noLink);
noLink.x = ((stageWidth / 2) + 30);
noLink.y = ((stageHeight / 2) + noLink.height);
_local3 = new TextField();
_local3.width = 0;
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.defaultTextFormat = _local10;
_local3.text = "No";
noLink.addChild(_local3);
noLink.buttonMode = true;
noLink.mouseChildren = false;
noLink.addEventListener(MouseEvent.MOUSE_DOWN, showTitleScreen);
submitScoreForm = new Sprite();
addChild(submitScoreForm);
_local3 = new TextField();
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.y = 70;
_local3.x = (stageWidth / 2);
_local3.defaultTextFormat = _local11;
_local3.text = "Enter your name:";
submitScoreForm.addChild(_local3);
submitScoreForm.visible = false;
usernameTxt = new TextField();
usernameTxt.embedFonts = true;
usernameTxt.type = TextFieldType.INPUT;
usernameTxt.selectable = true;
usernameTxt.embedFonts = true;
usernameTxt.defaultTextFormat = _local11;
usernameTxt.y = 105;
usernameTxt.x = ((stageWidth / 2) - (usernameTxt.width / 2));
usernameTxt.maxChars = 15;
usernameTxt.border = true;
usernameTxt.height = 30;
submitScoreForm.addChild(usernameTxt);
submitScoreLink = new Sprite();
submitScoreForm.addChild(submitScoreLink);
submitScoreLink.x = ((stageWidth / 2) - 40);
submitScoreLink.y = 145;
_local3 = new TextField();
_local3.width = 0;
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.defaultTextFormat = _local11;
_local3.text = "submit";
submitScoreLink.addChild(_local3);
submitScoreLink.buttonMode = true;
submitScoreLink.mouseChildren = false;
submitScoreLink.addEventListener(MouseEvent.MOUSE_DOWN, submitScore);
cancelLink = new Sprite();
submitScoreForm.addChild(cancelLink);
cancelLink.x = ((stageWidth / 2) + 40);
cancelLink.y = 145;
_local3 = new TextField();
_local3.width = 0;
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.defaultTextFormat = _local11;
_local3.text = "cancel";
cancelLink.addChild(_local3);
cancelLink.buttonMode = true;
cancelLink.mouseChildren = false;
cancelLink.addEventListener(MouseEvent.MOUSE_DOWN, showTitleScreen);
titleScreen = new Sprite();
addChild(titleScreen);
_local3 = new TextField();
_local3.width = 0;
_local3.y = (stageHeight / 4);
_local3.x = (stageWidth / 2);
_local3.embedFonts = true;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.selectable = false;
_local3.defaultTextFormat = _local8;
_local3.text = "type-it";
titleScreen.addChild(_local3);
playLink = new Sprite();
titleScreen.addChild(playLink);
playLink.x = (stageWidth / 2);
playLink.y = ((stageHeight / 2) - 10);
playTxt = new TextField();
playTxt.width = 0;
playTxt.embedFonts = true;
playTxt.autoSize = "center";
playTxt.selectable = false;
playTxt.embedFonts = true;
playTxt.defaultTextFormat = _local7;
playTxt.text = "Play";
playLink.buttonMode = true;
playLink.mouseChildren = false;
playLink.addChild(playTxt);
playLink.addEventListener(MouseEvent.MOUSE_DOWN, resetGame);
difficultyLinks = new Sprite();
titleScreen.addChild(difficultyLinks);
difficultyLinks.x = (stageWidth / 2);
difficultyLinks.y = ((stageHeight / 2) + 30);
easyLink = new Sprite();
difficultyLinks.addChild(easyLink);
easyLinkTxt = new TextField();
easyLinkTxt.width = 0;
easyLinkTxt.embedFonts = true;
easyLinkTxt.autoSize = TextFieldAutoSize.CENTER;
easyLinkTxt.selectable = false;
easyLinkTxt.embedFonts = true;
easyLinkTxt.defaultTextFormat = _local9;
easyLink.addChild(easyLinkTxt);
easyLink.buttonMode = true;
easyLink.mouseChildren = false;
easyLink.addEventListener(MouseEvent.MOUSE_DOWN, setDifficultyEasy);
mediumLink = new Sprite();
difficultyLinks.addChild(mediumLink);
mediumLink.y = 20;
mediumLinkTxt = new TextField();
mediumLinkTxt.width = 0;
mediumLinkTxt.embedFonts = true;
mediumLinkTxt.autoSize = TextFieldAutoSize.CENTER;
mediumLinkTxt.selectable = false;
mediumLinkTxt.embedFonts = true;
mediumLinkTxt.defaultTextFormat = _local9;
mediumLink.addChild(mediumLinkTxt);
mediumLink.buttonMode = true;
mediumLink.mouseChildren = false;
mediumLink.addEventListener(MouseEvent.MOUSE_DOWN, setDifficultyMedium);
hardLink = new Sprite();
difficultyLinks.addChild(hardLink);
hardLink.y = 40;
hardLinkTxt = new TextField();
hardLinkTxt.width = 0;
hardLinkTxt.embedFonts = true;
hardLinkTxt.autoSize = TextFieldAutoSize.CENTER;
hardLinkTxt.selectable = false;
hardLinkTxt.embedFonts = true;
hardLinkTxt.defaultTextFormat = _local9;
hardLink.addChild(hardLinkTxt);
hardLink.buttonMode = true;
hardLink.mouseChildren = false;
hardLink.addEventListener(MouseEvent.MOUSE_DOWN, setDifficultyHard);
levelScore.visible = false;
setDifficultyEasy(null);
addEventListener(Event.ENTER_FRAME, update);
showTitleScreen(null);
}
public function getStageDimensions(_arg1:Event){
if (stage.stageWidth > 0){
removeEventListener(Event.ENTER_FRAME, getStageDimensions);
stageWidth = 250;
stageHeight = 250;
init();
};
}
function submitScore(_arg1:Event){
var _local2:md5;
var _local3:String;
var _local4:URLRequest;
var _local5:URLVariables;
titleScreen.visible = true;
submitScoreForm.visible = false;
_local2 = new md5();
_local3 = "http://abowman.com/scoresInsert.php";
_local4 = new URLRequest(_local3);
_local5 = new URLVariables();
_local5.v1 = usernameTxt.text;
_local5.v2 = score;
_local5.v3 = level;
_local5.v4 = difficulty;
_local5.v5 = _local2.hash(((((usernameTxt.text + score) + level) + difficulty) + _local2.hash("abowman.com")));
_local4.data = _local5;
_local4.method = URLRequestMethod.POST;
navigateToURL(_local4, "_top");
}
function setDifficultyEasy(_arg1:Event){
easyLinkTxt.text = "[Beginner]";
mediumLinkTxt.text = "Intermediate";
hardLinkTxt.text = "Advanced";
difficulty = 1;
}
function newCharacter(){
var _local1:Number;
var _local2:Number;
var _local3:TypeCharacter;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local1 = getAscii();
_local2 = 0;
_local3 = TypeCharacter(tchars[0]);
while (tchars[(_local1 - 65)].visible == true) {
_local1 = getAscii();
_local2++;
};
_local3 = TypeCharacter(tchars[(_local1 - 65)]);
_local3.alpha = 1;
_local3.remove = false;
_local3.addEventListener(Event.ENTER_FRAME, _local3.update);
_local3.visible = true;
_local3.speed = this.speed;
_local3.y = -(_local3.height);
_local2 = 0;
_local4 = 1;
_local5 = (-(maxDist) + ((Math.random() * maxDist) * 2));
if (lastChar == null){
_local3.x = (Math.random() * (stageWidth - _local3.width));
} else {
if (_local5 >= 0){
_local3.x = ((lastChar.x + lastChar.width) + _local5);
} else {
_local3.x = ((lastChar.x - _local3.width) + _local5);
};
};
_local6 = stageWidth;
if ((_local3.x + _local3.width) > _local6){
_local3.x = Math.max(0, (_local3.x - _local6));
} else {
if (_local3.x < 0){
_local3.x = ((_local6 + _local3.x) - _local3.width);
};
};
numChars++;
if (numChars == charsOnLevel){
nextLevel();
};
lastChar = _local3;
}
function setDifficultyMedium(_arg1:Event){
easyLinkTxt.text = "Beginner";
mediumLinkTxt.text = "[Intermediate]";
hardLinkTxt.text = "Advanced";
difficulty = 2;
}
function getAscii():Number{
return ((65 + int((Math.random() * 26))));
}
function showTitleScreen(_arg1:Event){
titleScreen.visible = true;
submitScoreForm.visible = false;
submitScoreScreen.visible = false;
}
function resetGame(_arg1:Event){
if (difficulty == 1){
levelOffSet = 0;
speedChange = speedChangeEasy;
} else {
if (difficulty == 2){
levelOffSet = 4;
speedChange = speedChangeMedium;
} else {
if (difficulty == 3){
levelOffSet = 9;
speedChange = speedChangeHard;
};
};
};
level = 1;
levelTxt.text = "1";
speed = (1 + (speedChange * (level + levelOffSet)));
score = 0;
scoreTxt.text = "0";
numChars = 0;
charsOnLevel = (startNumChars + (levelOffSet * 2));
state = 1;
lastChar = null;
playTxt.text = "Play Again";
titleScreen.visible = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, getKeyPress);
levelScore.visible = true;
}
public function gameOver(){
var _local1:Number;
state = 0;
stage.removeEventListener(KeyboardEvent.KEY_DOWN, getKeyPress);
if (score >= 1000){
submitScoreScreen.visible = true;
} else {
titleScreen.visible = true;
};
_local1 = 0;
while (_local1 < 26) {
tchars[_local1].remove = true;
_local1++;
};
}
public function removeChar(_arg1:Number){
this.tchars[(_arg1 - 65)].removeEventListener(Event.ENTER_FRAME, this.tchars[(_arg1 - 65)].update);
this.tchars[(_arg1 - 65)].visible = false;
}
}
}//package
Section 5
//Application_euph (Application_euph)
package {
import mx.core.*;
public class Application_euph extends FontAsset {
}
}//package
Section 6
//md5 (md5)
package {
public class md5 {
private var b64pad:String;
private var chrsz:Number;
public function md5(_arg1:String=undefined, _arg2:Number=undefined){
b64pad = new String("");
chrsz = new Number(8);
super();
if (_arg1 != undefined){
this.b64pad = _arg1;
};
if (((((!((_arg2 == undefined))) && ((_arg2 == 8)))) || ((_arg2 == 16)))){
this.chrsz = _arg2;
};
}
private function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3));
}
private function binl2str(_arg1:Array):String{
var _local2:String;
var _local3:Number;
var _local4:Number;
_local2 = new String("");
_local3 = ((1 << chrsz) - 1);
_local4 = 0;
while (_local4 < (_arg1.length * 32)) {
_local2 = (_local2 + String.fromCharCode(((_arg1[(_local4 >> 5)] >>> (_local4 % 32)) & _local3)));
_local4 = (_local4 + chrsz);
};
return (_local2);
}
private function core_hmac_md5(_arg1:String, _arg2:String):Array{
var _local3:Array;
var _local4:Array;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = new Array(str2binl(_arg1));
if (_local3.length > 16){
_local3 = core_md5(_local3, (_arg1.length * chrsz));
};
_local4 = new Array(16);
_local5 = new Array(16);
_local6 = 0;
while (_local6 < 16) {
_local4[_local6] = (_local3[_local6] ^ 909522486);
_local5[_local6] = (_local3[_local6] ^ 1549556828);
_local6++;
};
_local7 = new Array(core_md5(_local4.concat(str2binl(_arg2)), (0x0200 + (_arg2.length * chrsz))));
return (core_md5(_local5.concat(_local7), (0x0200 + 128)));
}
private function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
private function hex_hmac_md5(_arg1:String, _arg2:String):String{
return (binl2hex(core_hmac_md5(_arg1, _arg2)));
}
private function binl2b64(_arg1:Array):String{
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
_local3 = new String("");
_local4 = 0;
while (_local4 < (_arg1.length * 4)) {
_local5 = (((((_arg1[(_local4 >> 2)] >> (8 * (_local4 % 4))) & 0xFF) << 16) | (((_arg1[((_local4 + 1) >> 2)] >> (8 * ((_local4 + 1) % 4))) & 0xFF) << 8)) | ((_arg1[((_local4 + 2) >> 2)] >> (8 * ((_local4 + 2) % 4))) & 0xFF));
_local6 = 0;
while (_local6 < 4) {
if (((_local4 * 8) + (_local6 * 6)) > (_arg1.length * 32)){
_local3 = (_local3 + b64pad);
} else {
_local3 = (_local3 + _local2.charAt(((_local5 >> (6 * (3 - _local6))) & 63)));
};
_local6++;
};
_local4 = (_local4 + 3);
};
return (_local3);
}
public function hash(_arg1:String):String{
return (hex_md5(_arg1));
}
private function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
private function hex_md5(_arg1:String):String{
return (binl2hex(core_md5(str2binl(_arg1), (_arg1.length * chrsz))));
}
private function bit_rol(_arg1:Number, _arg2:Number):Number{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
private function core_md5(_arg1:Array, _arg2:Number):Array{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32)));
_arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2;
_local3 = 1732584193;
_local4 = -271733879;
_local5 = -1732584194;
_local6 = 271733878;
_local7 = 0;
while (_local7 < _arg1.length) {
_local8 = _local3;
_local9 = _local4;
_local10 = _local5;
_local11 = _local6;
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551);
_local3 = safe_add(_local3, _local8);
_local4 = safe_add(_local4, _local9);
_local5 = safe_add(_local5, _local10);
_local6 = safe_add(_local6, _local11);
_local7 = (_local7 + 16);
};
return (new Array(_local3, _local4, _local5, _local6));
}
private function b64_md5(_arg1:String):String{
return (binl2b64(core_md5(str2binl(_arg1), (_arg1.length * chrsz))));
}
private function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7));
}
private function b64_hmac_md5(_arg1:String, _arg2:String):String{
return (binl2b64(core_hmac_md5(_arg1, _arg2)));
}
private function str2binl(_arg1:String):Array{
var _local2:Array;
var _local3:Number;
var _local4:Number;
_local2 = new Array();
_local3 = ((1 << chrsz) - 1);
_local4 = 0;
while (_local4 < (_arg1.length * chrsz)) {
_local2[(_local4 >> 5)] = (_local2[(_local4 >> 5)] | ((_arg1.charCodeAt((_local4 / chrsz)) & _local3) << (_local4 % 32)));
_local4 = (_local4 + chrsz);
};
return (_local2);
}
private function binl2hex(_arg1:Array):String{
var _local2:String;
var _local3:String;
var _local4:Number;
_local2 = "0123456789abcdef";
_local3 = new String("");
_local4 = 0;
while (_local4 < (_arg1.length * 4)) {
_local3 = (_local3 + (_local2.charAt(((_arg1[(_local4 >> 2)] >> (((_local4 % 4) * 8) + 4)) & 15)) + _local2.charAt(((_arg1[(_local4 >> 2)] >> ((_local4 % 4) * 8)) & 15))));
_local4++;
};
return (_local3);
}
private function safe_add(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
var _local4:Number;
_local3 = new Number(((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)));
_local4 = new Number((((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)));
return (((_local4 << 16) | (_local3 & 0xFFFF)));
}
private function str_md5(_arg1:String):String{
return (binl2str(core_md5(str2binl(_arg1), (_arg1.length * chrsz))));
}
private function str_hmac_md5(_arg1:String, _arg2:String):String{
return (binl2str(core_hmac_md5(_arg1, _arg2)));
}
private function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7));
}
}
}//package
Section 7
//Score (Score)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class Score extends TextField {
public var character:String;
var str:String;
var app:Application;
var speed:Number;// = 0.2
var txt:TextField;
var i:Number;// = 10
public function Score(_arg1:Object){
var _local2:TextFormat;
speed = 0.2;
i = 10;
txt = new TextField();
super();
str = _arg1.str;
app = Application(_arg1.app);
_local2 = new TextFormat();
_local2.size = 40;
_local2.font = "Trebuchet MS Bold";
_local2.color = 0;
width = 0;
embedFonts = true;
selectable = false;
embedFonts = true;
defaultTextFormat = _local2;
autoSize = TextFieldAutoSize.LEFT;
alpha = 0.3;
text = str;
addEventListener(Event.ENTER_FRAME, update);
}
function update(_arg1:Event){
if (i == 0){
removeEventListener(Event.ENTER_FRAME, update);
app.removeChild(this);
};
i--;
if ((i % 2)){
txt.alpha = (txt.alpha - 0.02);
};
y = (y + speed);
}
}
}//package
Section 8
//TypeCharacter (TypeCharacter)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.filters.*;
public class TypeCharacter extends TextField {
public var character:String;
var app:Application;
var charTxt:TextField;
public var speed:Number;// = 0
public var remove:Boolean;
var ascii:Number;
var stageHeight:Number;
public function TypeCharacter(_arg1:Object){
var _local2:TextFormat;
speed = 0;
super();
app = Application(_arg1.app);
stageHeight = _arg1.stageHeight;
_local2 = new TextFormat();
_local2.size = 40;
_local2.font = "Trebuchet MS Bold";
_local2.color = 0;
character = String.fromCharCode(_arg1.ascii);
ascii = _arg1.ascii;
speed = _arg1.speed;
antiAliasType = AntiAliasType.NORMAL;
width = 0;
height = 0;
embedFonts = true;
selectable = false;
embedFonts = true;
defaultTextFormat = _local2;
autoSize = TextFieldAutoSize.LEFT;
text = character;
}
public function update(_arg1:Event){
if (remove){
this.alpha = (this.alpha - 0.05);
if (this.alpha <= 0){
app.removeChar(ascii);
};
} else {
if (y > stageHeight){
app.gameOver();
};
};
y = (y + speed);
}
public function setDropShadow(_arg1:Number){
var _local2:Number;
var _local3:DropShadowFilter;
var _local4:Array;
_local2 = _arg1;
_local3 = new DropShadowFilter();
_local3.alpha = 0.15;
_local3.distance = _arg1;
_local3.blurX = 5;
_local3.blurY = 5;
_local4 = [_local3];
this.filters = _local4;
}
}
}//package