我使用mx:Resize
效果改變了Flex中圖片的寬度(讓高度看起來像自己),但我希望圖片在頁面上保持垂直居中。雖然我可以計算照片的寬高比,並計算出新的y值以保持居中,但我也必須包含mx:Move
效果,並且我很樂意Flex更簡單一些。在Flex中調整圖片大小,同時保持中心位置
這是一個照片庫,在運行時加載圖像並進行交換,所以我真的希望避免每次updateComplete事件觸發時重新計算寬高比和垂直位置。看起來很混亂。
我試圖把我的圖片放在mx:VBox
與verticalAlign="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示例照片庫的來源並沒有幫助我實現一個解決方案 - 我不認爲他們使用效果,但創建自己的例程來改變大小和位置。代碼看起來很可怕!
恐怕沒有工作。圖像的垂直位置不會移動。我會讀更多關於updateDisplayList()方法,現在你讓我意識到了! – 2010-03-04 17:58:20
我意識到我需要不斷調整圖像以保持中心位置,而不僅僅是在效果轉換結束時。抱歉。 – 2010-03-05 13:46:17