Quand blendmode a la tête qui tourne (plus)

Résolu
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010 - 19 mai 2009 à 22:37
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010 - 22 mai 2009 à 14:08
Hello.




Le problème : j'ai besoin d'un masque inverse (c'est à dire qui fait l'effet contraire du masque : évide le Sprite) qui est dynamique (un texte dynamique).
Tout marche bien, le "masque" est en
BlendMode.ERASE
, le clip parent est en
BlendMode.LAYER
, tout marche bien.
Mais lorsque je veux faire tourner le parent (qui est en
BlendMode.LAYER
pour rappel) par un simple
.rotation
, le masque disparait, il n'est pas affiché et il n'évide rien du tout.

En clair :
BlendMode.ERASE
dans un
BlendMode.LAYER
qui tourne = plus rien ne fonctionne (ni rotation, ni erase......).

Je commence à être fatigué, là... Ça fait 4 jours que je suis sur ce projet...

Merci,
Bye ;)

5 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
19 mai 2009 à 23:12
Je résume :

- tu as un texte dans un clip
- tu "troues" le clip à l'aide du texte via le blendMode
- quand tu fais tourner l'ensemble (sachant que le texte est dans le clip), le texte disparaît ? C'est bien ça ?

Alors le soucis ne vient pas de ton blendMode, mais certainement du fait de ne pas avoir intégré la police dans ton fla et que ton texte soit une zone dynamique (ce qui fait disparaître le texte).

J'ai testé sous flash un truc con avec 2 carrés et la rotation du parent fonctionne très bien, donc le soucis doit venir du texte.

Peg'
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
19 mai 2009 à 22:47
bonsoir,

réapplique les blendMode à chaque modification.

Peg'
0
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
19 mai 2009 à 22:55
Ça ne change malheureusement rien...

J'ai essayé de remettre les blendmode du parent seul, de l'enfant seul, et des deux en même temps, rien ne fonctionne...

Le plus bizarre, c'est que la rotation ne marche pas et efface le masque, mais que à partir de 0.3° rad. Avant ça, c'est juste la rotation qui marche pas... Le masque lui, fonctionne.

Merci.
0
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
19 mai 2009 à 23:26
En effet, le problème vient du texte je pense, mais la police est dans la bibliothèque, le texte est pas sélectionnable, j'ai même testé avec cacheAsBitmap = true (il y est pour que l'"évidage" marche), j'ai aussi mis le parent en cacheAsBitmap = true, mais rien ne marche. Là j'avance à tâtons...

Mais pour ton résumé, tout est bon :)

Je peux t'envoyer la source si tu veux, mais je peux pas le mettre en ligne pour l'instant (par contre, rien n'est commenté... J'y arrive pas :) )

Bye
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
22 mai 2009 à 14:08
Hello.

Alors, problème résolu.

Pour la rotation, j'ai oublié que .rotation est pas en degrés radians. Donc en fait, la rotation se faisait bien...

Mais le texte ne s'affichait pas...
Donc pour résoudre cela, j'ai appliqué un TextFormat comme suit :
var maFont:Stenc new Stenc() // Sten nom de la police exportée
var tForm:TextFormat = new TextFormat(maFont.fontName, textsize, 0x000000, null, null, null, null, null, "center");

Ce textformat est appliqué à mon champ de texte qui a l'option .embedFonts à true.

A ce niveau, le texte s'affiche correctement, mais la rotation le fait disparaître (sur mac, en tout cas).
Le seul moyen que j'ai trouvé pour que l'affichage soit respecté, c'est de transformer le TextField qui est drawable en Bitmap, via la méthode draw() de BitmapData.

Voilà, si jamais ça peut aider quelqu'un :)
0
Rejoignez-nous