2011-12-09 1 views
0

나는 점수를 빼는 것과 같이 몇 가지를 더하고 게임을 다섯 번 붙잡지 않을 때 "GameOver"화면으로 갈 수 있도록 다른 프레임을 추가 한 후 게임을했습니다. 그러나 "GameOver"화면의 "게임"화면에서 해당 항목을 지울 수 없습니다. 어떻게해야합니까? 내 소스 코드는 http://flashgameu.com/Catching_Game_Part_2_id20090312-131621.html입니다. 어쨌든"gameover"화면의 "game"화면에서 물건을 지우는 방법은 무엇입니까?

, 여기 내 액션 스크립트 3.0 코드입니다 :

패키지 { 수입 com.greensock. *;

import flash.display.*; 
import flash.events.*; 
import flash.text.*; 
import flash.utils.Timer; 
import flash.utils.getDefinitionByName; 

public class CatchingSkittles extends MovieClip { 
    var girlmouth:GirlMouth; 
    var girlmouthfront:GirlMouthFront; 
    var nextObject:Timer; 
    var objects:Array = new Array(); 
    var score:int = 0; 
    var missedItems:int = 0; 
    var speed:Number = 7.0; 

    public function CatchingSkittles() { 
     girlmouthfront = new GirlMouthFront(); 
     girlmouthfront.y = -49.00; 
     girlmouth = new GirlMouth(); 
     girlmouth.y = 308.55; 
     addChild(girlmouth); 
     girlmouth.addChild(girlmouthfront); 
     setNextObject(); 
     addEventListener(Event.ENTER_FRAME, moveObjects); 
    } 

    public function setNextObject() { 
     nextObject = new Timer(1000+Math.random()*1000,1); 
     nextObject.addEventListener(TimerEvent.TIMER_COMPLETE,newObject); 
     nextObject.start(); 
    } 

    public function newObject(e:Event) { 
     var goodObjects:Array = ["Red","Purple","Yellow","Orange","Green"]; 

     if (Math.random() < .8) { 
      var r:int = Math.floor(Math.random()*goodObjects.length); 
      var classRef:Class = getDefinitionByName(goodObjects[r]) as Class; 
      var newObject:MovieClip = new classRef(); 
      newObject.typestr = "good"; 
     } else { 
      r = Math.floor(Math.random()*goodObjects.length); 
      classRef = getDefinitionByName(goodObjects[r]) as Class; 
      newObject = new classRef(); 
      newObject.typestr = "good"; 
     } 
     newObject.x = Math.random()*510; 
     addChild(newObject); 
     objects.push(newObject); 
     setNextObject(); 
    } 

    public function moveObjects(e:Event) { 
     for(var i:int=objects.length-1;i>=0;i--) { 
      objects[i].y += speed; 
      if (objects[i].y > 425) { 
       score -= 5; 
       removeChild(objects[i]); 
       objects.splice(i,1); 
       missedItems +=1; 
       if (missedItems == 5) { 
       gotoAndStop(2); 
       finalScoreDisplay.text = "Score: "+score; 
       } 
      } 
      if (objects[i].hitTestObject(girlmouthfront)) { 
       if (objects[i].typestr == "good") { 
        score += 5; 
       } else { 
        score += 5; 
       } 

       removeChild(objects[i]); 
       objects.splice(i,1); 
      } 
      scoreDisplay.text = "Score: "+score; 


     } 

     girlmouth.x = mouseX; 
    } 


} 

}

나는 "missedItems"아래 기능 moveObjects의 모든()을 편집하려고 노력했지만, 난 그냥 작동 할 수 없습니다 ....

답변

0

는 무엇 여전히 화면에 무엇이 제거 되길 원합니까?

마치 여아 기호는 제거하려는 기본 기호입니다. 이 경우 다음을 시도하십시오.

if (missedItems == 5) { 
    removeChild(girlmouth); 
    removeEventListener(Event.ENTER_FRAME, moveObjects); 
    gotoAndStop(2); 
    finalScoreDisplay.text = "Score: "+score; 
} 
관련 문제