Quand blendmode a la tête qui tourne (plus) [Résolu]

Signaler
Messages postés
774
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
5 février 2010
-
WhiteMagus
Messages postés
774
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
5 février 2010
-
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

Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
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'
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
bonsoir,

réapplique les blendMode à chaque modification.

Peg'
Messages postés
774
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
5 février 2010

Ç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.
Messages postés
774
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
5 février 2010

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
Messages postés
774
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
5 février 2010

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 :)