私は Dart を使用するのは初めてで、svg で動作する JavaScript コードをいくつか移植しようとして、いくつかのセグメントを含むパスを作成しましたが、その API がどのように機能するかを理解するのに苦労しています.
次のコードは実行されませんが、おそらく私がやりたいことを示しています。
Element i = query("#divsvg");
svg.SvgSvgElement s = new svg.SvgSvgElement();
i.append(s);
svg.PathElement p = new svg.PathElement();
p.pathSegList.add(
p.createSvgPathSegArcAbs(200, 200, 50, 50, 180, false, false)
);
s.children.add(p);
ただし、ドキュメントから理解できる限り:
- createSvgPathSegArcAbs は、親のないパス セグメントを作成します
- pathSegList は final であるため、構築後に追加することはできません
- PathElement コンストラクターは引数を取らないようです
Dart の仕組みや svg ライブラリのドキュメントに何か欠けていますか? ドキュメント、グーグル、テストを見て数時間を費やしましたが、これをカバーしていると思われるものは何も見つかりませんでした (テストは、API ではなく HTML コードを使用して何かを作成しているようです)。
私を正しい方向に向けてくれるものは何でも大歓迎です!
アップデート
私は関数を調べるのにより多くの時間を費やしました.pathSegListの「ファイナリティ」は、それが変更されるのを妨げるべきではなく(constではありません)、単に置き換えられました.
ただし、"add" などのさまざまな関数は、呼び出そうとすると例外を除いて明示的に実装されますが、いくつかの関数 (append など) はネイティブに実装されます。
デバッガによると:
p.pathSegList.append(
p.createSvgPathSegArcAbs(200, 200, 50, 50, 180, false, false)
);
パス セグメントを追加しますが、これは 'innerHTML' 属性にも最終ページの HTML にも存在しません...
私は、svg サポートは単純に「完成」していないと考え始めており、canvas や WebGL に移植することに少し誘惑されています。