나는 캔버스 개체와 약간의 스트리밍 클라이언트를 작성하려고합니다.시간 초과 캔버스 drawimage 루프
이 필요한 코드 :
this.drawPictures = function() {
var i = 0;
while (i <= 3000) {
this.addPicture("Pictures/Wildlife/" + i + '.bmp', 1, 1);
i = i + 4;
}
}
이 잘 작동! 이미지가 표시됩니다. 그러나 그것은 내가 원하는 것이 아닙니다.
FPS 한도를 설정하고 싶습니다. 그래서 나는이 루프에서 1000ms/프레임의 "sleep"을 가질 필요가있다.
나는 SetInterval 또는 SetTimeOut을 사용하여 몇 가지 방법을 시도했다. 그러나 그들 중 누구도 나를 위해 일하지 못했습니다. 나는 반복하기 전에 실제 날짜 시간을 저장하고 timedifference가 1000MS에 도달 정확히 내가 사진을로드하고 난을 증가하는 것을 시도하고있다
var i = 0;
timeStart = new Date().getTime();
while (i <= 3000) {
timeNow = new Date().getTime();
timeDifference = timeNow - timeStart;
if (timeDifference > 1000*i) {
this.addPicture("Pictures/Wildlife/" + i + '.bmp', 1, 1);
i = i + 1;
}
}
:
그래서 난 내 자신의 잠을 작성했습니다.내 문제 : this.addPicture 대신 alert (i)를 사용하면 정상적으로 작동합니다! 매주 1000ms (매초)마다 경고음이 발생합니다.
위 예제 (this.addPicture)를 사용하면 브라우저를로드 할 때까지 페이지를로드 할 수 없다는 오류가 표시됩니다. 그러나 나는 어떤 그림도 보지 않는다! 그렇지 AddPicture 입력과 경고와 함께 작동하지만 왜
this.addPicture = function (cPicPath, nSizeX, nSizeY) {
var imageObj = new Image();
imageObj.onload = function() {
ctx.drawImage(imageObj, nSizeX, nSizeY);
}
imageObj.src = cPicPath;
}
아무도 알고 있나요 : 여기
내 AddPicture 입력 기능입니까? 왜냐하면 나는 타임 스탬프 (첫 번째 코드 예제)를 사용하지 않기 때문에 잘 동작한다.