sgb*_*sgb 8 javascript flash html5 google-swiffy
关于Google Swiffy(http://swiffy.googlelabs.com/)似乎没有什么支持或讨论.
是否有可能从JS有效地暂停/恢复/操纵swiffyobject?
使用标准的Google输出,我注意到可以在具有一些属性的控制台中找到swiffyobject; 特别是frameRate.例如,这个属性可以被操纵吗?
对于最新的Swiffy版本(Swiffy运行版本5.2 https://www.gstatic.com/swiffy/v5.2/runtime.js),我做到了这一点.
1.如samb的帖子中所述,使用jsbeautifier.org.
2.找到包含.start ()的函数.就我而言......
db(N, function () {
var a = this.Dg;
this.ck(function () {
a.start()
})
});
db(Yj[I], Yj[I].start);
Run Code Online (Sandbox Code Playgroud)
3.使用不同的名称复制此函数,并将start()替换为stop()
myNewFunction(N, function () {
var a = this.Dg;
this.ck(function () {
a.stop()
})
});
myNewFunction(Yj[I], Yj[I].stop);
Run Code Online (Sandbox Code Playgroud)
4.找到包含.start()的函数的声明.在我的情况下db.
function db(a, b) {
return a.start = b
}
Run Code Online (Sandbox Code Playgroud)
5.复制此函数并将其调用与使用stop()创建的新函数相同,并将start替换为stop.在我的情况下myNewFunction.
function myNewFunction(a, b) {
return a.stop = b
}
Run Code Online (Sandbox Code Playgroud)
而已.
现在你可以调用我的anim.stop();
例如
//create anim
var anim = {swiffy code};
var myAnim = new swiffy.Stage(document.getElementById('animContainer'), anim);
myAnim.start();
//some button click
myButton.on('click',function(){
myAnim.stop();
});
Run Code Online (Sandbox Code Playgroud)
小智 5
对不起我的英语我是法国人;)我一直在寻找能够正确处理动画Swiffy的解决方案.由于新版本(5.0)谷歌代码已经改变,我不能再使用网络上发现的小黑客动画动画...为了利弊,我编码强制找到一个解决方案..这对我来说非常简单和干净.. (没有触及源Swiffy!)实际上这篇文章的任何部分:swiffy/javascript
可以使用flashvars Swiffy恢复(在as2和as3中它也可以工作..)
方javascript可以做这样的事情:
function playMovie(){
stage.setFlashVars('myresponse=play');
return false;
}
function stopMovie(){
stage.setFlashVars('myresponse=pause');
return false;
}
Run Code Online (Sandbox Code Playgroud)
和函数enterFrame中闪存的一侧......:
_root.onEnterFrame = function(){
switch(_level0.myresponse){
case 'play':
_root.play();
break;
case 'pause':
_root.stop();
break;
default :
break;
}
_level0.myresponse = undefined;
}
Run Code Online (Sandbox Code Playgroud)
就是这样!为了组织你想要的方法,但是..它的工作原理;)如果你想在以后重用它,必须重新获得未定义的变量;)
取消缩小runtime.js - 可以实现我想要的行为。
第 3312 行(未缩小 - jsbeautifier.org)
M.start = function (arg) {
this.T[Qa]();
if(arg){
this.cb.start(arg)
}else{
this.cb.start()
}
};
Run Code Online (Sandbox Code Playgroud)
3823 行:
M.start = function(arg) {
if(arg){
console.log(arg);
window.clearInterval(window.pauseAnimation)
}else{
window.pauseAnimation = window.setInterval(Ob(this.ne, this), 40 );
if (!this.ie) this.ie = !0, this.ne(), window.pauseAnimation
}
};
Run Code Online (Sandbox Code Playgroud)
然后使用控制台,可以使用以下方法暂停/恢复动画:
stage.start(true) // PAUSE the animation.
stage.start() // RESUME the animation.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6152 次 |
| 最近记录: |