2015-01-14 3 views
-1

MultiDPIBitmapSource в BitmapFill не работает.MultiDPIBitmapSource в BitmapFill не работает

Вот мой код:

` 
<s:Rect id="background2" left="0" right="0" top="0" bottom="0" percentWidth="100" percentHeight="100" radiusX="20" > 
<s:fill > 
<s:BitmapFill id="bgFill" fillMode="repeat"> 
<s:source> 
<s:MultiDPIBitmapSource source160dpi="@Embed('images/backgroundSki/240/abiSefid.jpg')" 
         source240dpi="@Embed('images/backgroundSkin/240/abiSefid.jpg')" 
         source320dpi="@Embed('images/backgroundSkin/320/abiSefid.jpg')" /> 
</s:source> 
</s:BitmapFill> 
</s:fill> 
</s:Rect>` 

ответ

0

работа с Flash Builder несколько раз становятся настолько сложными, чем другой SDk как визуальный Stadio ... мы должны заботиться о деталях, например, в MultiDPIBitmapSource помощью Flash Builder Сих :

Этот класс предоставляет список растровых изображений для различных плотностей времени выполнения.

It is supplied as the source to BitmapImage or Image and as the icon of a Button . Компоненты будут использовать Application.runtimeDPI, чтобы выбрать, какое изображение будет отображаться.

поэтому мы не можем использовать MultiDPIBitmapSource в bitmapFill in rect. Кроме того, мы, возможно, хотим использовать этот код для решения задачи:

<fx:Script> 
    <![CDATA[ 
    . 
    . 
    switch(FlexGlobals.topLevelApplication.runtimeDPI) 
    { 
    case DPIClassification.DPI_240 : 
    bgFill.source = "images/backgroundSkin/160/image.jpg 
    break; 

    case DPIClassification.DPI_160 : 
    bgFill.source = "images/backgroundSkin/160/image.jpg 
    break; 

    case DPIClassification.DPI_320 : 
    bgFill.source = "images/backgroundSkin/160/image.jpg 
    break; 
    } 
    . 
    . 
    ]]> 
    </fx:Script> 
    . 
    . 
<s:Rect id="background2" left="0" right="0" top="0" bottom="0" width="100%" height="100%" > 
     <s:fill> 
      <s:BitmapFill id="bgFill" fillMode="repeat" /> 
     </s:fill> 
</s:Rect> 

но вы можете увидеть этот код также не работает я думаю, идентификатор BitmapFill является anknown в коде сценария .. никоим образом единственным способом, который работал для меня было использование погрузчика: . .

.switch(FlexGlobals.topLevelApplication.runtimeDPI) 
    { 
     case DPIClassification.DPI_240 : 
     loader.load(new URLRequest("images/backgroundSkin/240/image.jpg")); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderComplete); 
     break; 

    case DPIClassification.DPI_160 : 
     loader.load(new URLRequest("images/backgroundSkin/160/image.jpg")); 
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderComplete); 
     break; 

    case DPIClassification.DPI_320 : 
     loader.load(new URLRequest("images/backgroundSkin/320/image.jpg")); 
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderComplete); 
     break; 
    } 



    } 
    public function loaderCompleteHandler(evt:Event):void 
    { 
     bgFill.source = evt.target.content; 
    }