2017-03-07 1 views
3

J'ai commencé il y a une semaine à étudier ActionScript 3.0. Je voudrais faire un jeu simple. Il commencera avec une fenêtre affichant un message de bienvenue ("appuyez sur le bouton pour démarrer"), et une flèche qui commence à partir du texte et pointe sur le bouton. Je veux tout créer à partir du code. J'utilise un TextField pour le message de bienvenue mais j'ai quelques problèmes. J'ai créé un fichier .fla AIR pour Destkop. Puis j'ai associé à ce fichier une classe appelée mainFunzioneModidificaTest.as. Dans cette classe, j'ai écrit une fonction pour définir le texte de la première fenêtre. J'utilise le TextFormat mais quand j'exécute le fichier .fla je vois le texte mais sans aucun formatage. La couleur, la dimension et la police ne changent pas Voici le code. Est-ce que quelqu'un peut m'aider? Je vous remercie!Fonction ActionScript 3.0 pour modifier TextField

package { 
import flash.display.MovieClip; 
import flash.text.TextField; 
import flash.text.TextFormat; 

public class mainFunzioneModificaTest extends MovieClip { 

    public function mainFunzioneModificaTest() { 
     setText(); 
    } 
    function setText(): void { 
     var text: TextField = new TextField(); 
     var myFormat: TextFormat = new TextFormat("Arial", 39, 0xFF0000); 
     text.setTextFormat(myFormat); 
     text.text = "Hello"; 
     addChild(text); 
    } 

} 

}

+0

peut vous essayer avec ** var txt: TextField = new TextField(); ** au lieu du texte 'var: TextField = new TextField();' –

+0

je l'ai déjà essayé. Ça ne marche pas. Cependant merci! – SpaghettiFunk

Répondre

3

Vous devez définir d'abord le texte avant d'appeler setTextFormat(), ou bien utiliser text.defaultTextFormat = myFormat;

De l'TextFormat documentation:

Utilisez la propriété TextField.defaultTextFormat pour appliquer le formatage avant d'ajouter du texte à la TextField, et la méthode setTextFormat() pour ajouter le formatage après avoir ajouté du texte à la TextField

texte Set avant d'appeler setTextFormat():

function setText(): void { 
    var text: TextField = new TextField(); 
    var myFormat: TextFormat = new TextFormat("Arial", 39, 0xFF0000); 
    text.text = "Hello"; 
    text.setTextFormat(myFormat); 
    addChild(text); 
} 

ou un ensemble defaultTextFormat:

function setText(): void { 
    var text: TextField = new TextField(); 
    var myFormat: TextFormat = new TextFormat("Arial", 39, 0xFF0000); 
    text.defaultTextFormat = myFormat; 
    text.text = "Hello"; 
    addChild(text); 
} 
+0

Merci, maintenant ça marche! Donc, chaque fois que je dois définir le texte avant d'appliquer le "style" à ce texte? Maintenant, j'ai une autre question. Puis-je ajouter un addEventListener à un triangle dessiné avec la fonction drawTriangles()? – SpaghettiFunk

+0

Utilisez 'defaultTextFormat' pour définir les styles de texte qui doivent s'appliquer à tous les textes par défaut. Si vous dessinez le triangle sur une instance 'Sprite' distincte, vous pouvez ajouter un écouteur d'événement à cette image-objet. Tous les chemins dessinés sur le même DisplayObject vont déclencher les mêmes écouteurs d'événements, ils ne sont pas indépendants. Utilisez différentes instances Sprite pour différents éléments interactifs. –

+0

Merci, je vais y travailler! – SpaghettiFunk