我正在使用mx:Resize
效果来更改 Flex 中图像的宽度(让高度自行处理),但我希望图像保持垂直居中在页面上。虽然我可以计算照片的纵横比,并计算出新的 y 值以使其保持居中,但我也必须包含一个mx:Move
效果,我希望 Flex 有一个更简单的方法。
这是一个照片库,其中图像在运行时加载并交换,所以我真的很想避免每次触发 updateComplete 事件时重新计算纵横比和垂直位置。好像太乱了
我尝试将我的图像放在一个mx:VBox
withverticalAlign="middle"
中,认为该框会为我完成所有居中,但这似乎只在应用程序首次启动时发生 - 我需要它在效果播放期间逐渐调整位置(到即使在中途也保持中心)。
这是一个精简的示例(不起作用):
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="600">
<mx:Resize id="fxResize" target="{imgPhotoA}" widthTo="350" duration="500" />
<mx:Button x="10" y="10" label="Resize" click="fxResize.play()" />
<mx:VBox id="boxPhotoA" x="100" y="20" height="500" width="350" verticalAlign="middle" borderStyle="solid" verticalScrollPolicy="off" horizontalScrollPolicy="off">
<mx:Image id="imgPhotoA" width="60" maintainAspectRatio="true" source="http://sstatic.net/so/img/logo.png"/>
</mx:VBox>
</mx:Application>
我是 Flex 的新手,如果我做了一些愚蠢的事情,请道歉。查看 Adobe 示例照片库的来源并没有帮助我实现解决方案 - 我不认为他们使用效果,而是创建自己的例程来更改大小和位置。代码看起来很可怕!