游戏完成时触发 Javascript 事件
Fire Javascript event when game is completed
我的问题:
我有一个 Flash 游戏。它有 15 个问题。每个回答正确的问题都会给您一枚硬币。游戏中有更新金币和经验的功能:function updatePointsAndCoins_V2()
。
http://www.squlaworld.com/demo-english
- 我正在处理收到第 15 个硬币时显示的叠加层。
我在包含 CSS、HTML 和 JS 文件的文件夹中创建了一个叠加层。有没有办法在 function updatePointsAndCoins_V2()
发出 value = 15
时加载这些文件?
- 另一种可能是:
我已经在游戏中有一个默认的结束画面。游戏完成后,它会启动一个函数:
function suggestedQuiz()
。
有没有办法在启动该功能时加载覆盖文件?
这是我正在使用的叠加脚本:
(function(showOverlay) {
var triggerBttn = document.getElementById( 'trigger-overlay' ),
overlay = document.querySelector( 'div.overlay' ),
closeBttn = overlay.querySelector( 'button.overlay-close' );
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],
support = { transitions : Modernizr.csstransitions };
function toggleOverlay() {
if( classie.has( overlay, 'open' ) ) {
var wrapperposition = document.getElementById('wrapperposition');
wrapperposition.style.display = 'none';
classie.remove( overlay, 'open' );
classie.add( overlay, 'close' );
var onEndTransitionFn = function( ev ) {
if( support.transitions ) {
if( ev.propertyName !== 'visibility' ) return;
this.removeEventListener( transEndEventName, onEndTransitionFn );
}
classie.remove( overlay, 'close' );
};
if( support.transitions ) {
overlay.addEventListener( transEndEventName, onEndTransitionFn );
}
else {
onEndTransitionFn();
}
}
else if( !classie.has( overlay, 'close' ) ) {
classie.add( overlay, 'open' );
var wrapperposition = document.getElementById('wrapperposition');
wrapperposition.style.display = 'block';
}
}
triggerBttn.addEventListener( 'click', toggleOverlay );
closeBttn.addEventListener( 'click', toggleOverlay );
})();
在您的页面中,您需要定义 Flash 游戏尝试调用的方法。在这种情况下,它是 updatePointsAndCoins_V2 方法。
因此,您可以在您的页面中添加如下内容:
<!-- language: lang-js --> // ignore this line, it's for Whosebug syntax highlighting
<script>
function updatePointsAndCoins_V2 (coins) {
console.log(coins); //look in the console to see what coins is
// With nothing to go on I'll assume it passes them as a number in the first parameter of the function
if (coins >= 15) {
showOverlay(); // You will need to define this function and the logic which shows your overlay.
}
}
</script>
我的问题:
我有一个 Flash 游戏。它有 15 个问题。每个回答正确的问题都会给您一枚硬币。游戏中有更新金币和经验的功能:function updatePointsAndCoins_V2()
。
http://www.squlaworld.com/demo-english
- 我正在处理收到第 15 个硬币时显示的叠加层。
我在包含 CSS、HTML 和 JS 文件的文件夹中创建了一个叠加层。有没有办法在 function updatePointsAndCoins_V2()
发出 value = 15
时加载这些文件?
- 另一种可能是:
我已经在游戏中有一个默认的结束画面。游戏完成后,它会启动一个函数:
function suggestedQuiz()
。 有没有办法在启动该功能时加载覆盖文件?
这是我正在使用的叠加脚本:
(function(showOverlay) {
var triggerBttn = document.getElementById( 'trigger-overlay' ),
overlay = document.querySelector( 'div.overlay' ),
closeBttn = overlay.querySelector( 'button.overlay-close' );
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],
support = { transitions : Modernizr.csstransitions };
function toggleOverlay() {
if( classie.has( overlay, 'open' ) ) {
var wrapperposition = document.getElementById('wrapperposition');
wrapperposition.style.display = 'none';
classie.remove( overlay, 'open' );
classie.add( overlay, 'close' );
var onEndTransitionFn = function( ev ) {
if( support.transitions ) {
if( ev.propertyName !== 'visibility' ) return;
this.removeEventListener( transEndEventName, onEndTransitionFn );
}
classie.remove( overlay, 'close' );
};
if( support.transitions ) {
overlay.addEventListener( transEndEventName, onEndTransitionFn );
}
else {
onEndTransitionFn();
}
}
else if( !classie.has( overlay, 'close' ) ) {
classie.add( overlay, 'open' );
var wrapperposition = document.getElementById('wrapperposition');
wrapperposition.style.display = 'block';
}
}
triggerBttn.addEventListener( 'click', toggleOverlay );
closeBttn.addEventListener( 'click', toggleOverlay );
})();
在您的页面中,您需要定义 Flash 游戏尝试调用的方法。在这种情况下,它是 updatePointsAndCoins_V2 方法。
因此,您可以在您的页面中添加如下内容:
<!-- language: lang-js --> // ignore this line, it's for Whosebug syntax highlighting
<script>
function updatePointsAndCoins_V2 (coins) {
console.log(coins); //look in the console to see what coins is
// With nothing to go on I'll assume it passes them as a number in the first parameter of the function
if (coins >= 15) {
showOverlay(); // You will need to define this function and the logic which shows your overlay.
}
}
</script>