addChild не появляется на сцене

#actionscript-3 #actionscript #animate-cc

Вопрос:

Итак, я создаю игру на память для своего проекта, на который я ссылаюсь здесь . Однако addChild, похоже, не работает.Просто дополнительная информация, я использую последнюю версию Adobe 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 amp;amp; 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;
    }
}
}
 

Комментарии:

1. Сценарий мне кажется прекрасным. Попробуйте добавить общие формы s и нарисовать их? Если вы видите это, то, вероятно, виновата связь между классом логотипа и объектом библиотеки. Также, может быть, попробуйте int() вместо Math.floor() : они делают то же самое с числами выше нуля, но создают разные типы ( int и число соответственно), я не помню, работают ли целые числа в качестве индексов массива .