Flex 4 - 9 scalling не работает во время выполнения (хотя работает во Flash) - PullRequest
1 голос
/ 10 июля 2010

Я создал 9-масштабированный фон в Flash CS5, который отлично работает в Flash CS5

Но когда я импортировал его как встроенный графический объект во Flex и изменил размеры во время выполнения, 9-scalling не работает.1003 *

Вот мой код.

<?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[
           import mx.events.FlexEvent;



           [Embed(source='mgraphic.swf', symbol='Bck')] 
           [Bindable] 
           public var imgCls:Class;


           protected function button1_clickHandler(event:MouseEvent):void
           {
                nineScalled.width = 100 + (this.width - 100) * Math.random(); 
                nineScalled.height = 100 + (this.height - 100) * Math.random();
           }

      ]]>
 </fx:Script>
 <s:layout>
      <s:VerticalLayout verticalAlign="middle" horizontalAlign="center"/>
 </s:layout>

 <s:Button label="change" click="button1_clickHandler(event)"/>
 <s:BorderContainer id="nineScalled" backgroundImage="{imgCls}" backgroundImageFillMode="scale" width="469" height="187"/>
 </s:Application>

Вот файл fla моего 9-масштабного файла http://rapidshare.com/files/405441500/9scalledgraphic.fla

Спасибо

1 Ответ

0 голосов
/ 15 марта 2011

, если у вас есть спрайт / мувиклип, который использует 9slice-scaling, и вы масштабируете эту вещь напрямую, она работает хорошо. Если это дочерний элемент другого спрайта / мувиклипа / чего-либо другого, и вы масштабируете его, 9-масштабное масштабирование вашего ребенка больше не работает.

Обходной путь для этого обычно состоит в написании функций, которые принимают запросы на изменение размера и затем изменяют размер дочерних элементов, которые напрямую используют 9slice-scaling, вместо изменения самих размеров.

...