2010-03-26 3 views
0

J'ai un champ de texte à l'intérieur d'un rectangle (Sprite). Le texte s'inscrit parfaitement dans le rectangle, mais la taille réelle du champ de texte est plus grande que celle de l'image-objet. (marge supérieure invisible dans la police)actionscript texte champ affichage problème

Le problème est que lorsque j'ai ajouté un Eventlistener au Sprite qui détecte les clics de souris, il se déclenche même lorsque je clique à l'extérieur du rectangle. Comment puis-je réparer cela? (De sorte que la taille de l'objet enfant ne dépasse pas la taille des parents)

+0

Le champ de texte est-il statique ou dynamique? –

+0

c'est "statique" .. – simon

Répondre

0

Si le rectangle est pas un Sprite ou MovieClip iteself, le convertir en une sorte que dans un conteneur Sprite vous avez le rectangle et le champ de texte au-dessus. Donnez au rectangle un nom d'occurrence de 'base'. Tout d'abord, comme l'a dit Hwang, définissez la propriété mouseChildren du conteneur sur false. Après cela, définissez la propriété hitArea du conteneur égale au rectangle. Il ressemblerait à quelque chose comme ceci:

container.mouseChildren = false; 
container.hitArea = container.base; 
-1
sprite.mouseChildren=false 

et vous devez peut-être utiliser textfield.selectable=false aussi.

textField trop élevé et trop large? changement

textfield.width=textfield.texhWidth, textfield.height=textfield.textHeight 
+0

cela ne fonctionne pas – simon

+0

pourquoi avez-vous besoin que votre texte dépasse la taille de l'image-objet? peut définir le text.width = text.textWidth + 2, et text.height = text.textHeight (ajouter quelques points provoquent parfois il va recadrer un peu de la lettre) – Hwang

+0

Je suppose qu'il préfère ne pas affecter l'affichage de le champ de texte. –

0

estimation aléatoire, peut-être appliquer un masque à l'image-objet va corriger cela.

var mask:Shape = new Shape(); 
mask.graphics.beginFill(0); 
mask.graphics.drawRect(0,0,recWidth,recHeight); 
sprite.addChild(mask); 
sprite.mask = mask;