1

SkinnableContainer のスキンがあります。
スキンには、元の contentGroup と s:BitmapImage のみが背景として含まれています。
幅と高さのコンテンツに応じて背景画像ストレッチャーが表示されます。
使用される画像は、透明な領域を持つ .png です。

hitarea を作成するには、次のアルゴリズムを使用しました:
http://www.webverwirklichung.com/en/blog/programming/flex/creating-hitarea-png-image-transparent-alpha-regions-flex

SkinnableContainer を (スキン内の画像と共に) 引き伸ばし始めるまで、すべてが正常に機能しています。
画像用のscale9Gridがあります。

問題は、画像を引き伸ばすときに、画像の bitmapData が同じ (同じ幅と高さ) であることです。したがって、scale9Grid アプリケーションの画像の bitmapData を取得する必要があります。

コンポーネントの背景は画像で、透明な領域がいくつかあります。画像の表示されている部分のみをクリックすることができます。画像は、contentGroup のコンテンツに従って引き伸ばされます。

アドバイスが必要です。

4

1 に答える 1

0

この方法を使ってBitmapData.draw()みませんか?

コンテナのサイズが変更され、9スライスのスケーリングが適用された後(または適切なトリガーが何であれ)、次のようにします。

var b:BitmapData = new BitmapData(container.width, container.height);
b.draw(container);

次に、この新しいビットマップを、ヒット領域を作成するアルゴリズムで使用します。

于 2012-08-10T21:29:23.323 に答える