Изменить источник изображения во время выполнения - PullRequest
2 голосов
/ 16 февраля 2010

Я хочу изменить изображение при клике

Ответы [ 3 ]

2 голосов
/ 17 февраля 2010

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

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

Надеюсь, это поможет, Lance

1 голос
/ 23 января 2014

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

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

<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')"/>
1 голос
/ 16 февраля 2010

Позвоните image.validateNow() после установки source для немедленного принудительного изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...