2013-09-05 2 views
1

createjs에서 비트 맵 이미지를 변경하려고하는데 재설정 버튼을 클릭 할 때 컨테이너의 모든 하위를 제거하려고합니다. 하지만 removeAllChildren이 작동하지 않습니다.removeAllChildren이 createjs에서 작동하지 않습니다.

function drawPhoneImage() { 
    stage = new createjs.Stage('canvas'); 
    container = new createjs.Container(); 

    phone = new createjs.Bitmap(phoneImg); 
    phone.x = 268; 
    phone.y = 64; 

    stage.addChild(container); 
    container.addChild(phone); 
    stage.update(); 

    phone.addEventListener("click", function() { 
    console.log('phone clicked'); 
    createjs.Ticker.addEventListener("tick", movePhoneImage); 
    }); 
} 

function movePhoneImage(event) { 
    phone.x -=10; 

    if(phone.x < 156) { 
    phone.x =156; 
    showPhoneSnap(); 
    } 
    stage.update(event); 
} 

그런 다음 전화 개체를 클릭 한 후, 나는 (작동하는) 다른 비트 맵으로 대체해야합니다 : 처음에는

function showPhoneSnap() { 
    snap = new createjs.Bitmap(snapImg); 
    snap.x = 156; 
    snap.y = 64; 

    container.removeAllChildren(); 
    container.addChild(snap); 
    stage.update(); 
} 

, removeAllChildren 컨테이너의 첫 번째 자식에서 일하고, 하지만 container.removeAllChildren()에 다른 비트 맵을 추가 한 후 스테이지를 재설정하려고 시도하면 작동하지 않습니다.

function resetStage() { 
    container.removeAllChildren(); 
    stage.update(); 
} 

저는이 문제를 해결하는 데 어려움을 겪고 있습니다. 도와 주실 수있는 모든 분들께 감사드립니다.

+0

어떻게'resetStage()'가 호출되고 있습니까? 통화 중에 기록 된 오류가 있습니까? – olsn

+0

$ ('# 재설정'). (function() { resetStage(); })을 클릭하십시오. 표시되는 오류가 없습니다. – abelski

+0

하나의 가정은 범위가 틀렸을 수도 있지만,이 경우 '스테이지'와 '컨테이너'가 '정의되지 않음'이라는 오류가 발생합니다. – olsn

답변

0

"snapImg"가로드 된 이미지인지 확인하십시오.

snap = new createjs.Bitmap(snapImg); 

이미지를로드 할 때 스테이지를 업데이트하지 않는 것이 문제입니다.

var image = new Image(); 
image.src = "path"; 
image.onload = showPhoneSnap; 
function showPhoneSnap() { 
    //This will ensure that the image is ready. 
    var bmp = new createjs.Bitmap(this); 
    ... 
    stage.update(); 
} 
관련 문제