PDA

Просмотр полной версии : Как работает scaleX(Y) в mx:UIComponent


kosheev_me
21.09.2011, 19:25
Вот с какой загадкой столкнулся. В контейнере лежит UIComponent, по щелчку мыши пытаюсь увеличить его, меняя его scaleX. И вот загадка... Его ширина уменьшается вместо того чтобы увеличиться...
Вот какой у меня год:

<?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" minWidth="955" minHeight="600">

<fx:Script>
<![CDATA[
protected function bordercontainer1_clickHandler(event:MouseEvent):void
{
trace("--------CLICK--------");
wc.scaleX += 1;
}

protected function wc_enterFrameHandler(event:Event):void
{
trace(wc.width);
}

]]>
</fx:Script>

<s:BorderContainer width="100%" height="100%" click="bordercontainer1_clickHandler(event)">
<mx:UIComponent id="wc" width="100%" height="100%" enterFrame="wc_enterFrameHandler(event)" />
</s:BorderContainer>
</s:Application>

Грубо говоря, в этом приложении выводиться текщая ширина компонента с идентифитором wc. При каждом щелчке мыши увеличивается его scaleX. По идее ширина wc должна увеличиваться, но она уменьшается.
Это то, что выводится в консоль:
953
953
953
--------CLICK--------
953
476.5
476.5
476.5
--------CLICK--------
476.5
317.6666666666667
317.6666666666667
317.6666666666667
--------CLICK--------
317.6666666666667
238.25
238.25
238.25
--------CLICK--------
238.25
190.6
190.6
190.6
--------CLICK--------
190.6
158.83333333333334
158.83333333333334
158.83333333333334
--------CLICK--------
158.83333333333334
136.14285714285714
136.14285714285714
136.14285714285714

Почему же ширина компонента уменьшается?
Помогите разобраться, весь мозг сломал....

aux
22.09.2011, 02:24
попробуй вместо относительных размеров заюзать абсолютные (не 100% а 100 пикселей например) мне кажется что AVM воспринимает прибавление к 100% как знак начать обратный отсчет и выдает 99%