答えて
はここでも単純な実装です: -
はここ(YMMVをmxmlcを使用して)私のために働いたのBitmapDataページに与えられた例の修正です。あなたは、draw()のbitmapDataメソッドを使用してステージのスナップショットを撮ってから、getPixel()をマウスの下のピクセルに使用するだけです。この利点は、指定されたビットマップだけでなく、ステージに描画されたものをサンプリングできることです。
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.*;
stage.addEventListener(MouseEvent.CLICK, getColorSample);
function getColorSample(e:MouseEvent):void {
var bd:BitmapData = new BitmapData(stage.width, stage.height);
bd.draw(stage);
var b:Bitmap = new Bitmap(bd);
trace(b.bitmapData.getPixel(stage.mouseX,stage.mouseX));
}
希望すると便利です。
編集:
この編集されたバージョンは、単一BitmapData
を使用し、Bitmap
を作成する不要なステップを削除します。 MOUSE_MOVE
の色をサンプリングする場合、これはメモリの問題を避けるために不可欠です。
注:カスタムカーソルのスプライトを使用している場合は、「状態」や他のかわりに、その下に何のカスタムスプライトの色をサンプリングすることがあります以外のオブジェクトを使用する必要があります。画像、あなたは(あなたが権限を持って提供された)任意のビットマップ描画可能なオブジェクトからピクセルのカラー値を取得することができます::
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.*;
private var _stageBitmap:BitmapData;
stage.addEventListener(MouseEvent.CLICK, getColorSample);
function getColorSample(e:MouseEvent):void
{
if (_stageBitmap == null) {
_stageBitmap = new BitmapData(stage.width, stage.height);
}
_stageBitmap.draw(stage);
var rgb:uint = _stageBitmap.getPixel(stage.mouseX,stage.mouseY);
var red:int = (rgb >> 16 & 0xff);
var green:int = (rgb >> 8 & 0xff);
var blue:int = (rgb & 0xff);
trace(red + "," + green + "," + blue);
}
BitmapData LiveDoc Pageで数分で移動する必要があります。 Bitmap変数に画像を読み込んだらBitmapDataプロパティにアクセスできます。画像にMouse Click Eventリスナーを追加し、BitmapData::getPixelを使用します。 getPixelの例は、uint応答をrgbの16進コードに変換する方法を示しています。
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
public class BitmapDataExample extends Sprite {
private var url:String = "santa-drunk1.jpg";
private var size:uint = 200;
private var image:Bitmap;
public function BitmapDataExample() {
configureAssets();
}
private function configureAssets():void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function completeHandler(event:Event):void {
var loader:Loader = Loader(event.target.loader);
this.image = Bitmap(loader.content);
this.addEventListener(MouseEvent.CLICK, this.clickListener);
}
private function clickListener(event:MouseEvent):void {
var pixelValue:uint = this.image.bitmapData.getPixel(event.localX, event.localY)
trace(pixelValue.toString(16));
}
}
}
これは、FlexまたはMX固有ではありません
private const bitmapData:BitmapData = new BitmapData(1, 1);
private const matrix:Matrix = new Matrix();
private const clipRect:Rectangle = new Rectangle(0, 0, 1, 1);
public function getColor(drawable:IBitmapDrawable, x:Number, y:Number):uint
{
matrix.setTo(1, 0, 0, 1, -x, -y)
bitmapData.draw(drawable, matrix, null, null, clipRect);
return bitmapData.getPixel(0, 0);
}
あなたは簡単につかむことができステージまたはあなたのmx:Imageインスタンスからのピクセル。これは、ステージ全体(または描画可能なオブジェクト)を描画するよりも多くの方が効率的だし、瞬時に視覚的なフィードバックのためのMouseEvent.MOUSE_MOVEにフックアップするのに十分な高速である必要があります。
IMOこれは間違いなく原因、それはステージ全体を描画し、より正確に質問に答えるないという事実にも優れ答えです。 – Allar
- 1. AS3のFlashコンテキストを判断する最も良い方法は?
- 2. リモートXMLのコピーを取得する最も良い方法は?
- 3. ファイルのMIMEタイプを取得する最も良い方法
- 4. アンドロイドリストビューで場所を取得する最善の方法
- 5. Flash AS3独立したクラスを伝達する最も良い方法は?
- 6. CDialogBarでマウスがクリックされた場所を確認します。
- 7. MySQLのXクリック/日を保存する最も良い方法
- 8. Android - onResume()の新しい場所を取得する最善の方法
- 9. AS3で色のバリエーションを取得する
- 10. iPhone SDKから最も近い塔の場所を取得するためのSIMカードへのアクセス方法
- 11. NumPyで乱数を取得する最も良い方法は何ですか?
- 12. オンラインで署名を取得する最も良い方法は何ですか?
- 13. PHPでHashTableを取得する最も良い方法は何ですか?
- 14. 写真のファイル拡張子をPHPで取得する最も良い方法
- 15. MATLABマウスのクリック座標を取得する方法
- 16. JMapViewerワールドマップからマウスのクリック位置を取得する方法
- 17. ユーザロケーションサーバ側を取得する最も良い方法は何ですか
- 18. Linux上でマシンIDを取得する最も良い方法は?
- 19. jQueryで複数の画像の色を変更する最も良い方法
- 20. ファイルの後半のInputStreamを取得する最も良い方法は?
- 21. ファイルを最後に変更した属性を取得する最も良い方法
- 22. 反応したネイティブ(iOS)でデバイスのロケールを取得する最も良い方法は何ですか?
- 23. キャンバスをクリック - クリックした場所に応じてオプションのリストを取得
- 24. SQLアドレスフィールドからニューヨーク市のアドレスを取得する最も良い方法
- 25. asp.netのhttpリクエストからXMLを取得する最も良い方法は?
- 26. PyQT5をマウスでクリックしてDOM要素を取得する方法QWebView
- 27. OSGiバンドルコンテキストを取得するための最良の方法は?
- 28. Sphinx(PHP)から情報を取得する最も良い方法は?
- 29. divの場所を取得してハイライト表示する方法
- 30. GoogleマップAPIからリストで最も近い場所の詳細を取得
私はあなたを殺すつもりです!!!!!!!!!!! 誰でも見る理由はありますか?;-) ヒント:使用する前に常にstackoverflowコードをチェックしてください:-) –
私はいくつかの簡単な境界をチェックして、あなたのx yはステージ領域の外側にある。 –
1つのピクセル値を取得するためにステージ全体を描画する必要はありません。 BitmapDataを1x1にして、その描画呼び出しに行列とclipRectを渡します。 – darscan