我已经设置了6个动画片段作为array_0,另一组6个动画片段作为array_1。这就像两个不同屏幕的选择。这两个数组都作为all_array嵌套在另一个数组中。所有12个动画片段在初始加载时定位到相同的x和y,并且在可见阶段之外。我想使用两个不同的全局变量进行索引。例如,cCat_Sel的取值范围是0-5,另一个cScr_Sel取值范围是0-1。 cCat_Sel将在舞台上的六个按钮单独对象的点击事件(每个类别的每个按钮)上进行更改。移动补间动画组使用as3动画片段组
因此它会根据cScr_Sel的值显示每个类别的内容。如果cScr_Sel为0,那么它将使用all_array [0] [cCat_Sel]来访问当前目标,并且类似地为1的值分别为all_array [1] [cCat_Sel]
我已经完成了所有工作,包括所有补间动画移动当前目标并使其可见。但补间不会将第二套mcs带到可见区域。我有两个函数用于移动,另一个用于通过使用mc.x属性的补间动画移出。每个相关的点击事件;我必须移动当前mc并制作alpha 0,一旦完成,移入新的当前目标并制作alpha 1.
不知何故,我必须将这两个补间结合在一个函数中。这是我卡住的部分。或者可能会将这些mcs放在两个不同的阵列中,而不是正确的方法。我可以很容易地实现我想要在根的Enter Frame事件上检查cCat_Sel和cScr_Sel变量,并且一个接一个地执行这两个动画,但它看起来像输入帧使用了太多的cpu,并且使其变得更慢并且可能不是优选的。
愿意尝试任何人的建议或指导。提前致谢。 我没有任何正式或非正式的编程教育,但我通过阅读和尝试了一些东西,因为每stackoverflow问题和答案,有时谷歌工作。因为我从堆栈溢出中找到的大部分答案。 更新:
function fnSlideInOut(cMc:Object, pMc:Object){
var HideX:Number =650;
var ShowX:Number = 0;
if(cMc != null){
if(cMc.x != ShowX){
//cMc.alpha = 1;
var SlideMcIn:Tween = new Tween(cMc, "x", Strong.easeOut, 650, ShowX, 0.5, true);
SlideMcIn.addEventListener(TweenEvent.MOTION_FINISH, fnSlideInFinish);
SlideMcIn.start();
}
}
if(pMc != null){
if(pMc.x != HideX){
//pMc.alpha = 1;
var SlideMcOut:Tween = new Tween(pMc, "x", Strong.easeOut, 0, HideX, 0.5, true);
SlideMcOut.addEventListener(TweenEvent.MOTION_FINISH, fnSlideOutFinish);
SlideMcOut.start();
}
}
function fnSlideOutFinish(e:TweenEvent){
//SlideMcOut.obj.alpha = 0;
SlideMcOut.removeEventListener(TweenEvent.MOTION_FINISH, fnSlideOutFinish);
}
function fnSlideInFinish(e:TweenEvent){
//SlideMcIn.obj.alpha = 1;
SlideMcIn.removeEventListener(TweenEvent.MOTION_FINISH, fnSlideInFinish);
}
}//End Function
fnSlideInOut(cScr_Sel, pScr_Sel);
我想专家希望你能在任何类型的错误,上面的代码注释。它工作99次,但是1次影片剪辑或者没有到达目的地,或者当前和之前的两个目标都显示,而且这些目标也不在他们所设想的位置。这只发生在快速连续发生按钮点击事件时。再次感谢
我看着tweenLite链接,似乎我需要一些时间来进入它。但看起来很彻底。我相信这将长期帮助我。我一直在其他网站上看到Tweenlite。我看了一些可能性。它简直太棒了,天空是极限。在Flash的Tween中建立的是如此原始,如此充满垃圾。如果我可以使用内置的Tween类使其可行,我将上传解决方案。非常感谢您提供快速回答并展示处理这种情况的正确方法。 – user2145746 2013-03-07 23:47:38
那么,根据我的经验,你并不需要时间跳进TweenLite并开始使用它。除了向我的样本中添加进口产品外,这也是您需要做的所有事情。无论如何,我很高兴它可以帮助您 – duTr 2013-03-08 01:59:53
再次感谢。我最终肯定会使用TweenLite。我也确信你的代码会起作用。但这是我做出了一个快速解决方案。这不是很好,但它是我周一截止日期的临时解决方案。 – user2145746 2013-03-08 02:10:28