Closed changqing91 closed 2 years ago
Your problem does not appear, please check the examples code
For example:
var { FFCreator, FFImage, FFScene } = require('ffcreator')
var creator = new FFCreator({
output: `./test/mars.mp4`,
width: 720,
height: 1600
})
var scene = new FFScene()
scene.setDuration(4)
var image1 = new FFImage({
path: `./mars.png`,
width: 500,
height: 500,
x: 0,
y: 0
})
image1.addAnimate({
from: { x: -200, y: -100, scale: 2 },
to: { x: -220, y: -110, scale: 3 },
delay: 0,
time: 2
})
image1.setAnchor(0, 0)
var image2 = new FFImage({
path: `./mars.png`,
width: 300,
height: 300,
x: 0,
y: 0
})
image2.addAnimate({
from: { x: -220, y: -110, scale: 3 },
to: { x: -200, y: -100, scale: 2 },
delay: 2,
time: 2
})
image2.setAnchor(0, 0)
scene.setBgColor('#ffffff')
scene.addChild(image1)
scene.addChild(image2)
creator.addChild(scene)
creator.start()
怎么使image1只在前2s显示,image2只在后2s显示
参考examples image
我用了addAnimate,再用addEffect会影响动画 只能用alpha来实现,不想透明度变化的效果
我也遇到同样的问题,不知道能否在时间到达的时候再显示相关资源。
use the remove
method, see examples/image.js
@drawcall 大佬您好,我在images.js里面并没有找到remove的api,能不能具体一点,举一个例子,非常感谢!
@drawcall 感谢大佬回复,可能我和题主没有表达清楚。 我们想要的效果其实是,两张图片先后出现,比如image1在第1秒开始做动画,5秒后消失,image1消失后image2才开始出现,n秒后消失。 然而,目前要实现这种效果,只能设置form: {alpha: 0},to{alpha:1},但这种方式会导致fade in的效果。
如果不想要fade in效果,我找到另一种实现的方式,就是稍微麻烦一点:
// 首先设置alpha:0,让图片隐藏
var image2 = new FFImage({
path: ./mars.png
,
width: 300,
height: 300,
x: 0,
y: 0,
alpha: 0
})
image2.addEffect('backIn', 0, 5); // 在第5秒的时候瞬间显示图片 image2.addEffect('moveRight', 0.5, 5); // 再执行动画 scene.addChild(image2)
// 9s remove
flogo2.remove(9);
after 9s disappear
@drawcall 感谢大佬!
一个4s的场景中连续播放两张图片(zoompan)动画各2s,结果整个场景都会播放第二张图片,addEffect和addAnimate都试过,如果不使用alpha值就会产生此问题,但是不想让整个场景变白所以不希望使用alpha来解决。