Fichiers
LodeRunner_TotalRecall/lodeRunner.iconClass.js
T
2015-07-02 13:38:33 +08:00

1500 lignes
33 KiB
JavaScript

function mainMenuIconClass( _screenX1, _screenY1, _scale, _mainMenuBitmap)
{
//_scale = _scale*2/3;
var border = 4 * _scale;
var mainMainCanvas, stage;
var menuIcon, menuBG;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _mainMenuBitmap.getBounds().width * _scale;
var bitmapY = _mainMenuBitmap.getBounds().height * _scale;
var self = this;
var enabled = 0;
init();
function init()
{
createCanvas();
createMenuIcon();
}
this.enable = function ()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
menuIcon.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
menuIcon.set({alpha:0})
} else {
menuIcon.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = menuIcon.on("mouseover", mouseOver);
mouseOutHandler = menuIcon.on("mouseout", mouseOut);
mouseClickHandler = menuIcon.on("click", mouseClick);
}
function disableMouseHandler()
{
menuIcon.removeEventListener("mouseover", mouseOverHandler);
menuIcon.removeEventListener("mouseout", mouseOutHandler);
menuIcon.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
mainMainCanvas = document.createElement('canvas');
mainMainCanvas.id = "main_menu";
mainMainCanvas.width = bitmapX+border*2;
mainMainCanvas.height = bitmapY+border*2;
//var left = (_screenX1 - mainMainCanvas.width - bitmapX/3),
// top = (_screenY1 - mainMainCanvas.height - bitmapY/4);
var left = (_screenX1 - mainMainCanvas.width - screenBorder),
top = bitmapY/2|0;
mainMainCanvas.style.left = left + "px";
mainMainCanvas.style.top = top + "px";
mainMainCanvas.style.position = "absolute";
document.body.appendChild(mainMainCanvas);
}
function createMenuIcon()
{
stage = new createjs.Stage(mainMainCanvas);
menuIcon = new createjs.Container();
menuBG = new createjs.Shape();
menuBG.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
menuBG.alpha = 0;
menuIcon.addChild(menuBG);
_mainMenuBitmap.setTransform(border, border, _scale, _scale);
menuIcon.addChild(_mainMenuBitmap);
menuIcon.set({alpha:0})
stage.addChild(menuIcon);
stage.update();
}
function mouseOver()
{
if(gameState == GAME_PAUSE || //// demoDataLoading ||
(gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
stage.cursor = "pointer";
menuBG.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
menuBG.alpha = 0;
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE || //// demoDataLoading ||
(gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
saveState();
////mainMenu(restoreState);
gameMenu(restoreState);
mouseOut();
}
function saveState()
{
saveStateObj = saveKeyHandler(noKeyDown);
gamePause();
if(playMode == PLAY_EDIT) {
if(editLevelModified()) saveTestState();
stopEditTicker();
} else {
stopPlayTicker();
stopAllSpriteObj();
}
self.disable();
}
function restoreState()
{
restoreKeyHandler(saveStateObj);
if(playMode == PLAY_EDIT) {
startEditTicker();
} else {
startAllSpriteObj();
startPlayTicker();
}
gameResume();
self.enable();
}
}
function selectIconClass( _screenX1, _screenY1, _scale, _bitmap)
{
//_scale = _scale*2/3;
var border = 4 * _scale;
var selectCanvas, stage;
var selectIcon, selectBG;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _bitmap.getBounds().width * _scale;
var bitmapY = _bitmap.getBounds().height * _scale;
var self = this;
var enabled = 0;
init();
function init()
{
createCanvas();
createSelectIcon();
}
this.enable = function ()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
document.body.appendChild(selectCanvas);
selectIcon.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
selectIcon.set({alpha:0})
} else {
selectIcon.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = selectIcon.on("mouseover", mouseOver);
mouseOutHandler = selectIcon.on("mouseout", mouseOut);
mouseClickHandler = selectIcon.on("click", mouseClick);
}
function disableMouseHandler()
{
selectIcon.removeEventListener("mouseover", mouseOverHandler);
selectIcon.removeEventListener("mouseout", mouseOutHandler);
selectIcon.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
selectCanvas = document.createElement('canvas');
selectCanvas.id = "select_menu";
selectCanvas.width = bitmapX+border*2;
selectCanvas.height = bitmapY+border*2;
//var left = (_screenX1 - selectCanvas.width - bitmapX/3),
// top = bitmapY/4|0;
//top = (_screenY1 - selectCanvas.height - bitmapY/4);
var left = (_screenX1 - selectCanvas.width - screenBorder),
top = (selectCanvas.height + bitmapY)|0;
selectCanvas.style.left = left + "px";
selectCanvas.style.top = top + "px";
selectCanvas.style.position = "absolute";
document.body.appendChild(selectCanvas);
}
function createSelectIcon()
{
stage = new createjs.Stage(selectCanvas);
selectIcon = new createjs.Container();
selectBG = new createjs.Shape();
selectBG.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
selectBG.alpha = 0;
selectIcon.addChild(selectBG);
_bitmap.setTransform(border, border, _scale, _scale);
selectIcon.addChild(_bitmap);
selectIcon.set({alpha:0})
stage.addChild(selectIcon);
stage.update();
}
function mouseOver()
{
if(gameState == GAME_PAUSE ||
(gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
stage.cursor = "pointer";
selectBG.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
selectBG.alpha = 0;
stage.update();
}
function startSelectMenu()
{
saveState();
activeSelectMenu(activeSelectPlay, restoreState);
mouseOut();
}
function mouseClick()
{
if(gameState == GAME_PAUSE ||
(gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
if(playMode == PLAY_EDIT && editLevelModified()) {
if(editLevelModified())saveTestState();
editConfirmAbortState(startSelectMenu);
} else {
startSelectMenu();
}
}
function activeSelectPlay(level)
{
//debug("time play:" + level);
//if(callbackFun != null) callbackFun();
soundStop(soundDig);
soundStop(soundFall);
switch(playMode) {
case PLAY_EDIT:
editSelectLevel(level);
break;
case PLAY_DEMO:
curLevel = level;
setDemoInfo();
startGame();
break;
case PLAY_MODERN:
curLevel = level;
//playMode = PLAY_MODERN;
//document.onkeydown = handleKeyDown;
//setLastPlayMode();
setModernInfo();
startGame();
break;
default:
debug("activeSelectPlay design error ! playMode = " + playMode);
break;
}
}
function saveState()
{
saveStateObj = saveKeyHandler(noKeyDown);
gamePause();
if(playMode == PLAY_EDIT) {
stopEditTicker();
} else {
stopPlayTicker();
stopAllSpriteObj();
}
self.disable();
}
function restoreState()
{
restoreKeyHandler(saveStateObj);
if(playMode == PLAY_EDIT) {
startEditTicker();
} else {
startAllSpriteObj();
startPlayTicker();
}
gameResume();
self.enable();
}
}
//==============================================================
//
// Champ icon will open a new window contains world high score
// while back to lode runner main window (onfocus) will auto
// close "lode runner world high score" window
//
// 10/08/2014
//==============================================================
function demoIconClass( _screenX1, _screenY1, _scale, _bitmap)
{
//_scale = _scale*2/3;
var border = 4 * _scale;
var canvas, stage;
var iconObj, bgObj;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _bitmap.getBounds().width * _scale;
var bitmapY = _bitmap.getBounds().height * _scale;
var self = this;
var enabled = 0;
init();
function init()
{
createCanvas();
createIconObj();
}
this.enable = function ()
{
if(!curDemoLevelIsVaild()) {
self.disable(1);
return;
}
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
iconObj.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
iconObj.set({alpha:0});
} else {
iconObj.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = iconObj.on("mouseover", mouseOver);
mouseOutHandler = iconObj.on("mouseout", mouseOut);
mouseClickHandler = iconObj.on("click", mouseClick);
}
function disableMouseHandler()
{
iconObj.removeEventListener("mouseover", mouseOverHandler);
iconObj.removeEventListener("mouseout", mouseOutHandler);
iconObj.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
canvas = document.createElement('canvas');
canvas.id = "theme_menu";
canvas.width = bitmapX+border*2;
canvas.height = bitmapY+border*2;
var left = (_screenX1 - canvas.width - screenBorder),
top = (canvas.height*2 + bitmapY*3/2)|0;
canvas.style.left = left + "px";
canvas.style.top = top + "px";
canvas.style.position = "absolute";
document.body.appendChild(canvas);
}
function createIconObj()
{
stage = new createjs.Stage(canvas);
iconObj = new createjs.Container();
//create background shape
bgObj = new createjs.Shape();
bgObj.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
bgObj.alpha = 0;
//change bitmap size
_bitmap.setTransform(border, border, _scale, _scale);
iconObj.addChild(bgObj);
iconObj.addChild(_bitmap);
iconObj.set({alpha:0})
stage.addChild(iconObj);
stage.update();
}
function mouseOver()
{
if(gameState == GAME_PAUSE ||
(gameState != GAME_START && playMode != PLAY_DEMO && playMode != PLAY_DEMO_ONCE && playMode != PLAY_EDIT))
return;
stage.cursor = "pointer";
bgObj.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
bgObj.alpha = 0;
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE || playMode == PLAY_DEMO_ONCE ||
(gameState != GAME_START && playMode != PLAY_DEMO && playMode != PLAY_EDIT))
return;
mouseOut();
demoSoundOff = 1; //always sound off when start demo
playMode = PLAY_DEMO_ONCE;
anyKeyStopDemo();
////setDemoInfo(); //save curLevel to demo info
startGame(1);
setTimeout(function() {showTipsText("HIT ANY KEY TO STOP DEMO", 3500);}, 50);
}
function saveState()
{
setThemeMode(curTheme);
if(playMode == PLAY_EDIT) {
if(editLevelModified()) saveTestState();
stopEditTicker();
} else {
stopPlayTicker();
stopAllSpriteObj();
}
}
}
function soundIconClass( _screenX1, _screenY1, _scale, _soundOnBitmap, _soundOffBitmap)
{
//_scale = _scale*2/3;
var border = 4 * _scale;
var canvas, stage;
var iconObj, bgObj;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _soundOnBitmap.getBounds().width * _scale;
var bitmapY = _soundOnBitmap.getBounds().height * _scale;
var self = this;
var enabled = 0;
function init()
{
createCanvas();
createIconObj();
}
this.enable = function ()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
iconObj.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
iconObj.set({alpha:0});
} else {
iconObj.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = iconObj.on("mouseover", mouseOver);
mouseOutHandler = iconObj.on("mouseout", mouseOut);
mouseClickHandler = iconObj.on("click", mouseClick);
}
function disableMouseHandler()
{
iconObj.removeEventListener("mouseover", mouseOverHandler);
iconObj.removeEventListener("mouseout", mouseOutHandler);
iconObj.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
canvas = document.createElement('canvas');
canvas.id = "theme_menu";
canvas.width = bitmapX+border*2;
canvas.height = bitmapY+border*2;
var left = (_screenX1 - canvas.width - screenBorder),
//top = (_screenY1 - bitmapY*7)|0;
top = (_screenY1 - bitmapY*8.6)|0;
canvas.style.left = left + "px";
canvas.style.top = top + "px";
canvas.style.position = "absolute";
document.body.appendChild(canvas);
}
this.updateSoundImage = function()
{
iconObj.removeAllChildren();
iconObj.addChild(bgObj);
if(playMode == PLAY_DEMO || playMode == PLAY_DEMO_ONCE) {
if(demoSoundOff) iconObj.addChild(_soundOffBitmap);
else iconObj.addChild(_soundOnBitmap);
} else {
if(soundOff) iconObj.addChild(_soundOffBitmap);
else iconObj.addChild(_soundOnBitmap);
}
stage.update();
}
function createIconObj()
{
stage = new createjs.Stage(canvas);
iconObj = new createjs.Container();
//create background shape
bgObj = new createjs.Shape();
bgObj.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
bgObj.alpha = 0;
//change bitmap size
_soundOnBitmap.setTransform(border, border, _scale, _scale); //sound on bitmap
_soundOffBitmap.setTransform(border, border, _scale, _scale); //sound iff bitmap
iconObj.set({alpha:0})
stage.addChild(iconObj);
self.updateSoundImage();
stage.update();
}
function mouseOver()
{
if( gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING) ) return;
stage.cursor = "pointer";
bgObj.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
bgObj.alpha = 0;
stage.update();
}
function mouseClick()
{
if( gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING) ) return;
if(playMode == PLAY_DEMO || playMode == PLAY_DEMO_ONCE) {
if((demoSoundOff ^= 1)) { soundStop(soundDig); soundStop(soundFall); }
} else {
if((soundOff ^= 1)) { soundStop(soundDig); soundStop(soundFall); }
}
self.updateSoundImage();
mouseOut();
}
init();
}
function repeatActionIconClass( _screenX1, _screenY1, _scale, _repeatActionOnBitmap, _repeatActionOffBitmap)
{
var border = 4 * _scale;
var canvas, stage;
var iconObj, bgObj;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _repeatActionOnBitmap.getBounds().width * _scale;
var bitmapY = _repeatActionOnBitmap.getBounds().height * _scale;
var self = this;
var enabled = 0;
function init()
{
createCanvas();
createIconObj();
}
this.enable = function ()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
iconObj.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
iconObj.set({alpha:0});
} else {
iconObj.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = iconObj.on("mouseover", mouseOver);
mouseOutHandler = iconObj.on("mouseout", mouseOut);
mouseClickHandler = iconObj.on("click", mouseClick);
}
function disableMouseHandler()
{
iconObj.removeEventListener("mouseover", mouseOverHandler);
iconObj.removeEventListener("mouseout", mouseOutHandler);
iconObj.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
canvas = document.createElement('canvas');
canvas.id = "theme_menu";
canvas.width = bitmapX+border*2;
canvas.height = bitmapY+border*2;
var left = (_screenX1 - canvas.width - screenBorder),
//top = (_screenY1 - bitmapY*4.8)|0;
top = (_screenY1 - bitmapY*6.4)|0;
canvas.style.left = left + "px";
canvas.style.top = top + "px";
canvas.style.position = "absolute";
document.body.appendChild(canvas);
}
this.updateRepeatActionImage = function()
{
iconObj.removeAllChildren();
iconObj.addChild(bgObj);
if(repeatAction) iconObj.addChild(_repeatActionOnBitmap);
else iconObj.addChild(_repeatActionOffBitmap);
stage.update();
}
function createIconObj()
{
stage = new createjs.Stage(canvas);
iconObj = new createjs.Container();
//create background shape
bgObj = new createjs.Shape();
bgObj.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
bgObj.alpha = 0;
//change bitmap size
_repeatActionOnBitmap.setTransform(border, border, _scale, _scale); //sound on bitmap
_repeatActionOffBitmap.setTransform(border, border, _scale, _scale); //sound iff bitmap
iconObj.set({alpha:0})
stage.addChild(iconObj);
self.updateRepeatActionImage();
stage.update();
}
function mouseOver()
{
if(gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING) ||
playMode == PLAY_DEMO || playMode == PLAY_DEMO_ONCE || playMode == PLAY_EDIT) return;
stage.cursor = "pointer";
bgObj.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
bgObj.alpha = 0;
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING) ||
playMode == PLAY_DEMO || playMode == PLAY_DEMO_ONCE || playMode == PLAY_EDIT) return;
toggleRepeatAction();
self.updateRepeatActionImage();
mouseOut();
}
init();
}
function infoIconClass( _screenX1, _screenY1, _scale, _bitmap)
{
var border = 4 * _scale;
var canvas, stage;
var iconObj, bgObj;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _bitmap.getBounds().width * _scale;
var bitmapY = _bitmap.getBounds().height * _scale;
var self = this;
var enabled = 0;
function init()
{
createCanvas();
createIconObj();
}
this.enable = function ()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
iconObj.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
iconObj.set({alpha:0});
} else {
iconObj.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = iconObj.on("mouseover", mouseOver);
mouseOutHandler = iconObj.on("mouseout", mouseOut);
mouseClickHandler = iconObj.on("click", mouseClick);
}
function disableMouseHandler()
{
iconObj.removeEventListener("mouseover", mouseOverHandler);
iconObj.removeEventListener("mouseout", mouseOutHandler);
iconObj.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
canvas = document.createElement('canvas');
canvas.id = "info_menu";
canvas.width = bitmapX+border*2;
canvas.height = bitmapY+border*2;
var left = (_screenX1 - canvas.width - screenBorder),
//top = (_screenY1 - bitmapY*3.2);
top = (_screenY1 - bitmapY*4.8);
canvas.style.left = left + "px";
canvas.style.top = top + "px";
canvas.style.position = "absolute";
document.body.appendChild(canvas);
}
function createIconObj()
{
stage = new createjs.Stage(canvas);
iconObj = new createjs.Container();
//create background shape
bgObj = new createjs.Shape();
bgObj.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
bgObj.alpha = 0;
//change bitmap size
_bitmap.setTransform(border, border, _scale, _scale);
iconObj.addChild(bgObj);
iconObj.addChild(_bitmap);
iconObj.set({alpha:0})
stage.addChild(iconObj);
stage.update();
}
function mouseOver()
{
if(gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
stage.cursor = "pointer";
bgObj.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
bgObj.alpha = 0;
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
saveState();
infoMenu(restoreState, null);
mouseOut();
}
function saveState()
{
saveStateObj = saveKeyHandler(noKeyDown);
gamePause();
if(playMode == PLAY_EDIT) {
if(editLevelModified()) saveTestState();
stopEditTicker();
} else {
stopPlayTicker();
stopAllSpriteObj();
}
self.disable();
}
function restoreState()
{
restoreKeyHandler(saveStateObj);
if(playMode == PLAY_EDIT) {
startEditTicker();
} else {
startAllSpriteObj();
startPlayTicker();
}
gameResume();
self.enable();
}
init();
}
function helpIconClass( _screenX1, _screenY1, _scale, _bitmap)
{
//_scale = _scale*2/3;
var border = 4 * _scale;
var canvas, stage;
var iconObj, bgObj;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _bitmap.getBounds().width * _scale;
var bitmapY = _bitmap.getBounds().height * _scale;
var self = this;
var enabled = 0;
function init()
{
createCanvas();
createIconObj();
}
this.enable = function ()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
iconObj.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
iconObj.set({alpha:0});
} else {
iconObj.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = iconObj.on("mouseover", mouseOver);
mouseOutHandler = iconObj.on("mouseout", mouseOut);
mouseClickHandler = iconObj.on("click", mouseClick);
}
function disableMouseHandler()
{
iconObj.removeEventListener("mouseover", mouseOverHandler);
iconObj.removeEventListener("mouseout", mouseOutHandler);
iconObj.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
canvas = document.createElement('canvas');
canvas.id = "help_menu";
canvas.width = bitmapX+border*2;
canvas.height = bitmapY+border*2;
var left = (_screenX1 - canvas.width - screenBorder),
//top = (_screenY1 - bitmapY*1.6);
top = (_screenY1 - bitmapY*3.2);
canvas.style.left = left + "px";
canvas.style.top = top + "px";
canvas.style.position = "absolute";
document.body.appendChild(canvas);
}
function createIconObj()
{
stage = new createjs.Stage(canvas);
iconObj = new createjs.Container();
//create background shape
bgObj = new createjs.Shape();
bgObj.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
bgObj.alpha = 0;
//change bitmap size
_bitmap.setTransform(border, border, _scale, _scale);
iconObj.addChild(bgObj);
iconObj.addChild(_bitmap);
iconObj.set({alpha:0})
stage.addChild(iconObj);
stage.update();
}
function mouseOver()
{
if(gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
stage.cursor = "pointer";
bgObj.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
bgObj.alpha = 0;
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE || (gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return;
saveState();
helpMenu(restoreState);
mouseOut();
}
function saveState()
{
saveStateObj = saveKeyHandler(noKeyDown);
gamePause();
if(playMode == PLAY_EDIT) {
if(editLevelModified()) saveTestState();
stopEditTicker();
} else {
stopPlayTicker();
stopAllSpriteObj();
}
self.disable();
}
function restoreState()
{
restoreKeyHandler(saveStateObj);
if(playMode == PLAY_EDIT) {
startEditTicker();
} else {
startAllSpriteObj();
startPlayTicker();
}
gameResume();
self.enable();
}
init();
}
function themeIconClass( _screenX1, _screenY1, _scale, _themeBitmapApple2, _themeBitmapC64)
{
//_scale = _scale*2/3;
var border = 4 * _scale;
var themeCanvas, stage;
var themeIcon, themeBG;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _themeBitmapApple2.getBounds().width * _scale;
var bitmapY = _themeBitmapApple2.getBounds().height * _scale;
var self = this;
var enabled = 0;
init();
function init()
{
createCanvas();
createThemeIcon();
}
this.enable = function ()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
themeIcon.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
this.disable = function (hidden)
{
disableMouseHandler();
if(hidden) {
themeIcon.set({alpha:0});
} else {
themeIcon.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function enableMouseHandler()
{
mouseOverHandler = themeIcon.on("mouseover", mouseOver);
mouseOutHandler = themeIcon.on("mouseout", mouseOut);
mouseClickHandler = themeIcon.on("click", mouseClick);
}
function disableMouseHandler()
{
themeIcon.removeEventListener("mouseover", mouseOverHandler);
themeIcon.removeEventListener("mouseout", mouseOutHandler);
themeIcon.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
themeCanvas = document.createElement('canvas');
themeCanvas.id = "theme_menu";
themeCanvas.width = bitmapX+border*2;
themeCanvas.height = bitmapY+border*2;
var left = (_screenX1 - themeCanvas.width - screenBorder),
//top = (_screenY1 - themeCanvas.height)/2|0;
top = (_screenY1 - bitmapY*1.5);
themeCanvas.style.left = left + "px";
themeCanvas.style.top = top + "px";
themeCanvas.style.position = "absolute";
document.body.appendChild(themeCanvas);
}
function createThemeIcon()
{
stage = new createjs.Stage(themeCanvas);
themeIcon = new createjs.Container();
//create background shape
themeBG = new createjs.Shape();
themeBG.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
themeBG.alpha = 0;
//change bitmap size
_themeBitmapApple2.setTransform(border, border, _scale, _scale);
_themeBitmapC64.setTransform(border, border, _scale, _scale);
themeIcon.set({alpha:0})
stage.addChild(themeIcon);
updateThemeImage(0);
//stage.update();
}
function updateThemeImage(showTips)
{
themeIcon.removeAllChildren();
themeIcon.addChild(themeBG);
if(curTheme == THEME_APPLE2) {
themeIcon.addChild(_themeBitmapApple2);
//if(showTips) setTimeout(function() {showTipsText("APPLE-II THEME MODE", 2500);}, 50);
} else {
themeIcon.addChild(_themeBitmapC64);
//if(showTips) setTimeout(function() {showTipsText("C64 THEME MODE", 2500);}, 50);
}
stage.update();
}
function mouseOver()
{
if(gameState == GAME_PAUSE || (gameState == GAME_WAITING && playMode != PLAY_EDIT) ||
(gameState != GAME_START && playMode != PLAY_DEMO && playMode != PLAY_DEMO_ONCE && playMode != PLAY_EDIT))
return;
stage.cursor = "pointer";
themeBG.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
themeBG.alpha = 0;
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE || (gameState == GAME_WAITING && playMode != PLAY_EDIT) ||
(gameState != GAME_START && playMode != PLAY_DEMO && playMode != PLAY_DEMO_ONCE && playMode != PLAY_EDIT))
return;
curTheme = (curTheme == THEME_APPLE2?THEME_C64:THEME_APPLE2);
saveState();
soundStop(soundDig);
soundStop(soundFall);
themeDataReset();
updateThemeImage(1);
mouseOut();
if(playMode == PLAY_EDIT) {
startEditMode();
} else {
startGame(1);
}
}
function saveState()
{
setThemeMode(curTheme);
if(playMode == PLAY_EDIT) {
if(editLevelModified()) saveTestState();
stopEditTicker();
} else {
stopPlayTicker();
stopAllSpriteObj();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
/*
function iconBase(_screenX, _screenY, _scale, _bitmap1, _bitmap2, _posY)
{
var border = 4 * _scale;
var canvas, stage;
var iconObj, bgObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _bitmap1.getBounds().width * _scale;
var bitmapY = _bitmap1.getBounds().height * _scale;
var self = this;
var enabled = 0;
function enableMouseHandler()
{
mouseOverHandler = iconObj.on("mouseover", mouseOver);
mouseOutHandler = iconObj.on("mouseout", mouseOut);
mouseClickHandler = iconObj.on("click", mouseClick);
}
function disableMouseHandler()
{
iconObj.removeEventListener("mouseover", mouseOverHandler);
iconObj.removeEventListener("mouseout", mouseOutHandler);
iconObj.removeEventListener("click", mouseClickHandler);
stage.cursor = "default";
stage.update();
}
function createCanvas()
{
canvas = document.createElement('canvas');
canvas.id = "theme_menu";
canvas.width = bitmapX+border*2;
canvas.height = bitmapY+border*2;
var left = (_screenX1 - canvas.width),
top = (_screenY1 - _posY)|0;
canvas.style.left = left + "px";
canvas.style.top = top + "px";
canvas.style.position = "absolute";
document.body.appendChild(canvas);
}
function createIcon()
{
stage = new createjs.Stage(canvas);
iconObj = new createjs.Container();
//create background shape
bgObj = new createjs.Shape();
bgObj.graphics.beginFill("#fefef1")
.drawRect(0, 0, bitmapX+border*2, bitmapY+border*2).endFill();
bgObj.alpha = 0;
//change bitmap size
_bitmap1.setTransform(border, border, _scale, _scale);
if(_bitmap2) _bitmap2.setTransform(border, border, _scale, _scale);
iconObj.set({alpha:0})
stage.addChild(iconObj);
updateImage();
//stage.update();
}
function updateImage()
{
iconObj.addChild(bgObj);
iconObj.addChild(_bitmap1);
stage.update();
}
function invalidState()
{
if(gameState == GAME_PAUSE ||
(gameState != GAME_START && gameState != GAME_RUNNING && playMode != PLAY_EDIT)) return 1;
return 0;
}
function mouseOver()
{
if(invalidState()) return;
stage.cursor = "pointer";
bgObj.alpha = 1;
stage.update();
}
function mouseOut()
{
stage.cursor = "default";
bgObj.alpha = 0;
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE ||
(gameState != GAME_START && playMode != PLAY_DEMO && playMode != PLAY_DEMO_ONCE && playMode != PLAY_EDIT))
return;
curTheme = (curTheme == THEME_APPLE2?THEME_C64:THEME_APPLE2);
saveState();
soundStop(soundDig);
soundStop(soundFall);
themeDataReset();
updateThemeImage();
mouseOut();
if(playMode == PLAY_EDIT) {
startEditMode();
} else {
startGame(1);
}
}
}
iconBase.prototype.init = function()
{
this.createCanvas();
this.createIcon();
}
iconBase.prototype.enable = function()
{
if(enabled) return;
enabled = 1;
disableMouseHandler();
enableMouseHandler();
iconObj.set({alpha:1})
stage.enableMouseOver(60);
stage.update();
}
iconBase.prototype.disable = function(hidden)
{
disableMouseHandler();
if(hidden) {
iconObj.set({alpha:0});
} else {
iconObj.set({alpha:1})
}
stage.update();
enabled = 0;
stage.enableMouseOver(0);
}
function themeIconClass( _screenX1, _screenY1, _scale, _themeBitmapApple2, _themeBitmapC64)
{
//_scale = _scale*2/3;
var border = 4 * _scale;
var themeCanvas, stage;
var themeIcon, themeBG;
var saveStateObj;
var mouseOverHandler = null, mouseOutHandler = null, mouseClickHandler = null;
var bitmapX = _themeBitmapApple2.getBounds().width * _scale;
var bitmapY = _themeBitmapApple2.getBounds().height * _scale;
var self = this;
var enabled = 0;
init();
function updateThemeImage()
{
themeIcon.removeAllChildren();
themeIcon.addChild(themeBG);
if(curTheme == THEME_APPLE2) {
themeIcon.addChild(_themeBitmapApple2);
} else {
themeIcon.addChild(_themeBitmapC64);
}
stage.update();
}
function mouseClick()
{
if(gameState == GAME_PAUSE ||
(gameState != GAME_START && playMode != PLAY_DEMO && playMode != PLAY_DEMO_ONCE && playMode != PLAY_EDIT))
return;
curTheme = (curTheme == THEME_APPLE2?THEME_C64:THEME_APPLE2);
saveState();
soundStop(soundDig);
soundStop(soundFall);
themeDataReset();
updateThemeImage();
mouseOut();
if(playMode == PLAY_EDIT) {
startEditMode();
} else {
startGame(1);
}
}
function saveState()
{
setThemeMode(curTheme);
if(playMode == PLAY_EDIT) {
if(editLevelModified()) saveTestState();
stopEditTicker();
} else {
stopPlayTicker();
stopAllSpriteObj();
}
}
}
*/