私は最初のFlashプロジェクトに取り組んでおり、プリローダーの場合、ロードされたパーセンテージに基づいて非常に単純なグラデーションを実行したいと思います。プリローダーは「77%loaded ...」と表示します。ここで、77という数字はpercentLoadedと呼ばれる動的テキストインスタンスです。グレースケールで、percentLoadedのtextColorを#000000から#FFFFFFへのグラデーションで変更したいと思います。
したがって、私は単純に行うことはできません:
percentLoaded.textColor=(currentValue/100)*0xFFFFFF;
これは、textColorをFFFFFFの倍数に変換するだけですが、3つの別個のコンポーネントではないため、色を出力します。現在、私が持っているものは次のとおりです。
percentLoaded.text=currentValue.toString();
percentLoaded.textColor=rgb2hex((currentValue/100)*255, (currentValue/100)*255, (currentValue/100)*255);
ここで、「rgb2hex」はクラス内でそのように定義された関数です。
public function rgb2hex(r:Number, g:Number, b:Number) {
return '0x'+(r << 16 | g << 8 | b).toString(16).toUpperCase();
}
ただし、これが実際にフォントの色を変更しているようには見えません。flash.text.TextFieldとflash.display.MovieClipをインポートしましたが、他に何かが足りないかどうかわかりません。これは文字列の連結で行うのが簡単でしょうか?または、currentValue / 100で何かが起こっていて、それを数値として渡すことはありますか?
興味があれば、ここでrgb2hexのコードを見つけました。
ありがとう!