2012-11-16 26 views
1

我在使用畫布編寫飛鏢的基本應用程序,它基本上有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) 

任何想法?

+1

你可以發佈你正在調用requestAnimationFrame的dart代碼嗎? –

回答

3

嘗試

window.requestAnimationFrame(animate); 

代替。

相關問題