ビュースタックのように機能するコンポーネントを作成しましたが、次のインデックスコンポーネントは4つの側面のいずれかからスライドインします。十分に機能しているので、使用しても問題ありませんが、より効率的にしたいと思います。
現在、ベースコンポーネントとしてCanvasを使用しており、ImageSnapshot(new Bitmap( ImageSnapshot.captureBitmapData( this ) )
)を使用して現在のビューのスナップショットを作成し、インデックスの変更時にその画像の上に新しいインデックスをスライドさせます。
私は基本的にこれをより良い方法で行う方法についての提案を探しています。コンポーネントがロードされた後、スライドが発生した後に画像を撮影することで、最初の翡翠の動きを最小限に抑えましたが、通常はこれをグリッドの遷移に使用するため、最初または最初の2、3枚のスライドではほとんどの場合遅くなります。
これまでのところ、その一部は次のようになっています。
private function creationComplete(e:Event):void
{
tmpImage.source = new Bitmap( ImageSnapshot.captureBitmapData( this ) );
}
public function set selectedIndex(value:int):void
{
if(_selectedIndex == value + 1)
return;
_selectedIndex = value+1;
var obj:UIComponent;
tmpImage.height = height;
tmpImage.width = width;
tmpImage.visible = true;
tmpImage.x = 0;
//tmpImage.includeInLayout = true;
for (var i:int = 1; i < numChildren; i++)
{
obj = UIComponent(getChildAt(i));
//obj.x = width;
if(i == _selectedIndex){
obj.visible = true;
objDisplay = obj;
}
else
obj.visible = false;
}
mv1.target = tmpImage;
mv2.target = objDisplay;
switch ( direction )
{
// X/Y sliding logic
}
parEfect.play();
tmpImage.source = new Bitmap( ImageSnapshot.captureBitmapData( this ) );
}
ご参考までに、画像にはキャンバスのインデックス0を使用しており、カスタムのselectedIndexを1オフセットしています。
必要に応じてもっと投稿しますが、質問を最小限に抑えたいので、これでほぼ要約できます。
どんな助けでも大歓迎です!このコンポーネントのパフォーマンスを向上させたいと思っています。また、これはFlex3を使用して実行する必要があります