动画子元素中的Flex 4(Animating child elements in Flex 4)

2019-10-17 23:32发布

任何人都知道如何制作动画Flex 4中的布局的子元素的大小/位置?

例:

我有一个自定义布局的列表组件。 我想,当我改变孩子的元素,我希望他们给自己的动画移动到新位置的位置。

Answer 1:

目前还没有内置的方式,也没有计划,使在Flex 4的动画布局:/。

我做了什么来实现这一目标是动画布局“setLayoutBoundsPosition”和“setLayoutBoundsSize”的设置。 因此,而不是建立在布局的每个项目,这实际上将设置宽度和高度明确了“移动”和“调整”效果,设置矩阵。 然后确保布局不会被再次无效(如果直接设置宽度/高度会发生),或者你可能开始得到一个无限循环。 您可能需要做一些技巧来得到这个工作的权利(我没有得到它与星火效果非常正确工作,但它真的很容易与中间人/ Tweenmax做,因为他们有插件和这样使用“setActualSize “或‘setLayoutBoundsSize’等)。

我用TweenMax动画布局,而且他们有一些插件来使这个容易。 TweenMax明显看起来像快3倍(20个FPS VS 7FPS)比星火效果也一样,所以我与去。 它看起来是这样的,在updateDisplayList布局的方法。

TweenMax.to(child, duration, {setLayoutBoundsPosition:{x:childX * i, y:childY * i}});



Answer 2:

就像你通常会...

public override function updateDisplayList(width:Number, height:Number) : void {
    for (var i:uint = 0; i < target.numElements; i++)
    { 
       var resizeElement:Resize = new Resize(target.getElementAt(i) as IVisualElement);
       resizeElement.widthTo = 500;
       resizeElement.play();
    }
}


文章来源: Animating child elements in Flex 4