【代码分享】随机不重复跳帧或跳页面

地址:
https://www.mugeda.com/animation/edit/ccb9e21c
 
大家有时会有跳帧或跳页面的需求,默认的跳帧行为是用英文的分号来完成,但有一个特点是可能会重复跳页面或跳帧

随机跳帧.png

 
如果想不重复跳帧或跳页面,需要用一点代码
mugeda.addEventListener("renderready", function(){
var scene = mugeda.scene;

var randomSort = function(a, b) { return Math.random() > 0.5 ? -1 : 1; }

var arr = [1,2,3,4,5,6];
var max = 3;

arr.sort(randomSort);

console.log(arr)


window.jumpframe = function(){
if(max>0){
max--;
var frameNum = arr.shift();
console.log(arr)

if(frameNum){
scene.gotoAndPause(frameNum);
}
}else{
alert('次数没了')
}
}
});

jumpframe是定义好的一个回调函数的名字,在你作品里的按钮上加上回调函数行为,函数名写jumpframe

其中 randomSort 是打乱数组 arr 里元素的顺序用的,arr里的元素填的数字,分别对应帧号或页号,这个例子只写了6个元素,如果你作品要跳转的帧数或页数不同,需要自己增减arr的元素,max是用来规定可以跳转的最大次数的,scene.gotoAndPause这个方法是跳帧,alert('次数没了')是个默认的弹窗,如果你想有不同的行为,可以查看api文档,换成跳页面的行为
 
api 文档 http://card.mugeda.com/mugedaApiDoc/index.html
已邀请:

lx_mgd

赞同来自: 18027479178

如果作品需要重来,那么是需要使用回调函数来把里面的一些参数重置的。
mugeda.addEventListener("renderready", function(){
var scene = mugeda.scene;

var randomSort = function(a, b) { return Math.random() > 0.5 ? -1 : 1; }

var arr = [1,2,3,4,5,6];
var max = 3;

arr.sort(randomSort);

console.log(arr)

window.resetdata = function(){
arr = [1,2,3,4,5,6];
max = 3;
arr.sort(randomSort);
}

window.jumpframe = function(){
if(max>0){
max--;
var frameNum = arr.shift();
console.log(arr)

if(frameNum){
scene.gotoAndPause(frameNum);
}
}else{
alert('次数没了')
}
}
});

 
下边的代码就是重置数据的一个回调函数,可以用行为把它加在作品里类似“重玩一次”的按钮上。
window.resetdata = function(){
arr = [1,2,3,4,5,6];
max = 3;

arr.sort(randomSort);
}



 
 

qq3a937a8af6

赞同来自:

有什么用?。。。。。。。。。。。

要回复问题请先登录注册