2010-05-04 8 views
1

Je veux changer la couleur de mon image quand je déplace la souris dessus.FLEX: changer les couleurs de l'image sur la souris sur

J'ai préparé 2 images et c'est la eventListener:

private function mouseOverHandler(e:MouseEvent):void { 

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

} 

Malheureusement, quand je déplace la souris sur, je ne vois une image vide (erreur, image not found). Cependant le compilateur ne me donne pas d'erreur, et j'ai essayé d'utiliser le même chemin de l'image originale, et aussi de supprimer "../" dans le cas où il fait référence à partir du répertoire racine en cours d'exécution. Mais toujours rien.

L'image est stockée là, bien sûr.

Cependant, si je peux appliquer un effet de changer la couleur du bleu à l'orange à mon image (en préservant la transparence), je pouvais résoudre différemment

Merci

Répondre

2

Ce n'est pas la meilleure façon de fais ce que tu veux. Les feuilles de style ont été construites pour cela, utilisez donc les styles de skins pour vos différents états. Exemple:

.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"); 
} 

Il est beaucoup plus facile d'essayer de changer d'état à chaque fois que vous avez besoin de le faire.

0

Bien que je pense que la solution de Robusto est la meilleure, le problème avec votre code existant est que vous pointez la source à une chaîne. Vous n'utilisez pas MXML, de sorte que le compilateur ne va pas analyser le code Intégrer pour vous, vous aurez besoin d'intégrer l'image séparement:

(en haut de la classe :)

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

(dans votre gestionnaire d'événements)

e.target.source = myImageRef; 
Questions connexes