如何解决AS3翻转效果留下了痕迹?
| 我正在尝试使用tutplus的翻转效果教程创建一些东西-http://active.tutsplus.com/tutorials/effects/iphone-page-transition-flash/ 但是,我的翻转区域比教程要大得多,它的宽度为900px。一切正常,除了当宽度那么大时会留下痕迹。翻转几次,您会看到它。 有人在去年的评论中发布了相同的问题,但没有人回答。 有人知道解决方案吗? 编辑: 这是一个屏幕截图:http://imageshack.us/f/823/unled2lo.jpg/(单击放大) 正面为紫色,背面为白色。 如您所见,页面翻到白色时,它留下了一些紫色。 我无法看到它旋转的屏幕快照,但是在页面实际上正在翻转的时候更加明显,因为宽度变窄,这揭示了页面上留下的更多内容。解决方法
您正在使用的教程使用内置补间类创建翻转效果,它们绝对是垃圾,如果与其他第三部分补间类进行比较,则会非常慢。那可能是造成足迹的原因! Lee Brimelow有一个很棒的视频教程,介绍了如何正确实现所需的内容:http://gotoandlearn.com/play.php?id=91他正在使用caurina,但我强烈建议您使用tweenLight替换它,到目前为止最好我曾经用过补间。
好的,那就是演练:
1-从Lee Brimelow教程http://gotoandlearn.com/files/3dflip.zip下载文件
2-在此处下载tweenLight AS3类:http://www.greensock.com/tweenlite/
3-复制greensock-as3内的com文件夹并将其粘贴到3dflip文件夹内。现在,您拥有翻转所需的所有补间类!
4-打开Flash文件3dflip.fla,并用以下内容替换原始代码(位于第一帧):
import com.greensock.TweenLite;
import fl.video.*;
con.visible = false;
var flv:FLVPlayback = con.vid.flvp;
flv.addEventListener(VideoEvent.PLAYING_STATE_ENTERED,onStart);
function onStart(e:Event):void
{
con.visible = true;
loading.visible = false;
}
con.vid.spin.addEventListener(MouseEvent.CLICK,cl);
con.tclip.spin.addEventListener(MouseEvent.CLICK,cl);
var isTurning:Boolean = false;
function cl(e:Event):void
{
if(!isTurning)
{
TweenLite.to(con,1,{rotationY:con.rotationY+180,onComplete:function(){isTurning=false;}});
isTurning = true;
}
}
addEventListener(Event.ENTER_FRAME,loop);
function loop(e:Event):void
{
if(con.rotationY > 90 && con.rotationY < 270)
con.addChild(con.tclip);
else
con.addChild(con.vid);
if(con.rotationY >= 360) con.rotationY = 0;
}
而已。现在发布并查看结果。现在,您要做的就是用所需的内容替换视频播放器!
,我会检查第一侧的状态-好像当“另一侧”踢进舞台时,它已经在舞台上被忘记了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。