Я использую эффект 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(), теперь вы сообщили мне об этом! –
Я понял, что мне нужно, чтобы изображение постоянно корректировалось, чтобы сохранить его центральным, а не только в конце перехода эффекта. Сожалею. –