2015-02-05 2 views
0

createjs 파일에 오류가 있습니다. CreateJS에서 잡히지 않는 유형 오류를 표시합니다. 출력이 보이지 않습니다. 내 코드는 아래에 있습니다.

<html> 
<head> 
<title></title> 
<script src="https://code.createjs.com/createjs-2014.12.12.min.js"> 
</script>  <script> 
var preload,cW,cH,winW,winH; 
var road,city1,city2,sky,build1,build2; 
window.onload = function(){ 
    var canvas = document.getElementById("demoCanvas"); 
    var stage = new createjs.Stage(canvas); 
cW=1200; 
cH=600; 
    preload = new createjs.LoadQueue(true); 

    var manifest =[{id:"ad_road",src:"road.png"}, 
     {id:"ad_build1",src:"build.png"}, 
     {id:"ad_build2",src:"build.png"}, 
     {id:"ad_farbuild1",src:"layer3.png"}, 
     {id:"ad_land",src:"land1.png"}, 
     {id:"ad_farbuild2",src:"layer1.jpg"}, 
     {id:"ad_sky",src:"sky.png"} 
    ]; 
    preload.loadManifest(manifest); 
    preload.on("complete",handleComplete); 


function handleComplete(){ 
    sky = new createjs.Shape(); 
    sky.graphics.beginBitmapFill(preload.getResult("ad_sky"),"repeat-x").drawRect(0, 0, 1200,600); 

    var roadImg = preload.getResult("road"); 
    road = new createjs.Shape(); 
    road.graphics.beginBitmapFill(roadImg).drawRect(0, 0, cW + roadImg.width, roadImg.height*1); 
    road.tileW = roadImg.width; 
    road.y = cH - roadImg.height; 

    /*var matrix = new createjs.Matrix2D(1,2,3,4,5,6);*/ 

    build1 = new createjs.Bitmap(preload.getResult("ad_build1")); 
    build1.setTransform(Math.random()*cW ,cH - build1.image.height * 0.7 - roadImg.height, 0.7,0.7); 
    build1.alpha = 1; 

    build2 = new createjs.Bitmap(preload.getResult("ad_build2")); 
    //console.log(cH - build2.image.height * 1 - roadImg.height); 
    build2.setTransform(Math.random()*cW ,cH - build2.image.height * 0.7 - roadImg.height, 0.7,0.7); 
    build2.alpha = 1; 

    stage.addChild(sky,build1,build2,road); 
    createjs.Ticker.timingMode = createjs.Ticker.RAF; 
    document.onkeydown = tick; 
} 
    //createjs.Ticker.addEventListener("tick", tick); 


function tick(event){ 
    if(event.keyCode === 37){ 
     var deltaS = event.delta/1000 || 40/1000; 
     road.x = (road.x - deltaS * 200) % road.tileW; 

     build1.x = (build1.x - deltaS * 60); 
     if (build1.x + build1.image.width * build1.scaleX <= 0) { 
      build1.x = cW; 
     } 
     build2.x = (build2.x - deltaS * 75); 
     if (build2.x + build2.image.width * build2.scaleX <= 0) { 
      build2.x = cW; 
     } 
     stage.update(event); 
    } 
    } 
    } 
</script> 
</head> 
<body> 
<p><canvas height="600" id="demoCanvas" width="1300"> </canvas></p> 
</body> 
</html> 

그 다음 오류 콘솔 로그 도시되지 않은 유형 오류 : 'CanvasRenderingContext2D'ON 'createPattern을'실행 실패 없음 함수는 제공된 서명이 일치하는 것을 발견 하였다.

+0

이미지 중 하나가로드되지 않을 수 있습니까? 로드 된 단일 이미지를 사용하여 코드를 바이올린에 버렸습니다. 변환으로 인해 "build2"가 표시되지 않습니다. http://jsfiddle.net/lannymcnie/fe6xkf81/ – Lanny

+0

예, bitmapFill에 전달한 이미지가 null 일 때 오류가 발생하는 것 같습니다. – Lanny

답변

1

Lanny가 주석에 명시한 바와 같이 beginBitmapFill에 잘못된 이미지 (비어 있음, 완전로드되지 않음, 손상됨, 404 등)를 전달하면이 오류가 발생합니다.

이미지가 제대로로드되는지 확인하십시오.

방금이 RTE를 우회하는 EaselJS NEXT에 대한 업데이트를 푸시했으며 유효하지 않은 비트 맵 채우기를 무시했습니다.

관련 문제