- 締切済み
SWiSHのスクリプトについて
Flashでなくて申し訳ありません。 SWiSHを使ってFlashを作っています。 スクリプトを使ってオブジェクトの色を取得したいのですがヘルプの通り書いているつもりですが言うことを聞いてくれません。 手順の通り作業をすると「エラー:次の関数またはメンバーが見つかりません "Color" 次のステートメント:」とエラーが表示されます。 SWiSHに詳しい方お助けください。 [手順] (1)四角オブジェクトをはる (2)スプライトに変換する (3)名前を「myshape」に変更する (4)次のスクリプトを書く var mycolor = new Color("myclip"); trace(myclip.getRGB()); (5)実行する
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- DPE
- ベストアンサー率85% (666/776)
Flash のユーザーなので SWiSH での確認はできないのですが、SWiSH のスクリプトも Flash と同じところがあると思います。 var mycolor = new Color("myclip"); で、ムービークリップ( SWiSH ではスプライトと呼ばれているものに相当すると思います)”myclip”の色を操作する Color オブジェクト、”mycolor”が生成されます。 普通に考えますと、getRGB とは Color オブジェクトが持っているメソッド(関数のようなもの)の1つであって、ムービークリップ myclip の中で定義されている関数ではありません。 従って、trace アクションは trace( mycolor.getRGB() ); ではないでしょうか。 また、スプライト”myshape”の色を制御する Color オブジェクトを作るなら、 var mycolor = new Color("myshape"); だと思いますが、いかがでしょう。 Flash では、Color オブジェクトのメソッドの1つである getRGB は、同じく Color オブジェクトが持っている setRGB というメソッドと対になっており、最後に実行した setRGB で設定されたRGB値を取得するものです。 例えば、赤( 0xFF0000 )1色で塗られた四角いムービークリップ clip があったとして、 var clr = new Color( "clip" ); trace( clr.getRGB() ); というスクリプトを実行しても、0が返ってくるだけで、ムービークリップの色である 0xFF0000 の情報は取得できません。 しかし、 //Colorオブジェクトの生成 var clr = new Color( "clip" ); //ムービークリップを赤く着色 clr.setRGB( 0xFF0000 ); //ムービークリップの色を取得 trace( clr.getRGB() ); このように予め setRGB でムービークリップに色を付けておくことで、getRGB でその色を取得できるようになります。 ( getRGB は 10 進数表記で返ってくるので、16 進数に直す処理も必要です) SWiSH の getRGB も Flash と同じ機能かどうかは分かりませんが、ご参考までに。
お礼
お礼画面がエラーになっていたので再書き込みです。 2度書き込みになっていたらゴメンナサイ。 御礼が遅くなって申し訳ありません。 早速月曜日に確認します。 ありがとうございました!