Frame 1
function Preload() {
var _local2 = this._parent.getBytesLoaded();
var _local4 = this._parent.getBytesTotal();
var _local3 = (100 * _local2) / _local4;
this._xscale = _local3;
this._parent.feedback_txt.text = Math.round(_local3) + "%";
if (_local2 == _local4) {
this._parent.gotoAndStop(4);
}
}
stop();
bar_mc.onEnterFrame = Preload;
Frame 4
System.security.loadPolicyFile("http://www.strictlysudoku.com/externaldata/cdp.xml");
stop();
Frame 5
_global.manager = new ExternalManager();
Frame 6
_global.manager.Start();
stop();
Frame 10
_global.manager.ShowComplete();
Symbol 138 MovieClip [__Packages.PenListener] Frame 0
interface PenListener
{
}
Symbol 139 MovieClip [__Packages.SpinButton] Frame 0
class SpinButton extends MovieClip implements PenListener
{
var highlight, hitArea, _parent, value, label;
function SpinButton () {
super();
highlight._alpha = 0;
hitArea = highlight;
onPenState(_global.userSettings.GetUsingPen());
_global.userSettings.AddPenListener(this);
}
function onRelease() {
_parent._parent.onSelect(value);
}
function onRollOver() {
highlight._alpha = 100;
}
function onRollOut() {
highlight._alpha = 0;
}
function onDragOver() {
onRollOver();
}
function onDragOut() {
onRollOut();
}
function onPenState(state) {
if (state) {
label.textColor = 0;
} else {
label.textColor = 5592405 /* 0x555555 */;
}
}
}
Symbol 140 MovieClip [__Packages.CellMask] Frame 0
class CellMask extends MovieClip
{
var useHandCursor, listeners, _visible;
function CellMask () {
super();
useHandCursor = false;
listeners = new Array();
Deactivate();
_global.cellMask = this;
}
function Activate() {
_visible = true;
}
function Deactivate() {
_visible = false;
}
function AddListener(obj) {
listeners.push(obj);
}
function RemoveListener(obj) {
for (var _local3 in listeners) {
if (listeners[_local3] == obj) {
listeners.splice(_local3, 1);
return(undefined);
}
}
}
function onRelease() {
for (var _local2 in listeners) {
listeners[_local2].onMouseUpOutside();
}
}
}
Symbol 141 MovieClip [__Packages.ModalMaskListener] Frame 0
interface ModalMaskListener
{
}
Symbol 142 MovieClip [__Packages.ModalMask] Frame 0
class ModalMask extends MovieClip
{
var useHandCursor, _parent;
function ModalMask () {
super();
useHandCursor = false;
}
function onRelease() {
_parent.onMouseUpOutside();
}
}
Symbol 143 MovieClip [__Packages.ButtonBase] Frame 0
class ButtonBase extends MovieClip
{
var label;
function ButtonBase () {
super();
}
function onRollOver() {
label.textColor = 13369344 /* 0xCC0000 */;
}
function onRollOut() {
label.textColor = 0;
}
function onDragOver() {
onRollOver();
}
function onDragOut() {
onRollOut();
}
}
Symbol 144 MovieClip [__Packages.SpinnerListener] Frame 0
interface SpinnerListener
{
}
Symbol 145 MovieClip [__Packages.Spinner] Frame 0
class Spinner extends MovieClip implements SpinnerListener, ModalMaskListener
{
var gotoAndStop, isVisible, listener, _x, _y, gotoAndPlay;
function Spinner () {
super();
gotoAndStop("start");
isVisible = false;
listener = null;
Key.addListener(this);
}
function onKeyDown() {
if (!isVisible) {
return(undefined);
}
var _local3 = Key.getCode();
if ((_local3 >= 48) && (_local3 <= 57)) {
onSelect(_local3 - 48);
}
if ((_local3 >= 96) && (_local3 <= 105)) {
onSelect(_local3 - 96);
}
if (((_local3 == 88) || (_local3 == 8)) || (_local3 == 46)) {
onSelect(0);
}
if (!showMe) {
if (_local3 == 37) {
_global.cellManager.ChangeActiveCell(Cell(listener), CellManager.LEFT);
}
if (_local3 == 39) {
_global.cellManager.ChangeActiveCell(Cell(listener), CellManager.RIGHT);
}
if (_local3 == 38) {
_global.cellManager.ChangeActiveCell(Cell(listener), CellManager.UP);
}
if (_local3 == 40) {
_global.cellManager.ChangeActiveCell(Cell(listener), CellManager.DOWN);
}
}
}
function onSelect(value) {
if (_global.userSettings.GetUsingPen()) {
if (listener != null) {
listener.onSelect(value);
}
if (showMe) {
Hide();
}
} else if (listener != null) {
listener.onPencilSelect(value);
}
}
function onPencilSelect(value) {
onSelect(value);
}
function onNoSelect() {
if (listener != null) {
listener.onNoSelect();
}
Hide();
}
function onMouseUpOutside() {
onNoSelect();
}
function Show(xPos, yPos, listen) {
if (listener) {
if (listener == listen) {
return(undefined);
}
listener.onNoSelect();
}
listener = listen;
_x = xPos;
_y = yPos;
if (showMe && (!isVisible)) {
_global.cellMask.Activate();
_global.cellMask.AddListener(this);
gotoAndPlay("show");
}
isVisible = true;
}
function Hide() {
if (isVisible && (showMe)) {
gotoAndPlay("hide");
}
_global.cellMask.Deactivate();
_global.cellMask.RemoveListener(this);
isVisible = false;
listener = null;
}
function SetVisible(show) {
if (showMe == show) {
return(undefined);
}
showMe = show;
if (isVisible) {
if (show) {
_global.cellMask.Activate();
_global.cellMask.AddListener(this);
gotoAndPlay("show");
} else {
_global.cellMask.Deactivate();
_global.cellMask.RemoveListener(this);
gotoAndPlay("hide");
}
}
}
function GetVisible() {
return(showMe);
}
static var SPININPUT = 1;
static var KEYINPUT = 2;
static var SPINKEYINPUT = 3;
var showMe = true;
}
Symbol 146 MovieClip [__Packages.Cell] Frame 0
class Cell extends MovieClip implements SpinnerListener
{
var highlight, useHandCursor, label, onRelease, spinner, _x, _y, cellManager, identifier;
function Cell () {
super();
highlight._visible = false;
useHandCursor = false;
ShowLabel(0);
}
function SetState(value, status) {
editableStatus = status;
highlight._visible = false;
ShowLabel(value);
if (editableStatus & INITIAL) {
label.textColor = HIGHLIGHTCOLOUR;
} else {
label.textColor = BASICCOLOUR;
}
if (editableStatus & EDITABLE) {
onRelease = MyRelease;
useHandCursor = true;
} else {
onRelease = null;
useHandCursor = false;
}
}
function ManualActivate() {
if (editableStatus & EDITABLE) {
MyRelease();
return(true);
}
return(false);
}
function MyRelease() {
highlight._visible = true;
spinner.Show(_x + 18.5, _y + 18.5, this);
}
function onSelect(value) {
if (!(editableStatus & EDITABLE)) {
return(undefined);
}
cellManager.UpdateCell(identifier, value);
ShowLabel(value);
if (spinner.GetVisible()) {
highlight._visible = false;
}
}
function onPencilSelect(value) {
if (!(editableStatus & PENCIL)) {
return(undefined);
}
cellManager.UpdateCell(identifier, 0);
ShowPencil(value);
}
function onNoSelect() {
highlight._visible = false;
}
function ShowLabel(value) {
HidePencil();
if (value == 0) {
label._visible = false;
} else {
label._visible = true;
label.text = value.toString();
}
}
function HideLabel() {
label._visible = false;
}
function ShowPencil(value) {
if (!(editableStatus & PENCIL)) {
return(undefined);
}
HideLabel();
if (value == 0) {
HidePencil();
} else {
this["pencil" + value]._visible = !this["pencil" + value]._visible;
}
}
function HidePencil() {
var _local2 = 1;
while (_local2 <= 9) {
this["pencil" + _local2]._visible = false;
_local2++;
}
}
function GetIdentifier() {
return(identifier);
}
function SetHighlight(state) {
highlight._visible = state;
}
static var STATIC = 0;
static var EDITABLE = 1;
static var INITIAL = 2;
static var INITIALEDITABLE = 3;
static var PENCIL = 4;
static var PENCILEDITABLE = 5;
static var HNONE = 0;
static var HSELECT = 1;
static var HDISABLED = 2;
static var HERROR = 3;
static var BASICCOLOUR = 0;
static var HIGHLIGHTCOLOUR = 13369344;
var editableStatus = 0;
}
Symbol 147 MovieClip [__Packages.CellManager] Frame 0
class CellManager extends MovieClip
{
var attachMovie, spinner, cells;
function CellManager () {
super();
_global.cellManager = this;
var _local15 = attachMovie("cellMask", "cellMask", 99, {_x:-3, _y:-3});
spinner = Spinner(attachMovie("spinner", "spinner", 100, {_x:100, _y:100}));
cells = new Array();
var _local11 = 39;
var _local12 = 121;
var _local10;
var _local7 = 0;
var _local13 = 0;
var _local6 = new Object();
_local6.spinner = spinner;
_local6.cellManager = this;
var _local14;
var _local9;
var _local8;
var _local5;
var _local4 = 0;
_local14 = 0;
while (_local14 < 3) {
_local9 = 0;
while (_local9 < 3) {
_local7 = 0;
_local6._y = _local13 + (_local11 * _local9);
_local8 = 0;
while (_local8 < 3) {
_local5 = 0;
while (_local5 < 3) {
_local6._x = _local7 + (_local11 * _local5);
_local6.identifier = _local4;
_local10 = Cell(attachMovie("cell", "cell" + _local4, _local4, _local6));
cells.push(_local10);
_local4++;
_local5++;
}
_local7 = _local7 + _local12;
_local8++;
}
_local9++;
}
_local13 = _local13 + _local12;
_local14++;
}
}
function SetShowSpinner(show) {
spinner.SetVisible(show);
}
function UpdateCell(identifier, value) {
_global.manager.UpdateCell(identifier, value);
}
function SetCells(values, setStatus, clearStatus) {
spinner.onNoSelect();
for (var _local5 in cells) {
if (values[_local5] == 0) {
cells[_local5].SetState(0, clearStatus);
} else {
cells[_local5].SetState(values[_local5], setStatus);
}
}
}
function SetDualCells(values1, status1, values2, status2) {
spinner.onNoSelect();
for (var _local4 in cells) {
if (values2[_local4] == 0) {
cells[_local4].SetState(values1[_local4], status1);
} else {
cells[_local4].SetState(values2[_local4], status2);
}
}
}
function HighlightCells(theCells) {
spinner.onNoSelect();
for (var _local3 in theCells) {
cells[theCells[_local3]].SetHighlight(true);
}
}
function ChangeActiveCell(startCellObj, direction) {
var _local3 = startCellObj.GetIdentifier();
var _local2 = _local3;
switch (direction) {
case RIGHT :
do {
_local2++;
(((_local2 % 9) == 0) ? (_local2 = _local2 - 9) : null);
} while ((_local2 != _local3) && (!cells[_local2].ManualActivate()));
break;
case LEFT :
do {
_local2--;
(((_local2 % 9) == 8) ? (_local2 = _local2 + 9) : null);
if (_local2 < 0) {
_local2 = 8;
}
} while ((_local2 != _local3) && (!cells[_local2].ManualActivate()));
break;
case UP :
do {
_local2 = _local2 - 9;
((_local2 < 0) ? (_local2 = _local2 + 81) : null);
} while ((_local2 != _local3) && (!cells[_local2].ManualActivate()));
break;
case DOWN :
do {
_local2 = _local2 + 9;
((_local2 > 80) ? (_local2 = _local2 - 81) : null);
} while ((_local2 != _local3) && (!cells[_local2].ManualActivate()));
}
}
static var LEFT = 1;
static var RIGHT = 2;
static var UP = 3;
static var DOWN = 4;
}
Symbol 148 MovieClip [__Packages.LoaderListener] Frame 0
interface LoaderListener
{
}
Symbol 149 MovieClip [__Packages.ExternalManager] Frame 0
class ExternalManager implements LoaderListener
{
var timer, loader;
function ExternalManager () {
_global.userSettings = new ExternalUserSettings();
_global.model = new Puzzle();
timer = _root.timer;
}
function UpdateCell(cell, value) {
_global.model.UpdateCell(cell, value);
}
function GetTimer() {
return(timer);
}
function LoadPuzzle() {
if (loader == undefined) {
loader = new ExternalLoader();
}
loader.LoadPuzzle();
}
function onPuzzleLoad(success, dataObj) {
if (!success) {
var _local5 = new MessageBox("There was an error loading the puzzle.");
return(undefined);
}
_global.model.NewPuzzle(dataObj.puzzle, dataObj.solution, "easy", 1, dataObj.id);
_global.cellManager.SetCells(dataObj.puzzle, Cell.INITIAL, Cell.PENCILEDITABLE);
_global.userSettings.SetPuzzleComplete(false);
_root.puzzleName.text = "TODAY'S EASY PUZZLE";
timer.Start();
}
function Start() {
_global.menuManager = new ExternalMenuManager();
_global.userSettings.SetPuzzleSuccess(true);
timer._visible = _global.userSettings.GetShowTimer();
_global.cellManager.SetShowSpinner(_global.userSettings.GetShowSpinner());
LoadPuzzle();
}
function Restart() {
if (_global.userSettings.GetPuzzleComplete()) {
_global.userSettings.SetPuzzleComplete(false);
}
_global.model.ResetAllCells();
_global.cellManager.SetCells(_global.model.GetStartState(), Cell.INITIAL, Cell.PENCILEDITABLE);
_global.menuManager.UnPause();
}
function ShowSolved() {
timer.Stop();
_global.userSettings.SetPuzzleSuccess(false);
_global.userSettings.SetPuzzleSolved(false);
_global.userSettings.SetPuzzleComplete(true);
_global.menuManager.UnPause();
_global.cellManager.SetDualCells(_global.model.GetSolvedState(), Cell.STATIC, _global.model.GetStartState(), Cell.INITIAL);
_global.userSettings.SetPuzzleComplete(true);
_root.gotoAndStop("complete");
}
function HowAmIDoing() {
var _local3 = _global.model.GetStateSummary();
if (_local3.numWrong != 0) {
var _local4 = new MessageBox(("You've made a mistake in " + _local3.numWrong) + " of the cells.", true, 3000);
if (_global.userSettings.GetShowErrorCells()) {
_global.cellManager.HighlightCells(_local3.wrongCells);
}
if (_global.userSettings.GetPuzzleSuccess()) {
_global.userSettings.SetPuzzleSuccess(false);
}
} else if (_local3.numEmpty == 0) {
PuzzleComplete();
} else {
var _local4 = new MessageBox(("Looking good so far. You still have " + _local3.numEmpty) + " to go.", true, 3000);
}
}
function PuzzleComplete() {
timer.Stop();
_global.cellManager.SetDualCells(_global.model.GetSolvedState(), Cell.STATIC, _global.model.GetStartState(), Cell.INITIAL);
_global.userSettings.SetPuzzleComplete(true);
_global.userSettings.SetPuzzleSolved(true);
_root.gotoAndStop("complete");
}
function ShowComplete() {
if (_global.userSettings.GetPuzzleSuccess()) {
_root.result_txt.text = ("You finished the puzzle in " + timer.GetTimeText()) + ".";
} else {
_root.result_txt.text = ("You finished the puzzle in " + timer.GetTimeText()) + " but you made some mistakes along the way.";
}
SubmitResult();
}
function SubmitResult() {
var _local3;
if (_global.userSettings.GetPuzzleSuccess()) {
_local3 = timer.GetTime();
} else {
_local3 = 0;
}
var _local4 = _global.model.GetPuzzleID();
var _local5 = new ExternalSubmitter();
_local5.SubmitResult(_local4, _local3);
}
function onStatsLoad(success, solved, avtime) {
_root.result_txt.text = _root.result_txt.text + "\n\n";
if (!success) {
_root.result_txt.text = _root.result_txt.text + "There was a server or network error and I was unable to obtain statistics for this sudoku.";
return(undefined);
}
if (solved == 0) {
if (_global.userSettings.GetPuzzleSuccess()) {
_root.result_txt.text = _root.result_txt.text + "You are the first person to solve this sudoku.";
} else {
_root.result_txt.text = _root.result_txt.text + "Noone has solved this sudoku yet.";
}
return(undefined);
}
_root.result_txt.text = _root.result_txt.text + "So far ";
_root.result_txt.text = _root.result_txt.text + solved;
_root.result_txt.text = _root.result_txt.text + ((solved == 1) ? " other person has completed this sudoku in a time of " : " other people have completed this sudoku in an average time of ");
_root.result_txt.text = _root.result_txt.text + GetTimeText(avtime);
_root.result_txt.text = _root.result_txt.text + ".";
}
function GetTimeText(time) {
var _local1 = time % 60;
var _local2 = Math.floor(time / 60);
return((((((_local2.toString() + " minute") + ((_local2 == 1) ? "" : "s")) + " and ") + _local1.toString()) + " second") + ((_local1 == 1) ? "" : "s"));
}
}
Symbol 150 MovieClip [__Packages.ServerDataListener] Frame 0
interface ServerDataListener
{
}
Symbol 151 MovieClip [__Packages.ServerData] Frame 0
class ServerData extends LoadVars
{
var listeners, dataObject, data;
function ServerData () {
super();
listeners = new Array();
dataObject = new Object();
}
function AddListener(obj) {
listeners.push(obj);
}
function RemoveListener(obj) {
for (var _local3 in listeners) {
if (listeners[_local3] == obj) {
listeners.splice(Number(_local3), 1);
return(undefined);
}
}
}
function SendLoaded() {
for (var _local2 in listeners) {
listeners[_local2].onDataLoad(this);
}
}
function SendError() {
for (var _local2 in listeners) {
listeners[_local2].onDataError(this);
}
}
function onLoad(success) {
if (!success) {
SendError();
return(undefined);
}
dataObject = new Object();
if (!data) {
SendLoaded();
return(undefined);
}
var _local9 = new Crypto();
var _local6 = _local9.Decrypt(data);
var _local4 = new Array();
var _local5 = 0;
var _local2 = _local6.indexOf(divider, _local5);
while (_local2 != -1) {
_local4.push(_local6.substring(_local5, _local2));
_local5 = _local2 + 1;
_local2 = _local6.indexOf(divider, _local5);
}
_local4.push(_local6.substring(_local5));
var _local7;
var _local8;
var _local3 = 0;
while (_local3 < _local4.length) {
_local2 = _local4[_local3].indexOf(joint);
_local7 = _local4[_local3].substring(0, _local2);
_local8 = _local4[_local3].substring(_local2 + 1);
dataObject[_local7] = _local8;
_local3++;
}
SendLoaded();
}
function GetData() {
return(dataObject);
}
function ClearData() {
dataObject = new Object();
}
function AddData(name, value) {
dataObject[name] = value.toString();
}
function sendAndLoad(url) {
var _local2 = "";
for (var _local3 in dataObject) {
_local2 = _local2 + (((_local3 + joint) + dataObject[_local3]) + divider);
}
if (_local2.length > 0) {
_local2 = _local2.substring(0, _local2.length - 1);
}
var _local4 = new LoadVars();
var _local5 = new Crypto();
_local4.data = _local5.Encrypt(_local2);
_local4.sendAndLoad(url, this, "POST");
}
static var divider = "|";
static var joint = "=";
}
Symbol 152 MovieClip [__Packages.Crypto] Frame 0
class Crypto
{
var xtea;
function Crypto () {
xtea = new XTEA(new Array(39181703, 2143638457, 4126772937, 1362355287));
}
function Encrypt(s) {
return(xtea.Encrypt(s));
}
function Decrypt(s) {
return(xtea.Decrypt(s));
}
function EncryptPuzzle(i) {
return(xtea.EncryptNum(i));
}
function DecryptPuzzle(i) {
return(xtea.DecryptNum(i).substr(0, 81));
}
}
Symbol 153 MovieClip [__Packages.XTEA] Frame 0
class XTEA
{
var key;
function XTEA (k) {
key = k;
}
function SetKey(k) {
key = k;
}
function GetKey() {
return(key);
}
function Encrypt(inString) {
var _local5;
var _local4;
var _local6;
var _local7 = "";
while (inString.length & 7) {
inString = inString + " ";
}
var _local3 = 0;
while (_local3 < inString.length) {
_local5 = inString.charCodeAt(_local3++);
_local5 = _local5 | (inString.charCodeAt(_local3++) << 8);
_local5 = _local5 | (inString.charCodeAt(_local3++) << 16);
_local5 = _local5 | (inString.charCodeAt(_local3++) << 24);
_local5 = _local5 & 4294967295;
_local4 = inString.charCodeAt(_local3++);
_local4 = _local4 | (inString.charCodeAt(_local3++) << 8);
_local4 = _local4 | (inString.charCodeAt(_local3++) << 16);
_local4 = _local4 | (inString.charCodeAt(_local3++) << 24);
_local4 = _local4 & 4294967295;
_local6 = Encipher(_local5, _local4);
_local7 = _local7 + (DecToHex(_local6[0]) + DecToHex(_local6[1]));
}
return(_local7);
}
function EncryptNum(inString) {
var _local6;
var _local5;
var _local4;
var _local7 = "";
while (inString.length & 15) {
inString = inString + "0";
}
var _local2 = 0;
while (_local2 < inString.length) {
_local6 = parseInt(inString.substr(_local2, 8));
_local2 = _local2 + 8;
_local6 = _local6 & 4294967295;
_local5 = parseInt(inString.substr(_local2, 8));
_local2 = _local2 + 8;
_local5 = _local5 & 4294967295;
_local4 = Encipher(_local6, _local5);
_local7 = _local7 + (DecToHex(_local4[0]) + DecToHex(_local4[1]));
}
return(_local7);
}
function Decrypt(inString) {
var _local7;
var _local6;
var _local2;
var _local3 = "";
var _local4 = 0;
while (_local4 < inString.length) {
_local7 = parseInt(inString.substr(_local4, 8), 16);
_local4 = _local4 + 8;
_local6 = parseInt(inString.substr(_local4, 8), 16);
_local4 = _local4 + 8;
_local2 = Decipher(_local7, _local6);
_local3 = _local3 + String.fromCharCode(_local2[0] & 255);
_local3 = _local3 + String.fromCharCode((_local2[0] & 65280) >>> 8);
_local3 = _local3 + String.fromCharCode((_local2[0] & 16711680) >>> 16);
_local3 = _local3 + String.fromCharCode((_local2[0] & 4278190080) >>> 24);
_local3 = _local3 + String.fromCharCode(_local2[1] & 255);
_local3 = _local3 + String.fromCharCode((_local2[1] & 65280) >>> 8);
_local3 = _local3 + String.fromCharCode((_local2[1] & 16711680) >>> 16);
_local3 = _local3 + String.fromCharCode((_local2[1] & 4278190080) >>> 24);
}
return(Trim(_local3));
}
function DecryptNum(inString) {
var _local7;
var _local6;
var _local3;
var _local5 = "";
var _local2 = 0;
while (_local2 < inString.length) {
_local7 = parseInt(inString.substr(_local2, 8), 16);
_local2 = _local2 + 8;
_local6 = parseInt(inString.substr(_local2, 8), 16);
_local2 = _local2 + 8;
_local3 = Decipher(_local7, _local6);
_local5 = _local5 + PadZero(_local3[0], 8);
_local5 = _local5 + PadZero(_local3[1], 8);
}
return(_local5);
}
static function GetRandomKey() {
var _local1;
var _local2 = new Array();
_local1 = 0;
while (_local1 < 4) {
_local2.push(Math.floor(Math.random() * 4294967295));
_local1++;
}
return(_local2);
}
function IsValid(plain, crypt) {
return(Encrypt(plain) == crypt);
}
static function DecToHex(x) {
var _local4 = x & 65535;
var _local3 = (x >>> 16) & 65535;
var _local2 = _local4.toString(16);
var _local1 = _local3.toString(16);
while (_local2.length < 4) {
_local2 = "0" + _local2;
}
while (_local1.length < 4) {
_local1 = "0" + _local1;
}
return(_local1 + _local2);
}
static function PadZero(x, p) {
var _local1 = x.toString();
while (_local1.length < p) {
_local1 = "0" + _local1;
}
return(_local1);
}
function Encipher(p1, p2) {
var _local2 = new Array(p1, p2);
var _local4 = 32;
var _local3 = 0;
while ((_local4--) > 0) {
_local2[0] = _local2[0] + ((((_local2[1] << 4) ^ (_local2[1] >>> 5)) + _local2[1]) ^ (_local3 + key[_local3 & 3]));
_local3 = _local3 + 2654435769;
_local2[1] = _local2[1] + ((((_local2[0] << 4) ^ (_local2[0] >>> 5)) + _local2[0]) ^ (_local3 + key[(_local3 >>> 11) & 3]));
}
_local2[0] = _local2[0] & 4294967295;
_local2[1] = _local2[1] & 4294967295;
return(_local2);
}
function Decipher(p1, p2) {
var _local2 = new Array(p1, p2);
var _local4 = 32;
var _local3 = 2654435769 * _local4;
while ((_local4--) > 0) {
_local2[1] = _local2[1] - ((((_local2[0] << 4) ^ (_local2[0] >>> 5)) + _local2[0]) ^ (_local3 + key[(_local3 >>> 11) & 3]));
_local3 = _local3 - 2654435769;
_local2[0] = _local2[0] - ((((_local2[1] << 4) ^ (_local2[1] >>> 5)) + _local2[1]) ^ (_local3 + key[_local3 & 3]));
}
_local2[0] = _local2[0] & 4294967295;
_local2[1] = _local2[1] & 4294967295;
return(_local2);
}
static function Trim(s) {
var _local2 = 0;
while ((_local2 < s.length) && (s.charAt(_local2) == " ")) {
_local2++;
}
var _local1 = s.length;
while ((_local1 > 0) && (s.charAt(_local1 - 1) == " ")) {
_local1--;
}
return(s.substring(_local2, _local1));
}
}
Symbol 154 MovieClip [__Packages.ExternalLoader] Frame 0
class ExternalLoader implements ServerDataListener
{
var dataLoader;
function ExternalLoader () {
dataLoader = new ServerData();
dataLoader.AddListener(this);
}
function LoadPuzzle() {
dataLoader.ClearData();
dataLoader.AddData();
dataLoader.sendAndLoad("http://www.strictlysudoku.com/externaldata/externalpuzzle.php");
}
function onDataError(loader) {
_global.manager.onPuzzleLoad(false);
}
function onDataLoad(loader) {
var _local3 = loader.GetData();
if (((!_local3.puzzle) || (!_local3.solution)) || (!_local3.id)) {
_global.manager.onPuzzleLoad(false);
return(undefined);
}
var _local4 = new Object();
_local4.puzzle = StringToArray(_local3.puzzle);
_local4.solution = StringToArray(_local3.solution);
_local4.id = parseInt(_local3.id);
_global.manager.onPuzzleLoad(true, _local4);
}
function StringToArray(state) {
var _local3 = new Array();
var _local1 = 0;
while (_local1 < state.length) {
_local3.push(parseInt(state.charAt(_local1)));
_local1++;
}
return(_local3);
}
}
Symbol 155 MovieClip [__Packages.Timer] Frame 0
class Timer extends MovieClip
{
var startTime, time, onEnterFrame, readout;
function Timer () {
super();
}
function Start() {
startTime = getTimer();
time = 0;
SetReadout();
onEnterFrame = MyEnterFrame;
}
function Stop() {
onEnterFrame = null;
MyEnterFrame();
}
function Pause() {
onEnterFrame = null;
MyEnterFrame();
}
function Resume() {
startTime = getTimer() - time;
onEnterFrame = MyEnterFrame;
}
function MyEnterFrame() {
UpdateTime();
SetReadout();
}
function UpdateTime() {
time = getTimer() - startTime;
}
function SetReadout() {
var _local2 = Math.floor(time * 0.001);
var _local3 = _local2 % 60;
readout.text = ((Math.floor(_local2 / 60).toString() + ":") + ((_local3 < 10) ? "0" : "")) + _local3.toString();
}
function GetTimeText() {
var _local2 = Math.floor(time * 0.001);
var _local3 = _local2 % 60;
var _local4 = Math.floor(_local2 / 60);
return((((((_local4.toString() + " minute") + ((_local4 == 1) ? "" : "s")) + " and ") + _local3.toString()) + " second") + ((_local3 == 1) ? "" : "s"));
}
function GetTime() {
return(Math.floor(time * 0.001));
}
}
Symbol 156 MovieClip [__Packages.ExternalUserSettings] Frame 0
class ExternalUserSettings
{
var puzzleComplete, puzzleSolved, usingPen, puzzleSuccess, penListeners, completeListeners, sharedObj, showTimer, showSpinner, showErrorCells;
function ExternalUserSettings () {
puzzleComplete = false;
puzzleSolved = false;
usingPen = true;
puzzleSuccess = true;
penListeners = new Array();
completeListeners = new Array();
GetSettings();
}
function GetSettings() {
sharedObj = SharedObject.getLocal("userSettings");
if (sharedObj == null) {
canSaveSettings = false;
SetNoSOSettings();
return(undefined);
}
sharedObj.onStatus = OnStatus;
if (sharedObj.data.showTimer == undefined) {
SetDefaultSettings();
}
showTimer = sharedObj.data.showTimer;
showSpinner = sharedObj.data.showSpinner;
showErrorCells = sharedObj.data.showErrorCells;
}
function SetDefaultSettings() {
sharedObj.data.showTimer = true;
sharedObj.data.showSpinner = true;
sharedObj.data.showErrorCells = false;
}
function SetNoSOSettings() {
showTimer = true;
showSpinner = true;
showErrorCells = false;
}
function SaveSettings() {
if (canSaveSettings) {
var _local2 = sharedObj.flush();
if (!_local2) {
canSaveSettings = false;
}
}
}
function OnStatus(info) {
if (info.code == SharedObject.Flush.Failed) {
canSaveSettings = false;
}
}
function SetShowTimer(show) {
showTimer = show;
if (canSaveSettings) {
sharedObj.data.showTimer = showTimer;
}
}
function GetShowTimer() {
return(showTimer);
}
function SetShowSpinner(show) {
showSpinner = show;
if (canSaveSettings) {
sharedObj.data.showSpinner = showSpinner;
}
}
function GetShowSpinner() {
return(showSpinner);
}
function SetShowErrorCells(show) {
showErrorCells = show;
if (canSaveSettings) {
sharedObj.data.showErrorCells = showErrorCells;
}
}
function GetShowErrorCells() {
return(showErrorCells);
}
function GetUsingPen() {
return(usingPen);
}
function SetUsingPen(state) {
usingPen = state;
for (var _local3 in penListeners) {
penListeners[_local3].onPenState(state);
}
}
function AddPenListener(o) {
penListeners.push(o);
}
function SetPuzzleComplete(state) {
puzzleComplete = state;
for (var _local3 in completeListeners) {
completeListeners[_local3].onCompleteState(state);
}
}
function GetPuzzleComplete() {
return(puzzleComplete);
}
function AddCompleteListener(o) {
completeListeners.push(o);
}
function SetPuzzleSuccess(state) {
puzzleSuccess = state;
}
function GetPuzzleSuccess() {
return(puzzleSuccess);
}
function SetPuzzleSolved(state) {
puzzleSolved = state;
}
function GetPuzzleSolved() {
return(puzzleSolved);
}
var canSaveSettings = true;
}
Symbol 157 MovieClip [__Packages.CompleteListener] Frame 0
interface CompleteListener
{
}
Symbol 158 MovieClip [__Packages.Puzzle] Frame 0
class Puzzle
{
var listeners, startState, currentState, solvedState, difficultyNum, difficultyString, identifier, gridFull;
function Puzzle () {
listeners = new Array();
}
function CreateEmptyPuzzle() {
startState = new Array();
var _local2 = 0;
while (_local2 < 81) {
startState.push(0);
_local2++;
}
currentState = startState.slice(0);
solvedState = startState.slice(0);
difficultyNum = 0;
difficultyString = "";
}
function NewPuzzle(start, solved, dstring, dnum, id) {
startState = start;
solvedState = solved;
difficultyNum = dnum;
difficultyString = dstring;
currentState = startState.slice(0);
identifier = id;
AssessGridFull();
}
function AddListener(o) {
listeners.push(o);
}
function AssessGridFull() {
var _local2 = true;
for (var _local3 in currentState) {
if (currentState[_local3] == 0) {
_local2 = false;
break;
}
}
if (gridFull != _local2) {
for (var _local4 in listeners) {
listeners[_local4].onGridFull(_local2);
}
}
gridFull = _local2;
}
function UpdateCell(cell, value) {
currentState[cell] = value;
AssessGridFull();
}
function ResetAllCells() {
currentState = startState.slice(0);
}
function ClearAllCells() {
for (var _local2 in currentState) {
currentState[_local2] = 0;
}
AssessGridFull();
}
function GetCurrentState() {
return(currentState);
}
function GetStartState() {
return(startState);
}
function GetSolvedState() {
return(solvedState);
}
function GetDifficultyNum() {
return(difficultyNum);
}
function GetDifficultyString() {
return(difficultyString);
}
function GetPuzzleID() {
return(identifier);
}
function GetStateSummary() {
var _local5 = 0;
var _local6 = 0;
var _local3 = 0;
var _local2 = 0;
var _local4 = new Array();
for (var _local7 in currentState) {
if (currentState[_local7] == 0) {
_local6++;
} else {
_local5++;
if (currentState[_local7] == solvedState[_local7]) {
_local3++;
} else {
_local2++;
_local4.push(_local7);
}
}
}
return(new PuzzleState(_local5, _local6, _local3, _local2, _local4));
}
}
Symbol 159 MovieClip [__Packages.PuzzleListener] Frame 0
interface PuzzleListener
{
}
Symbol 160 MovieClip [__Packages.PuzzleState] Frame 0
class PuzzleState
{
var numFilled, numEmpty, numCorrect, numWrong, wrongCells;
function PuzzleState (filled, empty, correct, wrong, cells) {
numFilled = filled;
numEmpty = empty;
numCorrect = correct;
numWrong = wrong;
wrongCells = cells;
}
}
Symbol 161 MovieClip [__Packages.MessageBox] Frame 0
class MessageBox
{
var clip, interval;
function MessageBox (message, showOK, closeTime) {
if (showOK == undefined) {
showOK = true;
}
clip = _root.attachMovie("MessageBox", "messagebox", 100, {_x:50, _y:100});
clip.message_txt.text = message;
if (showOK) {
clip.close_btn.onRelease = CloseBox;
clip.ok_btn.onRelease = CloseBox;
Key.addListener(this);
} else {
clip.close_btn._visible = false;
clip.ok_btn._visible = false;
}
if (closeTime) {
interval = setInterval(this, "CloseBox", closeTime);
}
}
function onKeyDown() {
var _local2 = Key.getCode();
if ((_local2 == 13) || (_local2 == 108)) {
CloseBox();
}
}
function CloseBox() {
if (interval != undefined) {
clearInterval(interval);
}
Key.removeListener(this);
_root.messagebox.removeMovieClip();
}
}
Symbol 162 MovieClip [__Packages.MenuManager] Frame 0
class MenuManager
{
function MenuManager () {
}
function TogglePause() {
if (isPaused) {
isPaused = false;
_root.gotoAndStop("play");
} else {
isPaused = true;
_root.gotoAndStop("pause");
}
}
function IsPaused() {
return(isPaused);
}
function UnPause() {
isPaused = true;
TogglePause();
}
function Print() {
var _local4 = new PrintJob();
if (_local4.start()) {
_global.cellManager._visible = true;
_root.gotoAndStop("print");
if (_local4.addPage(_root)) {
_local4.send();
}
if (isPaused) {
_root.gotoAndStop("pause");
_global.cellManager._visible = false;
} else {
_root.gotoAndStop("play");
_global.cellManager._visible = true;
}
}
var _local5 = new LoadVars();
_local5.load("php_flash/printpuzzle.php");
}
function ToggleSpinner() {
var _local2 = !_global.userSettings.GetShowSpinner();
_global.cellManager.SetShowSpinner(_local2);
_global.userSettings.SetShowSpinner(_local2);
_global.userSettings.SaveSettings();
}
var isPaused = false;
}
Symbol 163 MovieClip [__Packages.ExternalMenuManager] Frame 0
class ExternalMenuManager extends MenuManager
{
var isPaused;
function ExternalMenuManager () {
super();
_root.menu = new ExternalMenu();
}
function TogglePause() {
if (isPaused) {
isPaused = false;
_global.cellManager._visible = true;
if (_global.userSettings.GetPuzzleComplete()) {
_root.gotoAndStop("complete");
} else {
_root.timer.Resume();
_root.gotoAndStop("play");
}
} else {
isPaused = true;
_global.cellManager._visible = false;
if (_global.userSettings.GetPuzzleComplete()) {
_root.gotoAndStop("completeoptions");
} else {
_root.timer.Pause();
_root.gotoAndStop("pause");
}
}
}
function ToggleTimer() {
var _local3 = !_global.userSettings.GetShowTimer();
_root.timer._visible = _local3;
_global.userSettings.SetShowTimer(_local3);
_global.userSettings.SaveSettings();
}
function ToggleErrorCells() {
var _local2 = !_global.userSettings.GetShowErrorCells();
_global.userSettings.SetShowErrorCells(_local2);
_global.userSettings.SaveSettings();
}
}
Symbol 164 MovieClip [__Packages.ExternalMenu] Frame 0
class ExternalMenu extends ContextMenu implements CompleteListener
{
var hideBuiltInItems, customItems;
function ExternalMenu () {
super(onSelect);
hideBuiltInItems();
_global.userSettings.AddCompleteListener(this);
}
function CreatePlayMenu() {
customItems.length = 0;
customItems.push(new MenuPen());
customItems.push(new MenuHowDoing());
customItems.push(new MenuPause());
customItems.push(new MenuPrint());
customItems.push(new MenuRestart());
customItems.push(new MenuSpinner());
customItems.push(new MenuTimer());
customItems.push(new MenuErrorCells());
customItems.push(new MenuAbout("Puzzler"));
}
function CreateCompleteMenu() {
customItems.length = 0;
customItems.push(new MenuAbout("Puzzler"));
}
function onSelect(obj, menu) {
for (var _local2 in menu.customItems) {
menu.customItems[_local2].Prepare();
}
}
function onCompleteState(state) {
if (state) {
CreateCompleteMenu();
} else {
CreatePlayMenu();
}
}
}
Symbol 165 MovieClip [__Packages.MenuPen] Frame 0
class MenuPen extends ContextMenuItem
{
var caption;
function MenuPen () {
super("Use Pencil\tP", onSelect);
}
function onSelect(obj, item) {
_global.userSettings.SetUsingPen(!_global.userSettings.GetUsingPen());
}
function Prepare() {
if (_global.userSettings.GetUsingPen()) {
caption = "Use Pencil\tP";
} else {
caption = "Use Pen\tP";
}
}
}
Symbol 166 MovieClip [__Packages.MenuHowDoing] Frame 0
class MenuHowDoing extends ContextMenuItem
{
function MenuHowDoing () {
super("How am I doing?\t?", onSelect);
}
function onSelect(obj, item) {
_global.manager.HowAmIDoing();
}
}
Symbol 167 MovieClip [__Packages.MenuPause] Frame 0
class MenuPause extends ContextMenuItem
{
var caption;
function MenuPause () {
super("Pause\tesc", onSelect);
}
function onSelect(obj, item) {
_global.menuManager.TogglePause();
}
function Prepare() {
if (_global.menuManager.IsPaused()) {
caption = "Resume\tesc";
} else {
caption = "Pause\tesc";
}
}
}
Symbol 168 MovieClip [__Packages.MenuPrint] Frame 0
class MenuPrint extends ContextMenuItem
{
var separatorBefore;
function MenuPrint () {
super("Print Sudoku", onSelect);
separatorBefore = true;
}
function onSelect(obj, item) {
_global.menuManager.Print();
}
}
Symbol 169 MovieClip [__Packages.MenuRestart] Frame 0
class MenuRestart extends ContextMenuItem
{
function MenuRestart () {
super("Start Again", onSelect);
}
function onSelect(obj, item) {
_global.manager.Restart();
}
}
Symbol 170 MovieClip [__Packages.MenuSpinner] Frame 0
class MenuSpinner extends ContextMenuItem
{
var separatorBefore, caption;
function MenuSpinner () {
super("Disable Ring Selector", onSelect);
separatorBefore = true;
}
function onSelect(obj, item) {
_global.menuManager.ToggleSpinner();
}
function Prepare() {
if (_global.userSettings.GetShowSpinner()) {
caption = "Disable Ring Selector";
} else {
caption = "Enable Ring Selector";
}
}
}
Symbol 171 MovieClip [__Packages.MenuTimer] Frame 0
class MenuTimer extends ContextMenuItem
{
var caption;
function MenuTimer () {
super("Hide Timer", onSelect);
}
function onSelect(obj, item) {
_global.menuManager.ToggleTimer();
}
function Prepare() {
if (_global.userSettings.GetShowTimer()) {
caption = "Hide Timer";
} else {
caption = "Show Timer";
}
}
}
Symbol 172 MovieClip [__Packages.MenuErrorCells] Frame 0
class MenuErrorCells extends ContextMenuItem
{
var caption;
function MenuErrorCells () {
super("Show incorrect cells on how am I doing?", onSelect);
}
function onSelect(obj, item) {
_global.menuManager.ToggleErrorCells();
}
function Prepare() {
if (_global.userSettings.GetShowErrorCells()) {
caption = "Don't show incorrect cells on how am I doing?";
} else {
caption = "Show incorrect cells on how am I doing?";
}
}
}
Symbol 173 MovieClip [__Packages.MenuAbout] Frame 0
class MenuAbout extends ContextMenuItem
{
var separatorBefore;
function MenuAbout (name) {
super("About Sudoku " + name, onSelect);
separatorBefore = true;
}
function onSelect(obj, item) {
var _local1 = new AboutBox();
}
}
Symbol 174 MovieClip [__Packages.AboutBox] Frame 0
class AboutBox
{
var clip;
function AboutBox () {
clip = _root.attachMovie("AboutBox", "aboutbox", 100, {_x:50, _y:100});
clip.close_btn.onRelease = CloseBox;
clip.ok_btn.onRelease = CloseBox;
Key.addListener(this);
}
function onKeyDown() {
var _local2 = Key.getCode();
if ((_local2 == 13) || (_local2 == 108)) {
CloseBox();
}
}
function CloseBox() {
Key.removeListener(this);
_root.aboutbox.removeMovieClip();
}
}
Symbol 175 MovieClip [__Packages.ExternalSubmitter] Frame 0
class ExternalSubmitter implements ServerDataListener
{
var dataLoader;
function ExternalSubmitter () {
dataLoader = new ServerData();
dataLoader.AddListener(this);
}
function SubmitResult(puzzleNum, time) {
dataLoader.ClearData();
dataLoader.AddData("id", puzzleNum);
dataLoader.AddData("time", time);
dataLoader.sendAndLoad("http://www.strictlysudoku.com/externaldata/externalresult.php");
}
function onDataError(loader) {
_global.manager.onStatsLoad(false);
}
function onDataLoad(loader) {
var _local2 = loader.GetData();
if ((!_local2.avtime) || (!_local2.solved)) {
_global.manager.onStatsLoad(false);
return(undefined);
}
var _local4 = parseInt(_local2.solved);
var _local3 = parseInt(_local2.avtime);
_global.manager.onStatsLoad(true, _local4, _local3);
}
}
Symbol 176 MovieClip [__Packages.ButtonHowDoing] Frame 0
class ButtonHowDoing extends ButtonBase implements PuzzleListener
{
var label;
function ButtonHowDoing () {
super();
_global.model.AddListener(this);
Key.addListener(this);
}
function onKeyDown() {
if (Key.getCode() == 191) {
onRelease();
}
}
function onRelease() {
_global.manager.HowAmIDoing();
}
function onGridFull(state) {
if (state) {
label.text = "I THINK I'VE FINISHED";
} else {
label.text = "HOW AM I DOING?";
}
}
}
Symbol 177 MovieClip [__Packages.ButtonRadio] Frame 0
class ButtonRadio extends MovieClip
{
var isOn, label, icon, useHandCursor;
function ButtonRadio () {
super();
}
function onRollOver() {
if (!isOn) {
label.textColor = 13369344 /* 0xCC0000 */;
icon._alpha = 100;
}
}
function onRollOut() {
if (!isOn) {
label.textColor = 0;
icon._alpha = 60;
}
}
function onDragOver() {
onRollOver();
}
function onDragOut() {
onRollOut();
}
function TurnOn() {
isOn = true;
icon._alpha = 100;
label.textColor = 13369344 /* 0xCC0000 */;
useHandCursor = false;
}
function TurnOff() {
isOn = false;
icon._alpha = 60;
label.textColor = 0;
useHandCursor = true;
}
function onRelease() {
if (!isOn) {
Activate();
}
}
function Activate() {
}
}
Symbol 178 MovieClip [__Packages.ButtonPen] Frame 0
class ButtonPen extends ButtonRadio
{
var TurnOn, TurnOff, isOn;
function ButtonPen () {
super();
onPenState(_global.userSettings.GetUsingPen());
_global.userSettings.AddPenListener(this);
Key.addListener(this);
}
function Activate() {
_global.userSettings.SetUsingPen(true);
}
function onPenState(state) {
if (state) {
TurnOn();
} else {
TurnOff();
}
}
function onKeyDown() {
if (Key.getCode() == 80) {
if (isOn) {
_global.userSettings.SetUsingPen(false);
} else {
_global.userSettings.SetUsingPen(true);
}
}
}
}
Symbol 179 MovieClip [__Packages.ButtonPencil] Frame 0
class ButtonPencil extends ButtonRadio implements PenListener
{
var TurnOff, TurnOn;
function ButtonPencil () {
super();
onPenState(_global.userSettings.GetUsingPen());
_global.userSettings.AddPenListener(this);
Key.addListener(this);
}
function Activate() {
_global.userSettings.SetUsingPen(false);
}
function onPenState(state) {
if (state) {
TurnOff();
} else {
TurnOn();
}
}
}
Symbol 180 MovieClip [__Packages.ButtonPause] Frame 0
class ButtonPause extends ButtonBase
{
function ButtonPause () {
super();
Key.addListener(this);
}
function onKeyDown() {
if (Key.getCode() == 27) {
onRelease();
}
}
function onRelease() {
_global.menuManager.TogglePause();
Key.removeListener(this);
}
}
Symbol 181 MovieClip [__Packages.ButtonRestart] Frame 0
class ButtonRestart extends ButtonBase
{
function ButtonRestart () {
super();
}
function onRelease() {
_global.manager.Restart();
}
}
Symbol 182 MovieClip [__Packages.ButtonPrint] Frame 0
class ButtonPrint extends ButtonBase
{
function ButtonPrint () {
super();
}
function onRelease() {
_global.menuManager.Print();
}
}
Symbol 183 MovieClip [__Packages.ButtonTimer] Frame 0
class ButtonTimer extends ButtonBase
{
var label;
function ButtonTimer () {
super();
}
function onRelease() {
_global.menuManager.ToggleTimer();
SetLabel();
}
function onLoad() {
SetLabel();
}
function SetLabel() {
if (_global.userSettings.GetShowTimer()) {
label.text = "HIDE TIMER";
} else {
label.text = "SHOW TIMER";
}
}
}
Symbol 184 MovieClip [__Packages.ButtonSpinner] Frame 0
class ButtonSpinner extends ButtonBase
{
var label;
function ButtonSpinner () {
super();
}
function onRelease() {
_global.menuManager.ToggleSpinner();
SetLabel();
}
function onLoad() {
SetLabel();
}
function SetLabel() {
if (_global.userSettings.GetShowSpinner()) {
label.text = "DISABLE RING SELECTOR";
} else {
label.text = "ENABLE RING SELECTOR";
}
}
}
Symbol 185 MovieClip [__Packages.ButtonErrorCells] Frame 0
class ButtonErrorCells extends ButtonBase
{
var label;
function ButtonErrorCells () {
super();
}
function onRelease() {
_global.menuManager.ToggleErrorCells();
SetLabel();
}
function onLoad() {
SetLabel();
}
function SetLabel() {
if (_global.userSettings.GetShowErrorCells()) {
label.text = "DON'T SHOW INCORRECT CELLS ON \"HOW AM I DOING?\"";
} else {
label.text = "SHOW INCORRECT CELLS ON \"HOW AM I DOING?\"";
}
}
}
Symbol 22 MovieClip [cell] Frame 1
#initclip 63
Object.registerClass("cell", Cell);
#endinitclip
Symbol 25 MovieClip [cellMask] Frame 1
#initclip 49
Object.registerClass("cellMask", CellMask);
#endinitclip
Symbol 26 MovieClip [modalMask] Frame 1
#initclip 50
Object.registerClass("modalMask", ModalMask);
#endinitclip
Symbol 38 MovieClip [OKBtn] Frame 1
#initclip 51
Object.registerClass("OKBtn", ButtonBase);
#endinitclip
Symbol 51 MovieClip [btn0] Frame 1
#initclip 52
Object.registerClass("btn0", SpinButton);
#endinitclip
Symbol 53 MovieClip [btn1] Frame 1
#initclip 53
Object.registerClass("btn1", SpinButton);
#endinitclip
Symbol 55 MovieClip [btn2] Frame 1
#initclip 54
Object.registerClass("btn2", SpinButton);
#endinitclip
Symbol 57 MovieClip [btn3] Frame 1
#initclip 55
Object.registerClass("btn3", SpinButton);
#endinitclip
Symbol 59 MovieClip [btn4] Frame 1
#initclip 56
Object.registerClass("btn4", SpinButton);
#endinitclip
Symbol 61 MovieClip [btn5] Frame 1
#initclip 57
Object.registerClass("btn5", SpinButton);
#endinitclip
Symbol 63 MovieClip [btn6] Frame 1
#initclip 58
Object.registerClass("btn6", SpinButton);
#endinitclip
Symbol 65 MovieClip [btn7] Frame 1
#initclip 59
Object.registerClass("btn7", SpinButton);
#endinitclip
Symbol 67 MovieClip [btn8] Frame 1
#initclip 60
Object.registerClass("btn8", SpinButton);
#endinitclip
Symbol 69 MovieClip [btn9] Frame 1
#initclip 61
Object.registerClass("btn9", SpinButton);
#endinitclip
Instance of Symbol 51 MovieClip [btn0] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 0;
}
Instance of Symbol 53 MovieClip [btn1] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 1;
}
Instance of Symbol 55 MovieClip [btn2] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 2;
}
Instance of Symbol 57 MovieClip [btn3] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 3;
}
Instance of Symbol 59 MovieClip [btn4] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 4;
}
Instance of Symbol 61 MovieClip [btn5] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 5;
}
Instance of Symbol 63 MovieClip [btn6] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 6;
}
Instance of Symbol 65 MovieClip [btn7] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 7;
}
Instance of Symbol 67 MovieClip [btn8] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 8;
}
Instance of Symbol 69 MovieClip [btn9] in Symbol 70 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
value = 9;
}
Symbol 71 MovieClip [spinner] Frame 1
#initclip 62
Object.registerClass("spinner", Spinner);
#endinitclip
Symbol 71 MovieClip [spinner] Frame 7
stop();
Symbol 71 MovieClip [spinner] Frame 15
stop();
Symbol 78 Button
on (release) {
play();
}
Symbol 84 MovieClip [timer] Frame 1
#initclip 64
Object.registerClass("timer", Timer);
#endinitclip
Symbol 87 Button
on (release) {
getURL ("http://www.strictlysudoku.com/");
}
Symbol 91 MovieClip [pauseBtn] Frame 1
#initclip 69
Object.registerClass("pauseBtn", ButtonPause);
#endinitclip
Symbol 95 MovieClip [howdoingBtn] Frame 1
#initclip 65
Object.registerClass("howdoingBtn", ButtonHowDoing);
#endinitclip
Symbol 99 MovieClip [penBtn] Frame 1
#initclip 66
Object.registerClass("penBtn", ButtonPen);
#endinitclip
Symbol 103 MovieClip [pencilBtn] Frame 1
#initclip 67
Object.registerClass("pencilBtn", ButtonPencil);
#endinitclip
Symbol 104 MovieClip [cellHolder] Frame 1
#initclip 68
Object.registerClass("cellHolder", CellManager);
#endinitclip
Symbol 106 MovieClip [resumeBtn] Frame 1
#initclip 75
Object.registerClass("resumeBtn", ButtonPause);
#endinitclip
Symbol 111 MovieClip [restartBtn] Frame 1
#initclip 70
Object.registerClass("restartBtn", ButtonRestart);
#endinitclip
Symbol 115 MovieClip [printBtn] Frame 1
#initclip 71
Object.registerClass("printBtn", ButtonPrint);
#endinitclip
Symbol 119 MovieClip [btnTimer] Frame 1
#initclip 72
Object.registerClass("btnTimer", ButtonTimer);
#endinitclip
Symbol 123 MovieClip [btnSpinner] Frame 1
#initclip 73
Object.registerClass("btnSpinner", ButtonSpinner);
#endinitclip
Symbol 125 MovieClip [btnShowErrors] Frame 1
#initclip 74
Object.registerClass("btnShowErrors", ButtonErrorCells);
#endinitclip
Symbol 136 Button
on (release) {
getURL ("http://www.strictlysudoku.com/");
}