#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 и число соответственно), я не помню, работают ли целые числа в качестве индексов массива .