我正在编写一个简单的应用程序来学习一些基本的 Dart 编程,但我无法计算出结构和包含的内容 - 我得到了一个重复的类 Point
首先,我有一个名为MouseTrack 的主类。它初始化列表并将有一个循环。
#import('dart:html');
#import('Eye.dart');
class MouseTrace {
List<Eye> eyes;
...
}
Run Code Online (Sandbox Code Playgroud)
其次,我有一个名为Eye的类,它应该将眼睛的信息保存为一个圆圈。这很简单:
#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
}
}
Run Code Online (Sandbox Code Playgroud)
最后点:
#library('app:point');
class Point {
num x, y;
Point(this.x, this.y);
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的是 3 个独立的类 - main、Eye和Point,所以我可以在main 中有Eye 的实例(为了简单和漂亮的模型)和Point in Eye 的实例(用于存储位置)。至少我习惯这样做。
PS 我知道我可以跳过类型,但我想要它在那里,我想这是包含而不是语言的问题(并且想要修复它,所以我知道如何正确地做到这一点)。PSS 我剪掉了一些代码,这样你就不必阅读所有内容,但是,如果你愿意,我会全部发布。
问题出在app:eye库中(在Eye.dart文件中)。您导入dart:html和app:point库,但它们都定义了一个Point类。这种情况是无效的。您可以通过根本不导入来解决它dart:html,如果您不需要它,或者为这些导入之一添加前缀:
#import('dart:html', prefix: 'html');
#import('Point.dart');
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须dart:html使用html.前缀来引用名称。在您的情况下,如果您想使用CanvasRenderingContext2D该类,则必须改为编写html.CanvasRenderingContext2D。
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |