play_movie_event
ソースファイルを確認すると、ムービーを(フレームごとに)再生する関数である関数内に見つかりました。そのように見えます:
function play_movie_event(e, fromFrame, toFrame, repeat, performStop){
if(fromFrame === undefined || fromFrame < 1){
fromFrame = 1;
}
if(toFrame === undefined || toFrame > $(this).data("settings").images.length*$(this).data("settings").grid.rows*$(this).data("settings").grid.columns){
toFrame = $(this).data("settings").images.length*$(this).data("settings").grid.rows*$(this).data("settings").grid.columns;
}
if(repeat === undefined){
repeat = $(this).data("settings").repeat
}
if(performStop === undefined){
performStop = true;
}
if($(this).data("currentStatus") == 'play'){
clearInterval($(this).data("playingInterval"));
$(this).data("currentStatus","playing");
var self=this;
$(this).data("playingInterval",setInterval(function() {
// FPS Measurement
if($(self).data("realFpsTimeStamp") != undefined){
$(self).data("realFps",1/(((new Date()).getTime()-$(self).data("realFpsTimeStamp"))/1000));
//verboseOut.apply($(self),[$(self).data("realFps").toFixed(2)+"fps"]);
}else{
$(self).data("realFps",$(self).data("settings").fps);
}
$(self).data("realFpsTimeStamp",(new Date()).getTime());
// play frames
if($(self).data("settings").playBackwards){
if($(self).data("currentFrame").data('frame') == fromFrame && !repeat){
if(performStop){
$(self).trigger('stop');
}else{
$(self).trigger('pause');
}
$(self).trigger('ended');
}else{
$(self).trigger('playing');
if($(self).data("currentFrame").data('frame') != fromFrame){
methods.previousFrame.apply($(self));
}else{
methods.gotoFrame.apply($(self),[toFrame]);
}
}
}else{
if($(self).data("currentFrame").data('frame') == toFrame && !repeat){
if(performStop){
$(self).trigger('stop');
}else{
$(self).trigger('pause');
}
$(self).trigger('ended');
}else{
$(self).trigger('playing');
if($(self).data("currentFrame").data('frame') != toFrame){
methods.nextFrame.apply($(self));
}else{
methods.gotoFrame.apply($(self),[fromFrame]);
}
}
}
}, 1000/$(this).data("settings").fps));
}
}
おそらくそれがどのように機能するかは気にしませんが、重要なのは次のような行です。
if($(self).data("currentFrame").data('frame') == toFrame && !repeat){
if(performStop){
$(self).trigger('stop');
}else{
$(self).trigger('pause');
}
$(self).trigger('ended');
}
これらすべてのトリガーを見ることができます。ドキュメント内のあらゆる場所に配置されます。つまり、それらを使用する良い方法は.on()
$('#movie').on('stop', function(){})
jQueryのドキュメントをチェックして、何.trigger()
が機能するかを確認してください:http://api.jquery.com/trigger/