FLEX: изменение цвета изображения при наведении мыши - PullRequest
1 голос
/ 04 мая 2010

Я хочу изменить цвет моего изображения при наведении на него мыши.

Итак, я подготовил 2 изображения, и это eventListener:

   private function mouseOverHandler(e:MouseEvent):void {

          e.target.source = "@Embed(source='../icons/userIconOver.png')";

}

К сожалению, когда я перемещаю мышь, я вижу только пустое изображение (ошибка, изображение не найдено). Однако компилятор не выдает мне никакой ошибки, и я попытался использовать тот же путь исходного изображения, а также удалить «../», если он ссылается из корневого каталога во время выполнения. Но все равно ничего.

Изображение там хранится, конечно.

Однако, если я могу применить эффект, чтобы изменить цвет с синего на оранжевый для моего изображения (сохраняя прозрачность), я мог бы решить по-другому

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 мая 2010

Это не самый простой способ сделать то, что вы хотите. Для этого были созданы таблицы стилей, поэтому используйте стили скинов для различных состояний. Пример:

.backButton{
    upSkin: Embed(source="BackButton.png"); 
    downSkin: Embed(source="BackButtonDown.png");
    overSkin: Embed(source="BackButtonOn.png");
    disabledSkin: Embed(source="BackButton.png");

    selectedUpSkin: Embed(source="BackButtonDown.png"); 
    selectedDownSkin: Embed(source="BackButtonDown.png");
    selectedOverSkin: Embed(source="BackButtonDown.png");
    selectedDisabledSkin: Embed(source="BackButtonDown.png");
}

Это гораздо проще, чем пытаться программно изменять состояния каждый раз, когда вам нужно это сделать.

0 голосов
/ 04 мая 2010

Хотя я думаю, что решение Robusto является лучшим, проблема с существующим кодом заключается в том, что вы указываете источник на строку. Вы не используете MXML, поэтому компилятор не собирается анализировать код Embed для вас, вам нужно будет отдельно вставить изображение:

(наверху класса:)

[Embed(source='../icons/userIconOver.png')]
public var myImageRef:Class

(в вашем обработчике событий)

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