2010-02-16 3 views

ответ

1

Звоните image.validateNow() после установки source, чтобы принудительно произвести замену.

2

Если вы устанавливаете источник на url (например, image.source = "/assets/myimage.jpg"), для загрузки изображения может потребоваться 1+ кадров, так как он создает асинхронный URLRequest, поэтому изменение не будет немедленно зарегистрировано. Вызов validateNow() в этом случае не помог.

Если вам нужно его загрузить сразу, вставьте изображения (если они достаточно малы) или загрузите несколько из них за один раз и сохраните их где-нибудь, и установите источник изображения в растровое изображение (что-то вроде image.source = myImageCache.getBitmap(0);).

Надежда, что помогает, Lance

1

Попробуйте простой трюк. Просто добавьте два компонента изображения, чтобы их видимость была правдой, а видимость другого - ложной. После события click просто измените видимость компонентов изображения. Вы получите желаемый результат.

Это демонстрация, надеюсь, вам понравится это.

<fx:Script> 
     <![CDATA[ 

private var isPause:Boolean=false; 

protected function music_control1(event:MouseEvent):void 
      { 
       if(!isPause) 
       { 
        pos =_channel.position; 
        isPause=true; 
        SoundMixer.stopAll(); 
        music2.visible=true; 
        music.visible=false; 
       } 
       else 
       { 
        music.enabled=true; 
        _channel=_sound.play(); 
        isPause=false; 
        music2.visible=false; 
        music.visible=true; 
       } 

      } 
]]> 
    </fx:Script> 


    <s:Image id="music" x="200" y="245" click="music_control1(event)" 
        source="@Embed('assets/pause.png')"/>  
      <s:Image id="music2" x="200" y="245" click="music_control1(event)" visible="false" 
        source="@Embed('assets/play.png')"/> 
Смежные вопросы