是否很容易调整Actionscript以便您可以获得多次翻转?

时间:2012-03-22 11:27:56

标签: actionscript-3 flash actionscript

如何在Flash中实现它有点粗略。     是否可以轻松调整Actionscript,以便您可以获得多次翻转?,即,您可以多次翻转卡片并每次获得不同的图像?

这是两次翻转的代码并实现它。现在我打算向前移动一点,实施多次翻转卡片。

package
{
    import flash.display.*;
    import flash.text.*;
    import flash.events.*;

    import com.greensock.TimelineLite;
    import com.greensock.TweenLite;
    import com.greensock.easing.*;

    public class Main extends MovieClip
    {
        public function Main()
        {
            addEventListener(Event.ADDED_TO_STAGE,init);
        }

        private function init(evt:Event=null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE,init);

            setClip();
        }

        private function setClip():void
        {
            clip_mc.z=300;
            clip_mc.getChildAt(0).visible=false;
            clip_mc.getChildAt(0).rotationY=180;
            clip_mc.mouseChildren=false;
            clip_mc.buttonMode=true;
            clip_mc.addEventListener(MouseEvent.MOUSE_DOWN,onClipDown);
        }

        private function onClipDown(evt:MouseEvent)
        {
            evt.target.mouseEnabled=false;

            var arrive:Number;
            if(clip_mc.rotationY > 89)
                arrive=0;
            else
                arrive=180;

            var my_tween=new TimelineLite();
            my_tween.insert(TweenLite.to(clip_mc,0.5,{z:200,ease:Back.easeOut }));
            my_tween.insert(TweenLite.to(clip_mc,1.5,{rotationY:arrive,ease:Strong.easeInOut,onUpdate:setClipSide,onUpdateParams:[clip_mc]}));
            my_tween.insert(TweenLite.to(clip_mc,0.5,{z:300,ease:Back.easeIn,onComplete:done}),0.75);
        }

        private function setClipSide(clip_mc)
        {
            if(clip_mc.rotationY > 89)
            {
                clip_mc.getChildAt(1).visible=false;
                clip_mc.getChildAt(0).visible=true;
            }
            else
            {
                clip_mc.getChildAt(0).visible=false;
                clip_mc.getChildAt(1).visible=true;
            }
        }

        private function done():void
        {
            clip_mc.mouseEnabled=true;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

是的,这很安静可能你几乎在那里,你如何组织翻转,你可以继续重复这种结构

   private function setClipSide(clip_mc)
    {
        if(clip_mc.rotationY > 89 && clip_mc.rotationY<280) // i added
        {
            clip_mc.getChildAt(1).visible=false;
            clip_mc.getChildAt(0).visible=true;
        }
        else
        {
            clip_mc.getChildAt(0).visible=false;
            clip_mc.getChildAt(1).visible=true;
        }
    }

您要做的是将以下这些行替换为变量,函数或公式

            clip_mc.getChildAt(1).visible=false;// here you have only limited yourself
            clip_mc.getChildAt(0).visible=true;//

因此,在该区域中,您可以添加一个函数来随机生成卡片值,或者从变量中生成卡片值,或者只是将RNG从数组的总长度中调出[] - 1,如果这就是您的图像或值的存储方式。

下面是一个老虎机的例子我根据我的号码生成器将所有的动画片段添加到了他们的位置,除了我的RNG是PHP然后传递给flash http://www.gamezslave.net/game/Slots.html让我知道你怎么走