我在使用畫布編寫飛鏢的基本應用程序,它基本上有2個方格,其中一個從屏幕的右側移動到第二個移動,當用戶按下箭頭鍵時。即使我將它編譯爲js,我的Dart項目也不起作用。它只適用於dartium
現在的問題是,當我嘗試它在Dartium它工作正常。但如果我嘗試在Chrome/Firefox中打開它,我只能看到一個空的矩形。
飛鏢編輯器不顯示任何錯誤,即使當我編譯爲JavaScript代碼。
但是,當我看着檢查鍍鉻元素的控制檯有這麼一個錯誤信息:
Uncaught TypeError: Object [object Window] has no method 'webkitRequestAnimationFrame$1'
該方法的調用是在這裏:
void main() {
var maincharacter = new Player(10,10, 70, 70, "red");
var secondCharacter = new Player(400,250, 50,50, "yellow");
player = maincharacter;
sprites = new Set();
randomnumbergenerator = new Random();
window.on.keyDown.add(myKeyDownEvent);
CanvasElement element = query("canvas");
context = element.context2d;
maincharacter.context = context;
secondCharacter.context = context;
maincharacter.type = 'player';
sprites.add(maincharacter);
sprites.add(secondCharacter);
window.webkitRequestAnimationFrame(animate);
}
在這裏:
void animate(num time){
enemyCreator(time);
context.clearRect(0,0,400,400);
for(final sprite in sprites){
if(!sprite.isPlayer()) {
sprite.move(5, 0);
// sprite.isOutside(0);
if(!(sprite.posx<0)){
query('#text').text = " Posx: ${sprite.posx.toString()} Length: ${sprites.length}";
sprite.draw();
} else {
query('#text').text = "Destroyed";
sprites.remove(sprite);
}
} else {
sprite.draw();
query('#text').text = " Time: $counter Length: ${sprites.length}";
}
}
window.webkitRequestAnimationFrame(animate);
}
這是拋出異常的javascript行:
$.window().webkitRequestAnimationFrame$1($.animate)
任何想法?
你可以發佈你正在調用requestAnimationFrame的dart代碼嗎? –