1

Flash を使用して手描きのベクター パスを作成し、それを .fxg 画像としてエクスポートし、Illustrator にインポートして .svg として保存することを試しています。それらを Flash から直接 svg としてエクスポートできればいいのですが、それは別の問題です。

レイヤー上にパスを作成し、それをシンボルに変換しない場合、単純な SVG グループが作成されるため、塗りと線の属性を簡単に更新できますが、そのパスをグラフィック シンボルに変換すると、次のようになります。複雑なシンボル リンクであり、塗りつぶしと線の属性にアクセスできないようです。シンボルは読み取り専用ですか? また、リンクされた sybmol をどのように選択して更新しますか?

説明するのに役立つ疑似svgがいくつかあります:

<svg>
<symbol id="btn_continue/>
<g>
  <path></path>
</g>
</symbol>
<g id="continue">
    <use xlink:href="#btn_continue" width="133.95" height="133.95" x="-6.975" y="-126.975" transform="matrix(1 0 0 -1 694.2998 409)" overflow="visible">
    </use>
</g>
</svg>

シンボルを更新できる場合は、次のように塗りつぶしをターゲットにして更新できると思います。

d3.select("#continue").select("#btn_continue").selectAll("path").attr("fill","#990000");

これは効果がありません。また、クロムのコンソール内のシンボルの属性を更新しようとしましたが、どちらも効果がなく、読み取り専用であると思われます。これを確認できますか?どうにかしてシンボルのクローンを作成し、分割してパス属性を編集することは可能でしょうか? シンボルに対して変換を実行できることがわかりました-スケーリング、回転、移動-すべて機能します-色を変更するためにcolorMatrix変換を実行できますか?!

4

1 に答える 1

1

パスは<use>要素の子ではなく、シンボルの子であるため、次のようなものが必要です

d3.select("#btn_continue").selectAll("g").selectAll("path").attr("fill","#990000");
于 2013-08-12T16:09:17.123 に答える