首页 > 解决方案 > AddChild 没有出现在舞台上

问题描述

所以我为我的项目制作了一个记忆游戏,我在这里指的是。但是 addChild 似乎没有工作。只是一个额外的信息,我使用的是最新的 Adob​​e Animate 版本。

这也应该出现在特定的帧和场景上,我将帧标记为 game5 和场景 5。想知道这可能是原因吗?还是代码已过时或错误?

这是我的 .as 文件中的代码

package  {
import flash.display.MovieClip;
import flash.utils.Timer;

public class LatestFix extends MovieClip { 
    
    var fClip:Logo;
    var sClip:Logo;
    var myTimerlvl5:Timer;
    var frames:Array = new Array(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10);

    public function LatestFix() {
        // constructor code 
        
        for(var i:Number=1; i<=5; i++){
            for(var j:Number=1; j<=4; j++){
                var myLogo:Logo = new Logo();
                var index = Math.floor(Math.random()* frames.length);
                
                myLogo.frameNo = frames[index];
                frames.splice(index,1);
                
                addChild(myLogo);
                myLogo.x = j*100;
                myLogo.y = i*100;
                
                myLogo.gotoAndStop(11);
                myLogo.addEventListener(MouseEvent.CLICK,openLogo);
            }
        }
    }
    private function openLogo(e:MouseEvent){
        var clickObj:Logo = Logo(e.target);
        
        if(fClip == null){
            fClip = clickObj;
            fClip.gotoAndStop(fClip.frameNo);
        }else if(sClip == null && fClip != clickObj){
            sClip = clickObj;
            sClip.gotoAndStop(sClip.frameNo);
            
            if(fClip.frameNo == sClip.frameNo){
                myTimerlvl5 = new Timer(1000,1);
                myTimerlvl5.start();
                myTimerlvl5.addEventListener(TimerEvent.TIMER_COMPLETE, removeLogos);
            }else{
                myTimerlvl5 = new Timer(1000,1);
                myTimerlvl5.start();
                myTimerlvl5.addEventListener(TimerEvent.TIMER_COMPLETE, resetLogos);
            }
        }
    }
    private function removeLogos(e:TimerEvent){
        removeChild(fClip);
        removeChild(sClip);
        myTimerlvl5.removeEventListener(TimerEvent.TIMER_COMPLETE, removeLogos);
        fClip = null;
        sClip = null;
    }
    private function resetLogos(e:TimerEvent){
        fClip.gotoAndStop(11);
        sClip.gotoAndStop(11);
        myTimerlvl5.removeEventListener(TimerEvent.TIMER_COMPLETE, resetLogos); 
        fClip = null;
        sClip = null;
    }
}
}

标签: actionscript-3actionscriptanimate-cc

解决方案


推荐阅读