nw.jsでデスクトップアプリを作る(16) - SVG pathをgeometryに変換する(6)

公開:2015-02-28 20:52
更新:2017-07-29 13:17
カテゴリ:nw.js,svg,javascript,nw.jsでデスクトップアプリを作る

昨日のSVGアニメーションだが、FirefoxとIEでは動作しなかった。原因はSVGのお作法にしたがってなかったから。読み取りのみのプロパティに値をセットしようとしていたから。なぜかChromeは代入できたんだよねぇ。

規格を読むとpathSegListは読み取り専用なのでChromeの動きがおかしいことになるのかな。

interface SVGAnimatedPathData {
  readonly attribute SVGPathSegList pathSegList;
  readonly attribute SVGPathSegList normalizedPathSegList;
  readonly attribute SVGPathSegList animatedPathSegList;
  readonly attribute SVGPathSegList animatedNormalizedPathSegList;
};
    

実際には「m」に相当するSVGPathSegMovetoRelを作るためのファクトリメソッドcreateSVGPathSegMovetoRel()があるので、それで作ったものに変更した値をセットし、pathSegListreplaceItem()でおきかえなければいけないようだ。

これでOKかなと思ったのだがIE11では駄目であった。まあこのアプリはnw.js用なのでクロスブラウザにする必要は全くないのだが、ちょっと気になったので。