Frame 1
Main.main(this);
Symbol 150 MovieClip Frame 1
stop();
Symbol 172 MovieClip Frame 1
Symbol 20480 MovieClip [__Packages.effects.Star] Frame 0
class effects.Star
{
function Star () {
}
static function createStar(scope, radiusA, radiusB, rotation, xOffset, yOffset) {
var _local8 = scope.getNextHighestDepth();
var _local9 = scope;
var _local10 = 0;
for ( ; _local10 <= 10 ; _local10++) {
var _local11 = (((Math.PI * 2) / 10) * _local10) + rotation;
var _local12 = Math.sin(_local11);
var _local13 = Math.cos(_local11);
if ((_local10 % 2) == 0) {
_local12 = _local12 * radiusB;
_local13 = _local13 * radiusB;
} else {
_local12 = _local12 * radiusA;
_local13 = _local13 * radiusA;
}
if (_local10 == 0) {
_local9.moveTo(_local12 + xOffset, _local13 + yOffset);
} else {
_local9.lineTo(_local12 + xOffset, _local13 + yOffset);
}
}
return(_local9);
}
}
Symbol 20481 MovieClip [__Packages.game.Score] Frame 0
class game.Score
{
static var onScoreChanged;
function Score () {
}
static function __set__Points(value) {
score = value;
onScoreChanged.fire();
return(__get__Points());
}
static function __get__Points() {
return(score);
}
static var score = 0;
}
Symbol 20482 MovieClip [__Packages.ui.GameHUD] Frame 0
class ui.GameHUD
{
var trackPainter, scope, scoreTextField, durationBG, durationTop, durationMask;
function GameHUD (trackPainter, scope) {
this.trackPainter = trackPainter;
this.scope = scope;
game.Score.onScoreChanged = new Event(this, scoreChanged);
var _local4 = scope.attachMovie("library.score.png", "score", scope.getNextHighestDepth());
_local4.createTextField("tf", 1, 0, 0, 0, 0);
scoreTextField = _local4.tf;
scoreTextField.autoSize = true;
scoreTextField.embedFonts = true;
scoreTextField.setNewTextFormat(new TextFormat("dri", 33, 16777215));
scoreTextField.text = "0";
_local4.cacheAsBitmap = true;
_local4.createTextField("label", 2, 0, 0, 0, 0);
var _local5 = _local4.label;
_local5.embedFonts = true;
_local5.setNewTextFormat(new TextFormat("dri", 13, 16777215));
_local5.text = "POINTS";
_local5.autoSize = true;
_local5._x = 65;
_local5._y = 110;
durationBG = scope.attachMovie("library.duration_bg.png", "durBG", scope.getNextHighestDepth());
durationTop = durationBG.attachMovie("library.duration.png", "durTop", durationBG.getNextHighestDepth());
durationMask = durationBG.createEmptyMovieClip("durMask", durationBG.getNextHighestDepth());
durationTop.setMask(durationMask);
_local4._y = Stage.height - _local4._height;
_local4._x = Stage.width - _local4._width;
scope.createTextField("label", scope.getNextHighestDepth(), 0, 0, 0, 0);
var _local6 = scope.label;
_local6.embedFonts = true;
_local6.setNewTextFormat(new TextFormat("dri", 13, 16777215));
_local6.text = "TID TILBAGE";
_local6.autoSize = true;
_local6._x = 17;
_local6._y = (Stage.height - _local4._height) + 90;
durationBG._x = 8;
durationBG._y = (_local6._y - durationBG._height) + 15;
scoreChanged();
}
function draw() {
durationMask.clear();
var _local2 = 50;
var _local3 = 50;
var _local4 = trackPainter.main.backgroundMusic.position / trackPainter.main.backgroundMusic.getDuration();
durationMask.moveTo(_local2, _local3);
durationMask.lineStyle(1, 16777215, 100);
durationMask.beginFill(100, 16777215);
var _local5 = 0;
for ( ; _local5 < (_local4 * 360) ; _local5 = _local5 + 40) {
var _local6 = (_local5 / 180) * Math.PI;
var _local7 = (Math.sin(_local6) * 40) + _local2;
var _local8 = ((-Math.cos(_local6)) * 40) + _local3;
durationMask.lineTo(_local7, _local8);
}
var _local9 = (_local4 * Math.PI) * 2;
var _local10 = (Math.sin(_local9) * 40) + _local2;
var _local11 = ((-Math.cos(_local9)) * 40) + _local3;
durationMask.lineTo(_local10, _local11);
durationMask.endFill();
}
function scoreChanged() {
scoreTextField._parent.onEnterFrame = function () {
var _local2 = _global.parseInt(this.tf.text);
if ((_local2 + 7) < game.Score.Points) {
this.tf.text = (_local2 + 7).toString();
} else if ((_local2 < game.Score.Points) || (_local2 > game.Score.Points)) {
this.tf.text = game.Score.Points.toString();
delete this.onEnterFrame;
}
this.tf._x = (this._width / 2) - (this.tf._width / 2);
this.tf._y = (this._height / 2) - (this.tf._height / 2);
};
}
}
Symbol 20483 MovieClip [__Packages.ui.Start] Frame 0
class ui.Start
{
var mc, starEffect, __get__onOpenGameMenu, __get__onCloseGameMenu, __get__onStartLevel1, __get__onStartLevel2, __get__onStartLevel3, __get__onStartLevel4, __get__onShowHighscore, __get__onShowGuide, __get__onClosed;
function Start () {
mc = _root.attachMovie("start", "start", _root.getNextHighestDepth());
starEffect = new ui.MaskTransition(mc, 0);
onOpenGameMenu = new Event(this, openMenu);
onCloseGameMenu = new Event(this, closeMenu);
for (var s in mc) {
org.flashdevelop.utils.FlashOut.trace((s + " ") + mc[s], "ui.Start::Start", "C:\\Actionscript\\FluteHero\\classes/ui/Start.as", 19);
}
}
function openMenu() {
mc.startMenu.onEnterFrame = function () {
this._x = this._x + (((-Stage.width) - this._x) / 2);
};
mc.gameMenu.onEnterFrame = function () {
this._x = this._x + ((-this._x) / 2);
};
}
function closeMenu() {
mc.startMenu.onEnterFrame = function () {
this._x = this._x + ((-this._x) / 2);
};
mc.gameMenu.onEnterFrame = function () {
this._x = this._x + ((Stage.width - this._x) / 2);
};
}
function open() {
starEffect.open();
}
function set onOpenGameMenu(event) {
mc.startMenu.newGame.event = event;
mc.startMenu.newGame.onRelease = function () {
this.event.fire();
};
//return(__get__onOpenGameMenu());
}
function set onCloseGameMenu(event) {
mc.gameMenu.back.event = event;
mc.gameMenu.back.onRelease = function () {
this.event.fire();
};
//return(__get__onCloseGameMenu());
}
function set onStartLevel1(event) {
mc.gameMenu.startLevel1.event = event;
mc.gameMenu.startLevel1.onRelease = function () {
this.event.fire();
};
//return(__get__onStartLevel1());
}
function set onStartLevel2(event) {
mc.gameMenu.startLevel2.event = event;
mc.gameMenu.startLevel2.onRelease = function () {
this.event.fire();
};
//return(__get__onStartLevel2());
}
function set onStartLevel3(event) {
mc.gameMenu.startLevel3.event = event;
mc.gameMenu.startLevel3.onRelease = function () {
this.event.fire();
};
//return(__get__onStartLevel3());
}
function set onStartLevel4(event) {
mc.gameMenu.startLevel4.event = event;
mc.gameMenu.startLevel4.onRelease = function () {
this.event.fire();
};
//return(__get__onStartLevel4());
}
function set onShowHighscore(event) {
mc.startMenu.highscore.event = event;
mc.startMenu.highscore.onRelease = function () {
this.event.fire();
};
//return(__get__onShowHighscore());
}
function set onShowGuide(event) {
mc.startMenu.guide.event = event;
mc.startMenu.guide.onRelease = function () {
this.event.fire();
};
//return(__get__onShowGuide());
}
function set onClosed(event) {
starEffect.onCloseComplete = event;
//return(__get__onClosed());
}
function close() {
starEffect.close();
}
function dispose() {
starEffect.dispose();
mc.removeMovieClip();
}
}
Symbol 20484 MovieClip [__Packages.sound.TrackSound] Frame 0
class sound.TrackSound extends Sound
{
var loadSound, onSoundLoad;
function TrackSound (file) {
super();
loadSound(file);
}
function onLoad() {
onSoundLoad.fire();
}
}
Symbol 20485 MovieClip [__Packages.ui.Prelaoder] Frame 0
class ui.Prelaoder
{
var target, bg, top, mask, onLoad;
function Prelaoder (target) {
this.target = target;
var _local3 = _root.getNextHighestDepth();
bg = _root.attachMovie("library.duration_bg.png", "durBG" + _local3, _local3);
top = bg.attachMovie("library.duration.png", "durTop", bg.getNextHighestDepth());
mask = bg.createEmptyMovieClip("durMask", bg.getNextHighestDepth());
top.setMask(mask);
bg._x = (Stage.width / 2) - (bg._width / 2);
bg._y = (Stage.height / 2) - (bg._height / 2);
bg.preloader = this;
bg.onEnterFrame = function () {
this.preloader.update();
};
}
function update() {
var _local2 = target.getBytesLoaded();
var _local3 = target.getBytesTotal();
var _local4 = _local2 / _local3;
mask.clear();
mask.moveTo(50, 50);
mask.lineStyle(1, 16777215, 100);
mask.beginFill(100, 16777215);
var _local5 = 0;
for ( ; _local5 < (_local4 * 360) ; _local5 = _local5 + 40) {
var _local6 = (_local5 / 180) * Math.PI;
var _local7 = (Math.sin(_local6) * 40) + 50;
var _local8 = ((-Math.cos(_local6)) * 40) + 50;
mask.lineTo(_local7, _local8);
}
var _local9 = (_local4 * Math.PI) * 2;
var _local10 = (Math.sin(_local9) * 40) + 50;
var _local11 = ((-Math.cos(_local9)) * 40) + 50;
mask.lineTo(_local10, _local11);
mask.endFill();
if ((_local2 == _local3) && (_local3 > 100)) {
dispose();
onLoad.fire();
}
}
function dispose() {
top.removeMovieClip();
mask.removeMovieClip();
bg.removeMovieClip();
}
}
Symbol 20486 MovieClip [__Packages.sound.IMasterVolumeListener] Frame 0
class sound.IMasterVolumeListener
{
function IMasterVolumeListener () {
}
}
Symbol 20487 MovieClip [__Packages.effects.IRenderableEffect] Frame 0
class effects.IRenderableEffect
{
function IRenderableEffect () {
}
}
Symbol 20488 MovieClip [__Packages.effects.PerfectNote] Frame 0
class effects.PerfectNote implements effects.IRenderableEffect
{
var particles, offset, scope, isDead, height, tf, shake;
function PerfectNote (note, offset, scope) {
particles = new effects.ParticleEffect(16777215);
this.offset = offset;
this.scope = scope;
isDead = false;
height = note.length / 10;
var _local5 = 0;
for ( ; _local5 < (height / 4) ; _local5++) {
particles.addCustomParticle(0, _local5 * 4, 0, (Math.random() * Math.PI) * 2);
}
particles.onDead = new Event(this, onParticlesDead);
scope.createTextField("tf", scope.getNextHighestDepth(), 0, 0, 100, 40);
tf = scope.tf;
tf.setNewTextFormat(new TextFormat("dri", 20, 16777215, false, false, false, null, null, "center"));
tf.embedFonts = true;
tf.selectable = false;
tf.multiline = true;
tf.text = "PERFECT! \n x2";
shake = 10;
}
function render() {
particles.render(scope, offset + 10, 162 - height);
particles.kill();
tf._alpha = tf._alpha - (tf._alpha / 10);
tf._xscale = (tf._yscale = tf._yscale + ((200 - tf._xscale) / 5));
tf._x = offset - (tf._width / 2);
tf._y = 240 / 2;
return((isDead ? false : true));
}
function onParticlesDead() {
isDead = true;
tf.removeTextField();
}
}
Symbol 20489 MovieClip [__Packages.sound.MenuMusic] Frame 0
class sound.MenuMusic
{
static var mc, sound;
function MenuMusic () {
}
static function start() {
if (!mc) {
mc = _root.attachMovie("library.menu_music.swf", "menu_music", _root.getNextHighestDepth());
sound = new Sound(mc);
sound.setVolume(0);
mc.gotoAndStop(2);
}
mc.s = sound;
mc.onEnterFrame = function () {
var _local2 = this.s;
_local2.setVolume(_local2.getVolume() + ((80 - _local2.getVolume()) / 50));
if (_local2.getVolume() > (_global.sound.MenuMusic.VOLUME - 1)) {
_local2.setVolume(_global.sound.MenuMusic.VOLUME);
delete this.onEnterFrame;
}
};
}
static function stop() {
mc.s = sound;
mc.onEnterFrame = function () {
var _local2 = this.s;
_local2.setVolume(_local2.getVolume() - (_local2.getVolume() / 3));
if (_local2.getVolume() < 1) {
_local2.setVolume(0);
delete this.onEnterFrame;
}
};
}
static var VOLUME = 70;
}
Symbol 20490 MovieClip [__Packages.ui.Highscore] Frame 0
class ui.Highscore extends XML
{
var mc, starEffect, ignoreWhite, load, firstChild, __get__onStartNewGame, __get__onClosed;
function Highscore () {
super();
var _local3 = new Date();
var _local4 = (game.Level.HIGHSCORE_URLS[game.Level.SELECTED] + "?killcache=") + _local3.getTime();
mc = _root.attachMovie("highscore", "highscore", _root.getNextHighestDepth());
starEffect = new ui.MaskTransition(mc, 0);
mc.btns.level1.hs = this;
mc.btns.level1.onPress = function () {
var _local2 = new Date();
this.hs.removeRows();
this.hs.disableButton(this);
this.hs.load((game.Level.HIGHSCORE_URLS[game.Level.EASY] + "?killcache=") + _local2.getTime());
};
mc.btns.level2.hs = this;
mc.btns.level2.onPress = function () {
var _local2 = new Date();
this.hs.removeRows();
this.hs.disableButton(this);
this.hs.load((game.Level.HIGHSCORE_URLS[game.Level.MEDIUM] + "?killcache=") + _local2.getTime());
};
mc.btns.level3.hs = this;
mc.btns.level3.onPress = function () {
var _local2 = new Date();
this.hs.removeRows();
this.hs.disableButton(this);
this.hs.load((game.Level.HIGHSCORE_URLS[game.Level.HARD] + "?killcache=") + _local2.getTime());
};
mc.btns.level4.hs = this;
mc.btns.level4.onPress = function () {
var _local2 = new Date();
this.hs.removeRows();
this.hs.disableButton(this);
this.hs.load((game.Level.HIGHSCORE_URLS[game.Level.INSANE] + "?killcache=") + _local2.getTime());
};
if (game.Level.SELECTED == game.Level.EASY) {
disableButton(mc.btns.level1);
} else if (game.Level.SELECTED == game.Level.MEDIUM) {
disableButton(mc.btns.level2);
} else if (game.Level.SELECTED == game.Level.HARD) {
disableButton(mc.btns.level3);
} else if (game.Level.SELECTED == game.Level.INSANE) {
disableButton(mc.btns.level4);
}
var _local5 = new ui.Prelaoder(this);
ignoreWhite = true;
load(_local4);
org.flashdevelop.utils.FlashOut.trace("load highscore.. " + _local4, "ui.Highscore::Highscore", "C:\\Actionscript\\FluteHero\\classes/ui/Highscore.as", 73);
}
function onLoad() {
if (firstChild.nodeName == "highscore") {
open();
createRows();
}
}
function disableButton(button) {
mc.btns.level1.onEnterFrame = (mc.btns.level2.onEnterFrame = (mc.btns.level3.onEnterFrame = (mc.btns.level4.onEnterFrame = function () {
this._alpha = this._alpha + ((100 - this._alpha) / 2);
})));
button.onEnterFrame = function () {
this._alpha = this._alpha - (this._alpha / 3);
};
}
function createRows() {
var _local2 = 0;
for ( ; _local2 < firstChild.childNodes.length ; _local2++) {
var _local3 = firstChild.childNodes[_local2];
if (_local3.nodeName == "scores") {
var _local4 = 0;
for ( ; _local4 < _local3.childNodes.length ; _local4++) {
var _local5 = _local3.childNodes[_local4];
var _local6 = mc.getNextHighestDepth();
var _local7 = mc.attachMovie("row", "row" + _local6, _local6);
_local7.ideal_y = 125 + (_local4 * 22);
_local7._y = _local7.ideal_y + 20;
_local7._x = Stage.width / 2;
_local7._alpha = 0;
var _local8 = 0;
for ( ; _local8 < _local5.childNodes.length ; _local8++) {
var _local9 = _local5.childNodes[_local8];
if (_local9.nodeName == "name") {
_local7.name = _local9.childNodes.toString().split("'").join("'").split("&").join("&").split(""").join("\"");
} else if (_local9.nodeName == "score") {
_local7.score = _local9.childNodes.toString();
} else if (_local9.nodeName == "submitTime") {
_local7.time = _local9.attributes.danishTime;
_local7.date = _local9.attributes.danishDate;
} else if (_local9.nodeName == "you") {
if (_local9.childNodes.toString() == "1") {
org.flashdevelop.utils.FlashOut.trace("YOU", "ui.Highscore::createRows", "C:\\Actionscript\\FluteHero\\classes/ui/Highscore.as", 135);
setSelectedRow(_local7);
}
}
}
_local7.i = _local4 + 1;
_local7.pause = (_local4 * 4) + 20;
_local7.onEnterFrame = function () {
if (this.pause < 0) {
this._y = this._y + ((this.ideal_y - this._y) / 3);
this._alpha = this._alpha + ((100 - this._alpha) / 3);
if (this._alpha > 90) {
org.flashdevelop.utils.FlashOut.trace("done 1...", "ui.Highscore::createRows", "C:\\Actionscript\\FluteHero\\classes/ui/Highscore.as", 152);
this._alpha = 100;
this._y = this._ideal_y;
delete this.onEnterFrame;
}
} else {
this.pause--;
}
};
}
}
}
}
function setSelectedRow(row) {
mc.row = row;
mc.color = new Color(row);
mc.t = {};
mc.f = 0;
mc.onEnterFrame = function () {
var _local2 = this.color;
this.t.ra = 75 + (Math.sin(this.f) * 25);
this.t.gb = 50 - (Math.sin(this.f) * 30);
_local2.setTransform(this.t);
this.f = this.f + 0.3;
};
}
function removeRows() {
delete mc.onEnterFrame;
var _local2 = 0;
for (var s in mc) {
var _local3 = mc[s];
if (_local3._name.substring(0, 3) == "row") {
var _local4 = MovieClip(_local3);
_local4.pause = _local2 * 2;
_local4.onEnterFrame = function () {
if (this.pause < 0) {
this._y--;
this._alpha = this._alpha - (this._alpha / 2);
if (this._alpha < 1) {
org.flashdevelop.utils.FlashOut.trace("done 2...", "ui.Highscore::removeRows", "C:\\Actionscript\\FluteHero\\classes/ui/Highscore.as", 205);
delete this.onEnterFrame;
this.removeMovieClip();
}
} else {
this.pause--;
}
};
}
_local2++;
}
}
function open() {
if (starEffect.Factor != 1) {
starEffect.open();
}
}
function set onStartNewGame(event) {
mc.start.event = event;
mc.start.onRelease = function () {
this.event.fire();
};
//return(__get__onStartNewGame());
}
function set onClosed(event) {
starEffect.onCloseComplete = event;
//return(__get__onClosed());
}
function close() {
starEffect.close();
}
function dispose() {
starEffect.dispose();
mc.removeMovieClip();
}
}
Symbol 20491 MovieClip [__Packages.ui.MasterVolume] Frame 0
class ui.MasterVolume extends Sound
{
var listeners;
function MasterVolume (scope) {
super(_root);
listeners = new Array();
var _local4 = scope.attachMovie("library.sound_dial.swf", "dial", scope.getNextHighestDepth());
_local4._x = 25;
_local4._y = Stage.height - 55;
_local4.knob.sound = this;
_local4.knob._rotation = 77;
_local4.knob.onPress = function () {
this.y = this._parent._ymouse;
this.x = this._parent._xmouse;
this.r = this._rotation;
this.onEnterFrame = function () {
var _local2 = (this.r + (this.y - this._parent._ymouse)) - ((this.x - this.x) - this._parent._xmouse);
if (_local2 < -77) {
_local2 = -77;
}
if (_local2 > 77) {
_local2 = 77;
}
this._rotation = _local2;
var _local3 = (_local2 + 77) / 154;
var _local4 = Math.round(_local3 * 100);
this.sound.setVolume(_local4);
};
};
_local4.knob.onRelease = (_local4.knob.onReleaseOutside = function () {
delete this.onEnterFrame;
});
var _local5 = _local4._width - 12;
var _local6 = _local4._height + 7;
_local4.lineStyle(0, 16777215, 0);
_local4.moveTo(10, 0);
_local4.beginGradientFill("radial", [16777215, 16777215], [68, 0], [0, 255], {matrixType:"box", x:10, y:0, w:_local5 - 12, h:_local6, r:(45 / 180) * Math.PI});
_local4.lineTo(_local5, 0);
_local4.lineTo(_local5, _local6);
_local4.lineTo(10, _local6);
_local4.lineTo(10, 0);
_local4.createTextField("tf", 1, 0, 0, 100, 100);
var _local7 = _local4.tf;
_local7.embedFonts = true;
_local7.autoSize = true;
_local7.setNewTextFormat(new TextFormat("dri", 11, 16777215));
_local7.text = "VOLUME";
_local7._x = _local4.knob._width - (_local7._width / 2);
_local7._y = _local4.knob._height + 10;
setVolume(100);
}
function setVolume(value) {
super.setVolume(value);
var _local4 = 0;
for ( ; _local4 < listeners.length ; _local4++) {
var _local5 = listeners[_local4];
_local5.setVolume(value);
}
}
function addListener(listerner) {
listeners.push(listerner);
}
function removeListener(listener) {
var _local3 = 0;
for ( ; _local3 < listeners.length ; _local3++) {
if (listener == listeners[_local3]) {
listeners.splice(_local3, 1);
return(undefined);
}
}
}
function clearListeners() {
listeners = new Array();
}
static function BringVolumeControlToFront() {
org.flashdevelop.utils.FlashOut.trace("BringVolumeControlToFront" + _root.dial, "ui.MasterVolume::BringVolumeControlToFront", "C:\\Actionscript\\FluteHero\\classes/ui/MasterVolume.as", 105);
_root.dial.swapDepths(_root.getNextHighestDepth());
}
}
Symbol 20492 MovieClip [__Packages.game.Track] Frame 0
class game.Track implements sound.IMasterVolumeListener
{
var main, color, isDown, notes, subtracks, visibleNotes, sound, offset, maxVolume, keyCode, playerNote, particles, playerNoteScore, fadeIntervalID;
function Track (main, soundFile, offset) {
this.main = main;
color = 16777215 * Math.random();
isDown = false;
notes = new Array();
subtracks = new Array();
visibleNotes = new Array();
sound = new sound.TrackSound(soundFile);
this.offset = offset;
maxVolume = 20;
setVolume(main.masterVolume.getVolume());
}
function addNote(note) {
notes.push(note);
var _local3 = Math.floor(note.start / SUB_TRACK_LENGTH);
if (!(subtracks[_local3] instanceof Array)) {
subtracks[_local3] = new Array();
}
subtracks[_local3].push(note);
}
function assignKeyCode(keyCode) {
this.keyCode = keyCode;
Key.addListener(this);
}
function onKeyDown() {
if ((Key.getCode() == keyCode) && (!isDown)) {
isDown = true;
playerNote = new game.Note(main.backgroundMusic.getPosition(), null, true);
particles = new effects.ParticleEffect(color);
particles.onDead = new Event(this, deleteParticles);
var _local2 = 0;
for ( ; _local2 < visibleNotes.length ; _local2++) {
var _local3 = visibleNotes[_local2];
if (_local3.end > main.backgroundMusic.position) {
playerNote.hit = _local3;
_local3.isPlayed = true;
break;
}
}
playerNoteScore = new game.NoteScore(playerNote, playerNote.hit);
visibleNotes.push(playerNote);
if (sound.position > 0) {
sound.stop();
}
sound.start(offset);
if (fadeIntervalID) {
_global.clearInterval(fadeIntervalID);
}
sound.setVolume(maxVolume);
} else if ((Key.getCode() != keyCode) && (isDown)) {
handleKeyUp();
}
}
function onKeyUp() {
if (Key.getCode() == keyCode) {
handleKeyUp();
}
}
function handleKeyUp() {
isDown = false;
if (playerNote) {
playerNote.length = main.backgroundMusic.getPosition() - playerNote.start;
var _local2 = playerNoteScore.getScore();
if (_local2 > 95) {
_local2 = _local2 * 2;
main.tracksPainter.addPerfectNote(this, playerNote);
}
if (_local2 < 0) {
playerNote.isBadNote = true;
}
game.Score.Points = game.Score.Points + _local2;
playerNote = null;
fadeIntervalID = _global.setInterval(this, "fadeOut", 20);
particles.kill();
}
}
function setVolume(value) {
maxVolume = value / 7;
}
function fadeOut() {
var _local2 = sound.getVolume();
if (_local2 > 5) {
sound.setVolume(_local2 - 5);
} else {
sound.stop();
_global.clearInterval(fadeIntervalID);
fadeIntervalID = null;
}
}
function deleteParticles() {
delete particles;
}
function getVisibleNotes() {
return(visibleNotes);
}
function updateNotes(past, future) {
var _local4 = main.backgroundMusic.getPosition();
var _local5 = Math.floor((_local4 + future) / SUB_TRACK_LENGTH);
var _local6 = ((("updateNotes: " + _local4) + " ") + future) + ": ";
var _local7 = 0;
for ( ; _local7 < subtracks[_local5].length ; _local7++) {
var _local8 = subtracks[_local5][_local7];
if ((_local8.start <= (_local4 + future)) || (_local8.length == null)) {
visibleNotes.push(_local8);
Array(subtracks[_local5]).splice(_local7, 1);
_local6 = _local6 + (" " + _local7);
}
}
var _local9 = 0;
for ( ; _local9 < visibleNotes.length ; _local9++) {
var _local10 = visibleNotes[_local9];
if ((_local10.start + _local10.length) < (_local4 - past)) {
visibleNotes.splice(_local9, 1);
break;
}
}
}
static var SUB_TRACK_LENGTH = 1536;
static var COLORS = new Array(2604287, 2614465, 6082655, 13164849, 16748337, 16722766, 12666765, 9320080, 5062821, 7369184);
}
Symbol 20493 MovieClip [__Packages.sound.BackgroundMusic] Frame 0
class sound.BackgroundMusic extends Sound implements sound.IMasterVolumeListener
{
var onBackgroundMusicLoad, onBackgroundMusicComplete;
function BackgroundMusic () {
super(_root);
}
function onLoad() {
onBackgroundMusicLoad.fire();
}
function onSoundComplete() {
onBackgroundMusicComplete.fire();
}
}
Symbol 20494 MovieClip [__Packages.game.NoteScore] Frame 0
class game.NoteScore
{
var player, note;
function NoteScore (player, note) {
this.player = player;
this.note = note;
}
function getScore(position) {
if (note) {
var _local3 = 0;
var _local4 = (player.end ? (player.end) : (position));
var _local5 = player.start - note.start;
if (_local5 < 0) {
}
var _local6 = note.end - _local4;
if (_local6 < 0) {
}
var _local7 = (note.length - Math.abs(_local5)) - Math.abs(_local6);
var _local8 = _local7 / note.length;
_local8 = ((_local8 <= 0) ? 0 : (_local8));
_local3 = Math.round(_local8 * 100);
if ((player.start > note.end) || (player.end < note.start)) {
_local3 = -5;
}
return(_local3);
}
return(-10);
}
}
Symbol 20495 MovieClip [__Packages.game.NoteBuilder] Frame 0
class game.NoteBuilder
{
static var tempoFactor, firstNoteStart, tempo;
function NoteBuilder () {
}
static function initialize() {
trackRegisters[69] = 0;
trackRegisters[71] = 1;
trackRegisters[73] = 2;
trackRegisters[74] = 3;
trackRegisters[76] = 4;
trackRegisters[78] = 5;
trackRegisters[80] = 6;
trackRegisters[81] = 7;
trackRegisters[83] = 8;
trackRegisters[85] = 9;
}
static function addEvent(event, tracks) {
var _local4 = Math.round(_global.parseInt(event.firstChild.childNodes.toString()) * tempoFactor);
var _local5 = event.lastChild;
if (_local5.nodeName == "NoteOn") {
var _local6 = trackRegisters[_global.parseInt(_local5.attributes.Note)];
var _local7 = game.Track(tracks[_local6]);
_local7.addNote(new game.Note(_local4, -1, false));
if (_local7 == undefined) {
org.flashdevelop.utils.FlashOut.trace("**** ERROR unknown track " + _local6, "game.NoteBuilder::addEvent", "C:\\Actionscript\\FluteHero\\classes/game/NoteBuilder.as", 44);
}
if ((_local4 < firstNoteStart) || (firstNoteStart == undefined)) {
firstNoteStart = _local4;
}
knownTracks[_local6] = _global.parseInt(_local5.attributes.Note);
} else if (_local5.nodeName == "NoteOff") {
var _local8 = trackRegisters[_global.parseInt(_local5.attributes.Note)];
var _local9 = game.Track(tracks[_local8]).notes[game.Track(tracks[_local8]).notes.length - 1];
if (_local9.length > 0) {
org.flashdevelop.utils.FlashOut.trace("**** ERROR note length allready set", "game.NoteBuilder::addEvent", "C:\\Actionscript\\FluteHero\\classes/game/NoteBuilder.as", 61);
} else if ((_local9 == undefined) && (_local8 != undefined)) {
org.flashdevelop.utils.FlashOut.trace("**** ERROR unknown note", "game.NoteBuilder::addEvent", "C:\\Actionscript\\FluteHero\\classes/game/NoteBuilder.as", 65);
}
_local9.length = _local4 - _local9.start;
} else if (_local5.nodeName == "SetTempo") {
tempo = _global.parseInt(_local5.attributes.Value);
tempoFactor = (tempo / ticksPerBeat) / 1000;
microsecundsPerBeat = ticksPerBeat * tempoFactor;
org.flashdevelop.utils.FlashOut.trace((("tempoFactor: " + tempoFactor) + " microsecundsPerBeat:") + microsecundsPerBeat, "game.NoteBuilder::addEvent", "C:\\Actionscript\\FluteHero\\classes/game/NoteBuilder.as", 76);
}
}
static function displayKnownTracks() {
for (var s in knownTracks) {
org.flashdevelop.utils.FlashOut.trace((("track " + s) + " is ") + knownTracks[s], "game.NoteBuilder::displayKnownTracks", "C:\\Actionscript\\FluteHero\\classes/game/NoteBuilder.as", 84);
}
}
static function addMeta(metaNode) {
if (metaNode.nodeName == "TicksPerBeat") {
ticksPerBeat = _global.parseInt(metaNode.childNodes.toString());
}
}
static var ticksPerBeat = 0;
static var microsecundsPerBeat = 0;
static var knownTracks = new Array();
static var trackRegisters = new Array();
}
Symbol 20496 MovieClip [__Packages.org.flashdevelop.utils.FlashOut] Frame 0
class org.flashdevelop.utils.FlashOut
{
function FlashOut () {
}
static function trace(msg) {
fscommand ("trace", msg.toString());
}
}
Symbol 20497 MovieClip [__Packages.effects.ParticleEffect] Frame 0
class effects.ParticleEffect extends Array
{
var scope, color, alive, length, splice, onDead, push;
function ParticleEffect (color) {
super();
scope = scope;
this.color = color;
alive = true;
}
function render(scope, x, y) {
var _local5 = 0;
for ( ; _local5 < length ; _local5++) {
var _local6 = this[_local5];
_local6.age++;
_local6.x = _local6.x + (Math.sin(_local6.dir) * speed);
_local6.y = _local6.y + ((Math.cos(_local6.dir) * speed) + (_local6.age / 3));
var _local7 = 100 - (_local6.age * 10);
var _local8 = 2;
var _local9 = 5;
var _local10 = 0;
var _local11 = 0;
for ( ; _local11 <= 10 ; _local11++) {
var _local12 = (((Math.PI * 2) / 10) * _local11) + _local10;
var _local13 = Math.sin(_local12);
var _local14 = Math.cos(_local12);
if ((_local11 % 2) == 0) {
_local13 = _local13 * _local9;
_local14 = _local14 * _local9;
} else {
_local13 = _local13 * _local8;
_local14 = _local14 * _local8;
}
if (_local11 == 0) {
scope.moveTo((_local6.x + x) + _local13, (_local6.y + y) + _local14);
scope.beginFill(16777215, _local7);
scope.lineStyle(1, 16777215, _local7);
} else {
scope.lineTo((_local6.x + x) + _local13, (_local6.y + y) + _local14);
}
}
scope.endFill();
if (_local6.age > 10) {
splice(_local5, 1);
}
}
if (alive) {
addParticle();
}
if (length < 1) {
onDead.fire();
}
}
function addParticle() {
push({x:0, y:0, age:0, dir:(Math.random() * Math.PI) * 2});
}
function addCustomParticle(x, y, age, dir) {
push({x:x, y:y, age:age, dir:dir});
}
function kill() {
alive = false;
}
static var speed = 4;
}
Symbol 20498 MovieClip [__Packages.ui.MaskTransition] Frame 0
class ui.MaskTransition
{
var mask, target, effects, radius, factor, idealFactor, onOpenComplete, onCloseComplete;
function MaskTransition (target, factor) {
var _local4 = target._parent;
mask = _local4.createEmptyMovieClip("mask_" + target._name, _local4.getNextHighestDepth());
target.setMask(mask);
this.target = target;
effects = _local4.createEmptyMovieClip("effects_" + target._name, _local4.getNextHighestDepth());
var _local5 = Stage.width / 2;
var _local6 = Stage.height / 2;
effects._x = (mask._x = _local5);
effects._y = (mask._y = _local6);
radius = Math.sqrt((_local5 * _local5) + (_local6 * _local6));
this.factor = factor;
idealFactor = factor;
render();
org.flashdevelop.utils.FlashOut.trace("MaskTransition " + _local4, "ui.MaskTransition::MaskTransition", "C:\\Actionscript\\FluteHero\\classes/ui/MaskTransition.as", 41);
}
function get Factor() {
return(factor);
}
function open() {
start(1);
ui.MasterVolume.BringVolumeControlToFront();
}
function close() {
start(0);
}
function start(f) {
idealFactor = f;
mask.mt = this;
mask.onEnterFrame = function () {
this.mt.render();
};
}
function render() {
var _local2 = (idealFactor - factor) / 5;
factor = factor + ((_local2 > 0.03) ? 0.03 : (_local2));
mask.clear();
mask.beginFill(0, 100);
effects.Star.createStar(mask, (factor * radius) * 2, factor * radius, factor * 3, 0, 0);
mask.endFill();
effects.clear();
effects.lineStyle(9, 16777215, 30);
effects.Star.createStar(effects, (factor * radius) * 2, factor * radius, factor * 3, 0, 0);
effects.lineStyle(3, 16777215, 30);
effects.Star.createStar(effects, (factor * radius) * 2, factor * radius, factor * 3, 0, 0);
effects.lineStyle(6, 16777215, 30);
effects.Star.createStar(effects, (factor * radius) * 2, factor * radius, factor * 3, 0, 0);
effects.lineStyle(1, 16777215, 100);
effects.Star.createStar(effects, (factor * radius) * 2, factor * radius, factor * 3, 0, 0);
if ((factor > 0.99) && (idealFactor == 1)) {
effects.clear();
onOpenComplete.fire();
delete mask.onEnterFrame;
} else if ((factor < 0.01) && (idealFactor == 0)) {
effects.clear();
onCloseComplete.fire();
delete mask.onEnterFrame;
}
}
function dispose() {
effects.removeMovieClip();
mask.removeMovieClip();
}
}
Symbol 20499 MovieClip [__Packages.effects.CountDown] Frame 0
class effects.CountDown implements effects.IRenderableEffect
{
var main, textField;
function CountDown (main, scope) {
this.main = main;
scope.createTextField("countDown", scope.getNextHighestDepth(), 0, 0, 100, 100);
textField = scope.countDown;
textField.setNewTextFormat(new TextFormat("dri", 20, 16777215));
textField.embedFonts = true;
textField.selectable = false;
textField.autoSize = true;
}
function render() {
var _local2 = main.backgroundMusic.getPosition();
var _local3 = game.NoteBuilder.firstNoteStart / LABELS.length;
if ((_local2 - _local3) < game.NoteBuilder.firstNoteStart) {
var _local4 = Math.floor(_local2 / _local3);
var _local5 = LABELS.length - _local4;
var _local6 = 1 - ((_local2 - (_local4 * _local3)) / _local3);
if (LABELS[_local5]) {
textField.text = LABELS[_local5];
}
textField._xscale = (textField._yscale = 100 + (_local6 * 400));
textField._x = 280 - (textField._width / 2);
textField._y = 162 - (textField._height / 2);
textField._alpha = 100 * _local6;
return(true);
}
textField.removeTextField();
return(false);
}
static var LABELS = new Array("GO", "STEADY", "READY BITCH?", "4", "5", "6", "7", "8", "9", "10");
}
Symbol 20500 MovieClip [__Packages.game.Level] Frame 0
class game.Level
{
function Level () {
}
static var EASY = 0;
static var MEDIUM = 1;
static var HARD = 2;
static var INSANE = 3;
static var SELECTED = 0;
static var HIGHSCORE_URLS = new Array("http://apache.drung.codecube.dk/highscore/list/3/10/", "http://apache.drung.codecube.dk/highscore/list/4/10/", "http://apache.drung.codecube.dk/highscore/list/5/10/", "http://apache.drung.codecube.dk/highscore/list/6/10/");
static var MIDI_URLS = new Array("easy.xml", "medium.xml", "hard.xml", "insane.xml");
static var HIGHSOCRE_SUBMIT_URLS = new Array("http://apache.drung.codecube.dk/highscore/submit/?game=3", "http://apache.drung.codecube.dk/highscore/submit/?game=4", "http://apache.drung.codecube.dk/highscore/submit/?game=5", "http://apache.drung.codecube.dk/highscore/submit/?game=6");
static var HIGHSCORE_REGISTER_URLS = new Array("http://apache.drung.codecube.dk/highscore/register/3/", "http://apache.drung.codecube.dk/highscore/register/4/", "http://apache.drung.codecube.dk/highscore/register/5/", "http://apache.drung.codecube.dk/highscore/register/6/");
static var TELLFRIEND_URLS = "http://apache.drung.codecube.dk/highscore/sendmail/";
}
Symbol 20501 MovieClip [__Packages.ui.TracksPainter] Frame 0
class ui.TracksPainter
{
var main, backgroundMusic, backdrops, renderEffects, visibleBackdrop, pixelPerBeat, starEffect, mc, gameHUDScope, gameHUD, draw, tf, verticalLines, playerNoteScoreTextFields, onClosed;
function TracksPainter (main, backgroundMusic) {
this.main = main;
this.backgroundMusic = backgroundMusic;
backdrops = new Array();
renderEffects = new Array();
visibleBackdrop = -1;
pixelPerBeat = (game.NoteBuilder.ticksPerBeat * game.NoteBuilder.tempoFactor) / millisecondsPerPixel;
}
function beatTrace() {
}
function open() {
starEffect.open();
}
function close() {
starEffect.close();
}
function initialize() {
if (!mc) {
mc = _root.createEmptyMovieClip("VisualTrack", _root.getNextHighestDepth());
mc.lineStyle(0, 16777215, 100);
mc.moveTo(0, presentPosition);
mc.lineTo(Stage.width, presentPosition);
mc.endFill();
var _local2 = mc.attachMovie("library.lone.swf", "bg", mc.getNextHighestDepth());
_local2.cacheAsBitmap = true;
_local2.mia.gotoAndStop(1);
gameHUDScope = mc.createEmptyMovieClip("GameHUD", mc.getNextHighestDepth());
gameHUD = new ui.GameHUD(this, gameHUDScope);
starEffect = new ui.MaskTransition(mc, 0);
starEffect.onCloseComplete = new Event(this, starEffectClosed);
draw = mc.createEmptyMovieClip("tracks", mc.getNextHighestDepth());
tf = mc.createTextField("tf", mc.getNextHighestDepth(), 0, 0, 100, 20);
tf.setNewTextFormat(new TextFormat("dri", 11, 16777215, false, false, false, null, null, "center"));
tf.embedFonts = true;
tf.selectable = false;
var _local3 = new effects.CountDown(main, mc);
renderEffects.push(_local3);
verticalLines = new game.Track(main, "", 0);
var _local4 = 0;
for ( ; _local4 < 480 ; _local4++) {
verticalLines.addNote(new game.Note(_local4 * 422.535, 10, (((_local4 % 4) == 0) ? false : true)));
}
playerNoteScoreTextFields = new Array();
var _local5 = 0;
for ( ; _local5 < main.tracks.length ; _local5++) {
var _local6 = main.tracks[_local5];
mc.createTextField("score" + _local5, mc.getNextHighestDepth(), 0, 0, 0, 0);
var _local7 = mc["score" + _local5];
_local7.embedFonts = true;
_local7.selectable = false;
_local7.setNewTextFormat(new TextFormat("dri", 12, 16777215));
_local7.autoSize = true;
_local7.text = "0";
_local7._x = getTrackOffset(_local5) + 4;
_local7._y = presentPosition - 20;
playerNoteScoreTextFields.push(_local7);
}
var _local8 = mc.attachMovie("keys", "keys", mc.getNextHighestDepth());
_local8._y = Stage.height - _local8._height;
_local8._x = 123 - 7;
Key.addListener(this);
}
}
function onKeyDown() {
mc.bg.mia.play();
}
function onKeyUp() {
mc.bg.mia.gotoAndStop(1);
}
function showBackDrop(id) {
mc.bg.mia.hands.gotoAndStop(id + 1);
}
function getTrackOffset(trackNumber) {
var _local3 = (trackNumber * 32) + 123;
return(_local3);
}
function update() {
draw.clear();
var _local2 = backgroundMusic.getPosition();
var _local3 = presentPosition - Math.round(_local2 / millisecondsPerPixel);
var _local4 = 0;
for ( ; _local4 < main.tracks.length ; _local4++) {
var _local5 = main.tracks[_local4];
var _local6 = getTrackOffset(_local4);
_local5.updateNotes(presentPosition * millisecondsPerPixel, (Stage.height - presentPosition) * millisecondsPerPixel);
var _local7 = _local5.getVisibleNotes();
var _local8 = 10066329 /* 0x999999 */;
var _local9 = 0;
for ( ; _local9 < _local7.length ; _local9++) {
var _local10 = _local7[_local9];
if (_local10.player == false) {
_local8 = _local5.color;
_local9 = _local7.length;
}
}
draw.moveTo(_local6, presentPosition);
draw.lineStyle(0, 0, 0);
draw.beginFill(_local8, (_local5.isDown ? 90 : 65));
draw.lineTo(_local6 + 21, presentPosition);
draw.lineTo(_local6 + 21, Stage.height - 3);
draw.lineTo(_local6, Stage.height - 3);
draw.lineTo(_local6, presentPosition);
draw.endFill();
var _local11 = playerNoteScoreTextFields[_local4];
if (_local5.isDown) {
_local11._alpha = 100;
_local11.text = _local5.playerNoteScore.getScore(_local2).toString();
_local11._visible = true;
showBackDrop(_local4);
} else if (_local11._alpha > 1) {
_local11.text = _local5.playerNoteScore.getScore(_local2).toString();
_local11._alpha = _local11._alpha - (_local11._alpha / 3);
if (_local11._alpha < 1) {
_local11._visible = false;
}
}
var _local12 = 0;
for ( ; _local12 < _local7.length ; _local12++) {
var _local13 = _local7[_local12];
var _local14 = ((_local13.length == null) ? (_local2 - _local13.start) : (_local13.length));
var _local15 = ((!_local13.player) ? 16777215 : (_local5.color));
_local15 = ((_local13.length == null) ? 16777215 : (_local15));
var _local16 = (_local13.player ? 5 : 10);
var _local17 = _local16 / 2;
var _local18 = ((_local13.start / millisecondsPerPixel) + _local3) + notesOffset;
var _local19 = (((_local13.start + _local14) / millisecondsPerPixel) + _local3) + notesOffset;
var _local20 = (_local13.isBadNote ? 0 : (_local5.color));
draw.lineStyle(_local16 + 2, _local20, 100);
draw.moveTo(_local6 + 10, _local18 + _local17);
draw.lineTo(_local6 + 10, _local19 - _local17);
if (!_local13.player) {
draw.lineStyle(_local16, 16777215, 100);
draw.moveTo(_local6 + 10, _local18 + _local17);
draw.lineTo(_local6 + 10, _local19 - _local17);
}
}
if (_local5.particles) {
_local5.particles.render(draw, _local6 + 10, presentPosition);
}
}
var _local21 = 0;
for ( ; _local21 < renderEffects.length ; _local21++) {
var _local22 = effects.IRenderableEffect(renderEffects[_local21]);
if (!_local22.render()) {
renderEffects.splice(_local21, 1);
}
}
gameHUD.draw(draw);
verticalLines.updateNotes(notesOffset * millisecondsPerPixel, (Stage.height - presentPosition) * millisecondsPerPixel);
var _local23 = verticalLines.getVisibleNotes();
var _local24 = 0;
for ( ; _local24 < _local23.length ; _local24++) {
var _local25 = _local23[_local24];
var _local26 = ((_local25.start / millisecondsPerPixel) + _local3) + notesOffset;
if (_local25.player) {
draw.lineStyle(1, 16777215, 25);
} else {
draw.lineStyle(1, 16777215, 80);
}
draw.moveTo(123, _local26);
draw.lineTo(431, _local26);
}
draw.lineStyle(3, 16777215, 100);
draw.moveTo(123, presentPosition);
draw.lineTo(431, presentPosition);
draw.endFill();
}
function addEffect(effect) {
renderEffects.push(effect);
}
function starEffectClosed() {
org.flashdevelop.utils.FlashOut.trace("star effect closed", "ui.TracksPainter::starEffectClosed", "C:\\Actionscript\\FluteHero\\classes/ui/TracksPainter.as", 400);
onClosed.fire();
}
function addPerfectNote(track, note) {
var _local5 = 0;
for ( ; _local5 < main.tracks.length ; _local5++) {
if (main.tracks[_local5] == track) {
var _local4 = getTrackOffset(_local5);
break;
}
}
var _local6 = new effects.PerfectNote(note, _local4, draw);
addEffect(_local6);
}
function dispose() {
starEffect.dispose();
mc.removeMovieClip();
}
static var notesOffset = -5;
static var millisecondsPerPixel = 13;
static var presentPosition = 162;
}
Symbol 20502 MovieClip [__Packages.ui.EndScreen] Frame 0
class ui.EndScreen extends XML
{
var mc, starEffect, ignoreWhite, firstChild, registerId, toString, __get__onStartNewGame, __get__onShowHighscore, __get__onClosed;
function EndScreen () {
super();
mc = _root.attachMovie("end", "end", _root.getNextHighestDepth());
mc.score = game.Score.Points;
mc.submitForm._visible = (mc.tellfriendForm._visible = false);
mc.tellfriendConfirm._visible = false;
starEffect = new ui.MaskTransition(mc, 0);
TextField(mc.tellfriendForm.userName).tabIndex = 3;
TextField(mc.tellfriendForm.userEmail).tabIndex = 4;
TextField(mc.tellfriendForm.friendName).tabIndex = 5;
TextField(mc.tellfriendForm.friendEmail).tabIndex = 6;
TextField(mc.submitForm.name).tabIndex = 1;
TextField(mc.submitForm.email).tabIndex = 2;
ignoreWhite = true;
var _local3 = game.Score.Points;
load((game.Level.HIGHSCORE_REGISTER_URLS[game.Level.SELECTED] + _local3) + "/");
org.flashdevelop.utils.FlashOut.trace("Register: " + _local3, "ui.EndScreen::EndScreen", "C:\\Actionscript\\FluteHero\\classes/ui/EndScreen.as", 35);
}
function load(file) {
org.flashdevelop.utils.FlashOut.trace("loading: " + file, "ui.EndScreen::load", "C:\\Actionscript\\FluteHero\\classes/ui/EndScreen.as", 41);
super.load(file);
}
function onLoad(status) {
if (status) {
if (firstChild.nodeName == "success") {
org.flashdevelop.utils.FlashOut.trace("loaded: " + firstChild.toString(), "ui.EndScreen::onLoad", "C:\\Actionscript\\FluteHero\\classes/ui/EndScreen.as", 51);
if (firstChild.attributes.action == "register") {
registerId = _global.parseInt(firstChild.attributes.id);
mc.submitForm._alpha = (mc.tellfriendForm._alpha = 0);
mc.submitForm._visible = (mc.tellfriendForm._visible = true);
mc.submitForm.onEnterFrame = (mc.tellfriendForm.onEnterFrame = function () {
this._alpha = this._alpha + ((100 - this._alpha) / 10);
if (this._alpha > 99) {
this._alpha = 100;
delete this.onEnterFrame;
}
});
mc.submitForm.submit.event = new Event(this, submitHighscore);
mc.submitForm.submit.onRelease = function () {
this.event.fire();
};
mc.tellfriendForm.submit.event = new Event(this, submitTellfriend);
mc.tellfriendForm.submit.onRelease = function () {
this.event.fire();
};
mc.tellfriendConfirm.submit.event = new Event(this, showTellfriend);
mc.tellfriendConfirm.submit.onRelease = function () {
this.event.fire();
};
} else if (firstChild.attributes.action == "submit") {
mc.submitForm.onEnterFrame = function () {
this._alpha = this._alpha - (this._alpha / 3);
if (this._alpha < 1) {
delete this.onEnterFrame;
}
};
} else if (firstChild.attributes.action == "sendmail") {
mc.tellfriendConfirm._alpha = 0;
mc.tellfriendConfirm._visible = true;
mc.tellfriendConfirm.onEnterFrame = function () {
this._alpha = this._alpha + ((100 - this._alpha) / 3);
if (this._alpha > 99) {
delete this.onEnterFrame;
}
};
} else {
org.flashdevelop.utils.FlashOut.trace("loaded ERROR: unknown action " + toString(), "ui.EndScreen::onLoad", "C:\\Actionscript\\FluteHero\\classes/ui/EndScreen.as", 111);
}
} else {
org.flashdevelop.utils.FlashOut.trace("loaded ERROR: " + toString(), "ui.EndScreen::onLoad", "C:\\Actionscript\\FluteHero\\classes/ui/EndScreen.as", 116);
}
} else {
org.flashdevelop.utils.FlashOut.trace("loaded ERROR: " + " error loading xml", "ui.EndScreen::onLoad", "C:\\Actionscript\\FluteHero\\classes/ui/EndScreen.as", 121);
}
}
function submitHighscore() {
delete mc.form.submit.onRelease;
var _local2 = ((((((game.Level.HIGHSOCRE_SUBMIT_URLS[game.Level.SELECTED] + "&score=") + game.Score.Points) + "&name=") + _global.escape(mc.submitForm.name.text)) + "&email=") + _global.escape(mc.submitForm.email.text)) + "";
load(_local2);
mc.submitForm.onEnterFrame = function () {
this._alpha = this._alpha - (this._alpha / 3);
this._y = this._y - 2;
if (this._alpha < 1) {
delete this.onEnterFrame;
}
};
}
function submitTellfriend() {
mc.tellfriendForm.submit.enabled = false;
var _local2 = _global.escape(mc.tellfriendForm.userName.text);
var _local3 = _global.escape(mc.tellfriendForm.userEmail.text);
var _local4 = _global.escape(mc.tellfriendForm.friendName.text);
var _local5 = _global.escape(mc.tellfriendForm.friendEmail.text);
var _local6 = (((game.Level.TELLFRIEND_URLS + registerId) + "/") + game.Score.Points) + "/?";
_local6 = _local6 + ("&name=" + _local2);
_local6 = _local6 + ("&email=" + _local3);
_local6 = _local6 + ("&friendName=" + _local4);
_local6 = _local6 + ("&friendEmail=" + _local5);
load(_local6);
mc.tellfriendForm.onEnterFrame = function () {
this._alpha = this._alpha - (this._alpha / 3);
if (this._alpha < 1) {
delete this.onEnterFrame;
this._visible = false;
}
};
}
function showTellfriend() {
mc.tellfriendForm.submit.enabled = true;
mc.tellfriendForm.friendName.text = "";
mc.tellfriendForm.friendEmail.text = "";
mc.tellfriendForm._visible = true;
mc.tellfriendForm.onEnterFrame = function () {
this._alpha = this._alpha + ((100 - this._alpha) / 3);
if (this._alpha > 99) {
delete this.onEnterFrame;
}
};
mc.tellfriendConfirm.onEnterFrame = function () {
this._alpha = this._alpha - (this._alpha / 3);
if (this._alpha < 1) {
delete this.onEnterFrame;
this._visible = false;
}
};
}
function open() {
starEffect.open();
}
function set onStartNewGame(event) {
mc.start.event = event;
mc.start.onRelease = function () {
this.event.fire();
};
//return(__get__onStartNewGame());
}
function set onShowHighscore(event) {
mc.highscore.event = event;
mc.highscore.onRelease = function () {
this.event.fire();
};
//return(__get__onShowHighscore());
}
function set onClosed(event) {
starEffect.onCloseComplete = event;
//return(__get__onClosed());
}
function close() {
starEffect.close();
}
function dispose() {
starEffect.dispose();
mc.removeMovieClip();
}
}
Symbol 20503 MovieClip [__Packages.org.flashdevelop.utils.FlashConnect] Frame 0
class org.flashdevelop.utils.FlashConnect
{
static var messages, socket, interval, swfUrl;
function FlashConnect () {
}
static function initialize() {
messages = new Array();
socket = new XMLSocket();
socket.onData = function (data) {
org.flashdevelop.utils.FlashConnect.status = 1;
org.flashdevelop.utils.FlashConnect.onReturnData();
};
socket.onConnect = function (success) {
if (success) {
org.flashdevelop.utils.FlashConnect.status = 1;
} else {
org.flashdevelop.utils.FlashConnect.status = -1;
}
org.flashdevelop.utils.FlashConnect.onConnection();
};
interval = _global.setInterval(sendStack, 50);
socket.connect(host, port);
}
static function sendStack() {
if ((messages.length > 0) && (status == 1)) {
var _local2 = new XML();
var _local3 = _local2.createElement("flashconnect");
while (messages.length != 0) {
var _local4 = XMLNode(messages.shift());
_local3.appendChild(_local4);
}
_local2.appendChild(_local3);
socket.send(_local2);
}
}
static function send(message) {
if (messages == null) {
initialize();
}
messages.push(message);
}
static function mtrace(msg, method, path, line) {
if (path.indexOf(":") < 0) {
if (swfUrl == undefined) {
var _local6 = _global.unescape(_level0._url).split("///");
if (_local6[0] == "file:") {
swfUrl = _local6[1];
swfUrl = swfUrl.substr(0, swfUrl.lastIndexOf("/") + 1).split("|").join(":");
} else {
swfUrl = "";
}
}
path = swfUrl + path;
}
var _local7 = (((path + ":") + line) + ":") + msg;
trace(_local7, DEBUG);
}
static function trace(msg, state) {
if (_global.isNaN(state)) {
state = DEBUG;
}
var _local4 = new XMLNode(1, null);
var _local5 = new XMLNode(3, _global.escape(msg));
_local4.attributes.state = state;
_local4.attributes.cmd = "trace";
_local4.nodeName = "message";
_local4.appendChild(_local5);
send(_local4);
}
static var status = 0;
static var host = "localhost";
static var port = 6969;
static var INFO = 0;
static var DEBUG = 1;
static var WARNING = 2;
static var ERROR = 3;
static var FATAL = 4;
}
Symbol 20504 MovieClip [__Packages.Event] Frame 0
class Event
{
var scope, method, param;
function Event (scope, method, param) {
this.scope = scope;
this.method = method;
this.param = param;
}
function fire() {
method.call(scope, param);
}
//ASSetPropFlags(_local1, null, 1);
}
Symbol 20505 MovieClip [__Packages.game.Note] Frame 0
class game.Note
{
var start, length, player, isBadNote, isPlayed;
function Note (start, length, player) {
this.start = start;
this.length = length;
this.player = player;
isBadNote = false;
isPlayed = false;
}
function get end() {
return(start + length);
}
}
Symbol 20506 MovieClip [__Packages.ui.Guide] Frame 0
class ui.Guide
{
var mc, starEffect, __get__onBack, __get__onClosed;
function Guide () {
mc = _root.attachMovie("guide", "guide", _root.getNextHighestDepth());
starEffect = new ui.MaskTransition(mc, 0);
}
function open() {
starEffect.open();
}
function set onBack(event) {
mc.back.event = event;
mc.back.onRelease = function () {
this.event.fire();
};
//return(__get__onBack());
}
function set onClosed(event) {
starEffect.onCloseComplete = event;
//return(__get__onClosed());
}
function close() {
starEffect.close();
}
function dispose() {
starEffect.dispose();
mc.removeMovieClip();
}
}
Symbol 20507 MovieClip [__Packages.Main] Frame 0
#initclip
if (!Main) {
//(_global.Main = function () {
super();
this.ignoreWhite = true;
this.masterVolume = new ui.MasterVolume(_root);
this.backgroundMusic = new sound.BackgroundMusic();
this.backgroundMusic.onBackgroundMusicLoad = new Event(this, this.musicLoadComplete, null);
this.backgroundMusic.onBackgroundMusicComplete = new Event(this, this.musicComplete, null);
this.masterVolume.addListener(this.backgroundMusic);
this.backgroundMusic.loadSound("background.mp3");
var _local3 = new ui.Prelaoder(this.backgroundMusic);
}) extends XML
var _local1 = (_global.Main /* register */).prototype;
(_global.Main /* register */).main = function () {
_root.attachMovie("library.injection.swf", "library.injection.swf", _root.getNextHighestDepth());
var _local2 = new Main();
};
_local1.load = function (file) {
super.load(file);
var _local4 = new ui.Prelaoder(this);
};
_local1.onLoad = function () {
this.onMidiXmlLoaded.fire();
};
_local1.disposeTracks = function () {
var _local2 = 0;
for ( ; _local2 < this.tracks.length ; _local2++) {
Key.removeListener(this.tracks[_local2]);
}
};
_local1.initializeTracks = function () {
game.NoteBuilder.initialize();
this.tracks = new Array();
var _local2 = 0;
for ( ; _local2 < 10 ; _local2++) {
var _local3 = ("notes/key" + (_local2 + 1)) + ".mp3";
var _local4 = 0;
var _local5 = new game.Track(this, _local3, _local4);
_local5.color = game.Track.COLORS[_local2];
var _local6 = 49 + _local2;
if (_local2 > 8) {
_local6 = 39 + _local2;
}
_local5.assignKeyCode(_local6);
this.masterVolume.addListener(_local5);
this.tracks.push(_local5);
}
var _local7 = 0;
for ( ; _local7 < this.firstChild.childNodes.length ; _local7++) {
var _local8 = this.firstChild.childNodes[_local7];
if (_local8.nodeName != "Track") {
game.NoteBuilder.addMeta(_local8);
}
}
var _local9 = 0;
for ( ; _local9 < this.firstChild.lastChild.childNodes.length ; _local9++) {
var _local10 = this.firstChild.lastChild.childNodes[_local9];
game.NoteBuilder.addEvent(_local10, this.tracks);
}
game.Score.Points = 0;
org.flashdevelop.utils.FlashOut.trace("firstNoteStart " + game.NoteBuilder.firstNoteStart, "Main::initializeTracks", "classes/Main.as", 119);
};
_local1.musicLoadComplete = function () {
var _local2 = new ui.Start();
_local2.onStartLevel1 = new Event(this, this.loadMidiXml, {level:game.Level.EASY, startScreen:_local2});
_local2.onStartLevel2 = new Event(this, this.loadMidiXml, {level:game.Level.MEDIUM, startScreen:_local2});
_local2.onStartLevel3 = new Event(this, this.loadMidiXml, {level:game.Level.HARD, startScreen:_local2});
_local2.onStartLevel4 = new Event(this, this.loadMidiXml, {level:game.Level.INSANE, startScreen:_local2});
_local2.onShowHighscore = new Event(this, this.endScreen_showHighscore, _local2);
_local2.onShowGuide = new Event(this, this.startScreen_showGuide, _local2);
_local2.open();
sound.MenuMusic.start();
};
_local1.loadMidiXml = function (args) {
var _local3 = args.startScreen;
game.Level.SELECTED = args.level;
this.load(game.Level.MIDI_URLS[game.Level.SELECTED]);
this.onMidiXmlLoaded = new Event(this, this.startGame);
_local3.onClosed = new Event(_local3, _local3.dispose);
_local3.close();
};
_local1.startGame = function (startScreen) {
this.initializeTracks();
this.tracksPainter = new ui.TracksPainter(this, this.backgroundMusic);
_root.onEnterFrameEvent = new Event(this.tracksPainter, this.tracksPainter.update);
_root.onEnterFrame = function () {
this.onEnterFrameEvent.fire();
};
this.tracksPainter.onClosed = new Event(this, this.endGame);
this.tracksPainter.initialize();
this.tracksPainter.open();
this.backgroundMusic.start();
this.backgroundMusic.setVolume(this.masterVolume.getVolume());
sound.MenuMusic.stop();
};
_local1.musicComplete = function () {
this.tracksPainter.close();
};
_local1.endGame = function () {
this.disposeTracks();
this.tracksPainter.dispose();
var _local2 = new ui.EndScreen();
_local2.onStartNewGame = new Event(this, this.endScreen_startNewGame, _local2);
_local2.onShowHighscore = new Event(this, this.endScreen_showHighscore, _local2);
_local2.open();
sound.MenuMusic.start();
};
_local1.startScreen_showGuide = function (startScreen) {
startScreen.onClosed = new Event(this, this.showGuide, startScreen);
startScreen.close();
};
_local1.endScreen_startNewGame = function (endScreen) {
endScreen.onClosed = new Event(this, this.restartGame, endScreen);
endScreen.close();
};
_local1.endScreen_showHighscore = function (endScreen) {
endScreen.onClosed = new Event(this, this.showHighscore, endScreen);
endScreen.close();
};
_local1.showGuide = function (screen) {
screen.dispose();
var _local3 = new ui.Guide();
_local3.onBack = new Event(this, this.endScreen_startNewGame, _local3);
_local3.open();
};
_local1.showHighscore = function (endScreen) {
endScreen.dispose();
var _local3 = new ui.Highscore();
_local3.onStartNewGame = new Event(this, this.endScreen_startNewGame, _local3);
};
_local1.restartGame = function (endScreen) {
endScreen.dispose();
this.musicLoadComplete();
};
ASSetPropFlags(_local1, null, 1);
}
#endinitclip