Я хочу изменить цвет своего изображения, когда я перемещаю мышь через него.
Таким образом, я подготовил 2 изображения, и это - eventListener:
private function mouseOverHandler(e:MouseEvent):void {
e.target.source = "@Embed(source='../icons/userIconOver.png')";
}
К сожалению, когда я перемещаю мышь, я только вижу пустое изображение (ошибка, изображение, не найденное). Однако компилятор не дает мне ошибки, и я пытался использовать тот же путь исходного изображения и также удалить ".. /" в случае, если он ссылается от корневого каталога во времени выполнения. Но тем не менее ничто.
Изображение хранится там, конечно.
Однако, если я могу применить эффект изменить цвет от синего до оранжевого к моему изображению (путем сохранения прозрачности), я мог решить по-другому
Спасибо
Это не самый простой способ сделать то, что вы хотите. Для этого были созданы таблицы стилей, поэтому используйте стили скинов для различных состояний. Пример:
.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");
}
Это намного проще, чем пытаться программно менять состояния каждый раз, когда вам это нужно.
Хотя я считаю решение Robusto лучшим, проблема вашего существующего кода в том, что вы указываете источник на строку. Вы не используете MXML, поэтому компилятор не сможет разобрать код Embed для вас, вам нужно будет встроить изображение отдельно:
(в верхней части класса:)
[Embed(source='../icons/userIconOver.png')]
public var myImageRef:Class
(в обработчике событий)
e.target.source = myImageRef;