我创建了一个像 Viewstack 一样工作的组件,但下一个索引组件从四个侧面之一滑入。我已经让它工作得很好,可以接受使用,但我想让它更有效率。
现在,我使用 Canvas 作为基础组件,使用 ImageSnapshot ( new Bitmap( ImageSnapshot.captureBitmapData( this ) )
) 创建当前视图的快照,并在索引更改时将新索引滑动到该图像的顶部。
我基本上是在寻找有关如何以更好的方式做到这一点的建议。通过在组件加载后和幻灯片发生后获取图像,我已经将最初的厌倦移动降到了最低限度,但我们通常使用它来转换网格,因此在第一张或前几张幻灯片上它几乎总是很慢。
到目前为止,这是其中的一些内容:
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。
如果需要,我会发布更多内容,但我想将问题降到最低限度,这几乎可以概括。
任何帮助是极大的赞赏!我真的想让这个组件表现得更好。此外,这必须使用 Flex 3 来完成