请教一个问题
animate吧
全部回复
仅看楼主
level 3
大红花ლ 楼主
animate canvas点击ctrl+enter预览时,报以下错误:
在 EaselJS 中,帧编号从 0 开始而不是从 1 开始。这会影响一些调用,如 gotoandstop() 和 gotoAndPlay 调用。 (2)
2021年08月07日 10点08分 1
吧务
level 13
这个只是提示,不是报错.
也无法关闭这个提示.
每个带有帧的软件,每个帧都是以对象形式存在.而这些帧存在图层这个数组中(有的还是对象),
对于定义数组和对象的时候,有的从0开始,有的从1开始.FLASH本身的0是内置了其他代码所以是从1开始.EaselJS的帧是默认从0开始的.
跳转的时候比如跳转到第10帧,As是直接写this.gotoandstop(10)而hrml5是写this.gotoandstop(9),这2个同样对应制作时候的第10帧.
不过这里建议:
软件流从软件入手的人:用帧标签形式来跳转不要用帧跳转.也就是比如第10帧写上帧标签'结束',然后跳转写this.gotoandstop('结束'),这样方便管理和调整不用去数帧查帧.
编程流的话.可能自身习惯不会去动舞台的东西,但是因为STOP等在软件内实际都是单独打包的函数.和原生的停止不同.所以在查找时候会有问题.编程几种写法是,
if(元件){this.stop()}//如果元件存在则停止.
或采用时间或其他形式.如下边,当帧大于50帧则停止.
function s() {
if(exportRoot.currentFrame>50){clearTimeout(t);exportRoot.stop();alert("停止")}
t=setTimeout(s, 20);//变量t等于每200毫秒调用代码本身
}
s()//执行代码
我自己采用的是EaselJS的默认帧频停止.因为更省事些.
zptz=(tzzs)=>{
zttz=()=>{exportRoot.currentFrame>tzzs&&exportRoot.stop()}
createjs.Ticker.addEventListener("tick",zttz);
}
//指定停止
zptz(50)
不过这类通用度其实很低.因为需要用到软件和EaselJS.
实际一般前端人员都是用时间形式判断.
也就是setTimeout(function(){执行的代码},1000);
总之,写法多种多样,软件流主要依靠软件,而实际开发人员则要侧重和思考很多东西,选择最适合的写法.
2021年08月07日 12点08分 2
好的,谢谢
2021年08月07日 15点08分
1