изменение размера изображения независимо от размера сцены - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть три изображения, и я хочу изменить размер изображения в зависимости от размера сцены (размер по умолчанию 1024x768). После того, как каждое изображение полностью загружено, я вызываю bindableUtils.setter, чтобы установить ширину / высоту при изменении размера сцены, но я не знаю, как сделать указатель или что-то в этом роде. Я использую общедоступную переменную img, но она работает только с последним полным изображением.

Вот мой код:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            import mx.binding.utils.BindingUtils;

            public var img:Image;
            private function setterWidth(newWidth:Number):void
            {
                img.width = img.content.width * newWidth / 1024;
            }
            private function setterHeight(newHeight:Number):void
            {
                img.height = img.content.height * newHeight / 768;
            }

            protected function image_completeHandler(event:Event):void
            {
                img = event.target as Image;
                BindingUtils.bindSetter(setterWidth, this, "width");
                BindingUtils.bindSetter(setterHeight, this, "height");
            }
        ]]>
    </fx:Script>

    <mx:Image id="img1" source="img1.jpg" complete="image_completeHandler(event)" />
    <mx:Image id="img2" source="img2.jpg" complete="image_completeHandler(event)" y="60"/>
    <mx:Image id="img3" source="img3.jpg" complete="image_completeHandler(event)" y="120"/>
</s:Application>

Я не использую для каждого изображения дополнительную функцию bindSetter.

Возможно, моя идея о том, как я могу изменить размер изображения в зависимости от размера сцены, неверна. Как бы вы это сделали?

Ответы [ 2 ]

3 голосов
/ 06 апреля 2011
<fx:Script>
    <![CDATA[
    ]]>
</fx:Script>

<mx:Image id="img1" source="img1.jpg" scaleX="{width/1024}" scaleY="{height/768}" />
<mx:Image id="img2" source="img2.jpg" scaleX="{width/1024}" scaleY="{height/768}" y="60"/>
<mx:Image id="img3" source="img3.jpg" scaleX="{width/1024}" scaleY="{height/768}" y="120"/>
0 голосов
/ 06 апреля 2011

вы пробовали percentWidth и percentHeight?

...