2012-04-21 42 views
2

我寫一個簡單的應用程序來學習一些基本的飛鏢節目,但我想不通的結構和夾雜物 - 我得到一個複製類Point重複類中達特

首先,我有我的主類我叫MouseTrack。它初始化列表並將有一個循環。

#import('dart:html'); 
#import('Eye.dart'); 

class MouseTrace { 
List<Eye> eyes; 
... 
} 

其次,我有一個名爲類,這是應該持有的眼睛是圓的信息。這是很簡單的:

#library('app:eye'); 

#import('dart:html'); // without this one, I get no error but I want to have it to use CanvasRenderingContext2D 

#import('Point.dart'); 

class Eye { 
    Point position; 
    num radius; 

    Eye() : 
     position = new Point() { 
    } 

    void draw(CanvasRenderingContext2D context) { 
    // draws a circle 
    } 
} 

最後

#library('app:point'); 

class Point { 
    num x, y; 

    Point(this.x, this.y); 
} 

我想實現的是3個獨立的類 - 主要,這樣我就可以有在實例(爲簡單起見&尼斯模型),並在在立場(用於存儲位置)。至少我習慣於這樣做。

P.S我知道我可以跳過的類型,但我想它那裏,我想這是有夾雜物,而不是語言問題(要修復它,所以我知道如何正確地做到這一點)。 P.S.S. 我已經削減了一些代碼,這樣你就不用看了一切,但,如果你願意,我會後這一切。

回答

4

問題在於app:eye庫(在Eye.dart文件中)。您導入dart:htmlapp:point庫,但他們兩人的定義Point類。這種情況是無效的。您可以通過不進口dart:html在所有要麼解決它,如果你不需要它,或前綴這些進口中的一個:

#import('dart:html', prefix: 'html'); 
#import('Point.dart'); 

在這種情況下,你將不得不指從dart:html至名使用html.前綴。在你的情況下,如果你想使用CanvasRenderingContext2D類,你將不得不編寫html.CanvasRenderingContext2D

+1

太棒了!不知道這一點。我想我可以簡單地使用dart:Point的Point接口;) – Pijusn 2012-04-22 04:54:14