2011-08-02 87 views
8

對於Google Swiffy(http://swiffy.googlelabs.com/)似乎沒有多少支持或討論。是否有可能從JS中暫停/恢復/操作swiffyobject?

是否有可能從JS有效地暫停/恢復/操作swiffyobject?

使用標準的Google輸出,我注意到swiffyobject可以在控制檯中找到幾個屬性;特別是frameRate。例如,這個屬性可以被操縱嗎?

回答

1

通過unminified的runtime.js - 有可能實現我想要的行爲。

線3312(unminified - jsbeautifier.org)

M.start = function (arg) { 
this.T[Qa](); 
if(arg){ 
this.cb.start(arg) 
}else{ 
this.cb.start() 
} 
}; 

和在線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 

    }  

}; 

然後,使用控制檯,可以暫停/恢復使用動畫:

stage.start(true) // PAUSE the animation. 
stage.start() // RESUME the animation. 
5

對不起,我是法國人;) 我一直在找解決方案能夠正確處理Swiffy動畫。 由於新版本(5.0)的谷歌代碼已經改變,我不能再在網上發現小黑客maniupler動畫... 對於弊,我編碼的力量找到一個解決方案..這對我來說很簡單,乾淨..(不接觸源Swiffy不在!) 其實這篇文章的任何部分:swiffy/javascript

能Flash變量Swiffy與恢復(在AS2和AS3它應該工作太..)

側面JavaScript可以做這樣的事情:

function playMovie(){ 
    stage.setFlashVars('myresponse=play'); 
    return false; 
    } 
    function stopMovie(){ 
    stage.setFlashVars('myresponse=pause'); 
    return false; 
    } 

和th在功能enterFrame事件閃光電子身邊...:

_root.onEnterFrame = function(){ 
switch(_level0.myresponse){ 
    case 'play': 
     _root.play(); 
     break; 

    case 'pause': 
     _root.stop(); 
     break; 

    default : 
     break; 
} 
_level0.myresponse = undefined; 
} 

,這就是它! 要你組織你想要的方法,但..它的工作原理;)如果你想以後重新使用它 必須重新參加未定義的變量;)

+0

在此添加swiff標籤以獲得更多相關流量。 – WEFX

6

有關最新發布Swiffy與(Swiffy與運行5.2版https://www.gstatic.com/swiffy/v5.2/runtime.js)我這樣做。

1.使用jsbeautifier.org,如samb的帖子中所述。

2.找到包含.start()的函數。在我的情況......

db(N, function() { 
    var a = this.Dg; 
    this.ck(function() { 
     a.start() 
    }) 
}); 
db(Yj[I], Yj[I].start); 

3.Duplicate此功能以不同的名稱,並替換的start()停止()

myNewFunction(N, function() { 
    var a = this.Dg; 
    this.ck(function() { 
     a.stop() 
    }) 
}); 
myNewFunction(Yj[I], Yj[I].stop); 

4.Find的聲明函數包含.start()。在我的情況下,db

function db(a, b) { 
    return a.start = b 
} 

5.Duplicate此功能,並調用它一樣的,你用停止()中創建新的功能,並與停止更換開始。在我的情況下,myNewFunction

function myNewFunction(a, b) { 
    return a.stop = b 
} 

就是這樣。

現在你可以給我打電話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(); 
});