イラストレータ10とCS以降での色の扱い

10の場合はcolorオブジェクトがあってその子として色空間のオブジェクトがある。
もう10はインストールしていないので次のサンプルが動くかどうかわからないが、塗りのカラーの取得は次の通り。

fc =activeDocument. pathItems[0].fillColor.color;
switch ( fc ){
    case ColorType.CMYK:
        oCyan = fc.CMYKColor.cyan;
        oMagenta = fc.CMYKColor.magenta;
        oYellow = fc.CMYKColor.yellow;
        oBlack = fc.CMYKColor.black;
        break;
    case ColorType.RGB:
        //RGB時の値の取得
        break;
    case ColorType.GRAY:
        //グレースケール時の値の取得
        break;
    case ColorType.SPOT:
        //スポットカラー時の処理
        break;
    case ColorType.GRADIENT:
        //グラデーション時の処理
        break;
    case ColorType.PATTERN:
        //パターン時の処理
        break;
    case ColorType.NONE:
        //塗りなしのときは何もしない
}

CS以降ではcolorオブジェクトがなくなった。上記のサンプルは次のようになる。ただし書類設定がCMYKの場合RGBColorとは返してくれなかった(CMYKColorとして返した)。

fc = activeDocument.pathItems[0].fillColor
switch (fc.constructor.name){
    case "CMYKColor":
        oCyan = fc.cyan;
        oMagenta = fc.magenta;
        oYellow = fc.yellow;
        oBlack = fc.yellow;
        break;
    case "RGBColor":
        //RGB時の値の取得
        break;
    case "GrayColor":
        //グレースケール時の値の取得
        break;
    case "SpotColor":
        //スポットカラー時の処理
        break;
    case "GradientColor":
        //グラデーション時の処理
        break;
    case "PatternColor":
        //パターン時の処理
        break;
    case "NoColor":
        //塗りなしのときは何もしない
}

塗り無しの場合、GrayColorが返って来た。時間があったら調べておこう。