问题是这样的:
我有个大的mc -- PosterMc,需要使用toDisplayDataURL导出图片格式,然后给用户长按下载到相册。
PosterMc里面有很多层,其中一个层是一个有6帧的影片剪辑msgMc,用户选择6条消息的一条,msgMc就gotoAndStop到对应的帧,长按保存的图片显示的是用户选择的那条消息的文字。
然后
msgMc.gotoAndStop(pid+1);
baseImage = annie.toDisplayDataURL(main. PosterMc,{
x: 0,
y: -10,
width: 640,
height: 1118
}, {
type: "png"//数据类型jpg/png
//quality: 100//图片质量值1-100,png格式不需要设置quality
});
测试的时候,msgMc的画面永远都是第一帧。
后面才想到,小可说过,annie是使用双缓冲渲染机制。
当前帧显示的是上一帧的画面,这一帧的画面再缓冲区等下一次刷新的时候显示。
所以要么就要强制刷新画面。
要么toDisplayDataURL要使用setTimeout放到下一帧之后,再截屏。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!