feeds2012/11/07カテゴリー:JavaScriptEaselJSのPointクラスをFlashライクに拡張しようTweet現在のEaselJSのPointクラスは、まだバーションが0.50であることもあり、必要最小限の機能しか定義されていません。JavaScriptは、定義済みのオブジェクトでもprototypeを通して拡張することができるので、勉強も兼ねてEaselJSのPointクラスをActionScript3.0と同様に扱えるように拡張してみました。ファイルをダウンロードできるようにしていますので、よろしければご自由にお使い下さい。point-ex.js下記のリンクより、EaselJSのPointクラスを拡張するpoint-ex.jsをダウンロードして頂けます。ライセンスフリーですので、商用でもご自由にお使い下さい。Download(zip)GitHubpoint-ex.jsの読み込みまず、HTMLのhead領域で下記のように記述し、point-ex.jsのJavaScriptファイルを読み込みます。EaselJSのファイルよりも後に読み込むようにして下さい。これでEaselJSのPointクラスでもActionScript3.0と同様の機能が使えるようになります。getLength()ActionScript3.0では、ベクトルの長さをlengthプロパティで取得できますが、JavaScriptでは古いブラウザでアクセサがサポートされていないため、getLengthメソッドとして定義しました。getLength()は、ベクトルの長さを数値で返します。ver0.7では、lengthをgetterで定義しました。そのため、lengthはAS3と同様に読み取り専用のプロパティとして使用できます。v0.7では、getLength()をDeprecated(将来廃止予定)としていますので、lengthプロパティを使用するようにして下さい。add()add()は、現在のベクトルに引数で渡されたPointインスタンスのベクトルを加算して、新しいPointインスタンスとして返します。subtract()subtract()は、現在のベクトルから引数で渡されたPointインスタンスのベクトルを減算して、新しいPointインスタンスとして返します。equals()equals()は、現在のPointインスタンスの座標が引数で渡されたPointインスタンスの座標と等しいかをBool値で返します。等しくない場合はfalseを返します。offset()offset()は、現在のPointインスタンスの座標を指定した量だけオフセットします。第1引数でx座標のオフセット量、第2引数でy座標のオフセット量を指定します。normalize()normalize()は、ベクトルの長さが引数で渡された値となるように現在のPointインスタンスの座標を変更します。Point.distance()Point.distance()は、引数で渡された2つのPointインスタンスの距離を数値で返します。2引数で距離を測りたいPointインスタンスを渡します。distance()は、staticメソッドです。2引数で渡されたPointインスタンス間の座標をPointインスタンスで返します。第3引数で2つのPoint間の比率を数値で指定します。第3引数が1に近いほど第1引数のPointに近づき、0に近いほど第2引数のPointに近づきます。interpolate()は、staticメソッドです。Point.polar()Point.polar()は、ベクトルの長さと角度を座標に変換してPointインスタンスで返します。第1引数でベクトルの長さ、第2引数で角度をラジアン値で指定します。polar()は、staticメソッドです。