2017-11-06 1 views
1

캔버스에 문자를 그리려는 것입니다. 캔버스에 문자를 그리는 데 filltext()을 사용하고 있습니다.Canvas .fillText 함수가 처음으로 작동하지 않습니다.

처음 작동하지만 메뉴로 돌아가 다시 시도하면 캐릭터가 캔버스에 표시되지 않습니다.

콘솔 로그에서 오류를 찾으려고 할 때 함수가 호출되고 글자도 그려진다. (나는 캔버스에있는 픽셀의 수를 계산하고있다.) 어떻게 든 캔버스에 글자를 표시하지 않는다. .

function setupCanvas(character) { 
    canvasVar.height = window.innerHeight; 
    canvasVar.width = window.innerWidth; 
    canvasCx.lineWidth = 14; 
    canvasCx.lineCap = 'round'; 
    canvasCx.strokeStyle = 'rgb(0, 0, 50)'; 
    //canvasCx.strokeStyle = $rootScope.userPreferedColor; 
    canvasCx.font = 'bold 25em helvetica'; 
    canvasCx.fillStyle = 'rgb(255, 0, 0)'; 
    canvasCx.textBaseline = 'middle'; 
    drawletter(character); 
    //pixels = canvasCx.getImageData(0, 0, canvasVar.width, canvasVar.height); 
    //console.log(JSON.stringify(pixels)) 
} 

function drawletter(char) { 
    //making letter a global variable - not the right way :) dirty solution 
    letter = char; 
    centerx = (canvasVar.width - canvasCx.measureText(letter).width)/2; 
    centery = canvasVar.height/2; 
    //canvasCx.clearRect(0, 0, canvasVar.width, canvasVar.height); 
    canvasCx.fillText(letter, centerx, centery); 
    //getting the border for the letter only 
    pixels = canvasCx.getImageData(centerx,0,canvasCx.measureText(letter).width,canvasVar.height); 
    console.log("letter is drawn to the canvas "+ getpixelamount(255, 0, 0)); 
}//end of draw letter 

총 코드에서 찾기 : 당신은 페이지 캐시를 제거하면 github repo

+1

A [최소, 검증 예] (https://stackoverflow.com/help/을 제공하십시오 mcve). 예를 들어, 우리는 당신의 "메뉴"에서 무슨 일이 벌어지고 있는지 모른다. – Nash

+0

[link] (https://github.com/anilkunchalaece/debugLearn)에서 코드를 찾으십시오. www/templates/practiceView.html에서 각각의 JS 코드와 www/controllers/practiceViewController.js에서 캔버스를 찾습니다 목록 1 또는 목록 2를 클릭 한 다음 글자를 선택하여 캔버스보기로 이동 한 다음 btn 배치를 사용하여 메뉴로 돌아갑니다. 캔버스에 다른 문자를 선택하면 문자가 표시되지 않습니다. –

답변

0

이이 문제를 해결할 수

관련 문제