電子書籍の厳選無料作品が豊富!

テキストフィールドかの色情報からムービークリップの色が変わるようにしたいです。ActionScript3.0です。

●colBox2というテキストフィールドがあり、bmpData(BitmapData型)という場所で取得したRGB色情報が表示されるようになっています。(例えば赤ならFF0000というように)。
var colBox2:TextField = new TextField();
colBox.x = 450;
addChild(colBox2);

●bmpData上でマウスを上げたらその場所の色情報がcolBox2上に表示されて、colBox2上のテキストを読み取って、boardというムービークリップの色が変わるようにしたいのですが、エラーこそ出ないですが、boardの色は変わらないです。どうずれば変更できるのでしょうか?宜しくお願いします。

var colorTrans:ColorTransform = new ColorTransform();
var trans:Transform = new Transform(board);
trans.colorTransform = colorTrans;

copy.addEventListener(MouseEvent.MOUSE_UP,mouseUp)
function mouseUp(evt:MouseEvent){
var pixelValue:uint = bmpData.getPixel(evt.stageX,evt.stageY);
colBox2.text = pixelValue.toString(16);//取得したカラーを代入
colorTrans.color = "0x" + colBox2.text as uint;
trans.colorTransform = colorTrans;
}

A 回答 (1件)

そもそも 関数 mouseUp 内のスクリプトは


なぜそんなにまわりくどいの(遠回りなの)でしょうか?

 色を数値にして
  その数値を文字列にして
   その文字列を数値にして
    その数値を色にする

そんな遠回りをせずに普通に

 色を数値にして
   その数値を文字列にする
   また その数値を色にする

で良いのではないでしょうか?
↓つまり↓

function mouseUp(evt:MouseEvent) {
var pixelValue:uint = bmpData.getPixel(evt.stageX,evt.stageY);
colBox2.text = pixelValue.toString(16);//取得したカラーを代入
colorTrans.color = pixelValue;
trans.colorTransform = colorTrans;
}



あえてご質問のようにまわりくどくする場合は
次のように↓するとか,

function mouseUp(evt:MouseEvent) {
var pixelValue:uint = bmpData.getPixel(evt.stageX,evt.stageY);
colBox2.text = pixelValue.toString(16);//取得したカラーを代入
colorTrans.color = uint("0x" + colBox2.text);
trans.colorTransform = colorTrans;
}

または,
次のように↓するとか,

function mouseUp(evt:MouseEvent) {
var pixelValue:uint = bmpData.getPixel(evt.stageX,evt.stageY);
colBox2.text = pixelValue.toString(16);//取得したカラーを代入
var color_num:uint = new uint("0x" + colBox2.text)
colorTrans.color = color_num;
trans.colorTransform = colorTrans;
}

ですかね。
    • good
    • 0
この回答へのお礼

返答有り難うございます。正にそのとおりですね。回りくどくしなくても素直に変換すればよかったです。うまくいきました。お礼申し上げます。

お礼日時:2010/10/28 15:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!