2016-05-27 13 views
-1

Ich arbeite in einem Projekt für Basketball. Ich habe ein Problem, mein Code funktioniert einwandfrei, wenn sich alle meine Komponenten in der Hauptzeitleiste befinden.Update Textfeld in Movieclip aus der Haupt-Timeline-Code

Aber sobald ich die Textfelder in einen Movieclip umwandeln kann, damit ich Alpha-Wert animieren und anwenden kann, funktioniert alles nicht mehr.

was mache ich falsch? Die einzige Lösung, die mir einfällt, ist, das Ergebnis meines Countdowns in das Textfeld des Movieclips zu schreiben, aber es hat nicht so gut funktioniert.

das ist mein Code.

function onTimer (ev:TimerEvent) : void { 
timeRemaining--; 
if (timeRemaining < 0) { 
    timeRemaining = 0; 
    loseGame(); 
} 
else 
    showTime.text = formatTimeRemaining(); 
    var miReloj:MovieClip; 
    var titulo_txt:TextField = new TextField(); 
    titulo_txt.text = formatTimeRemaining(); 
    addChild(miReloj); 
    miReloj.addChild(titulo_txt); 
    // miReloj.addChild(showTime1.text); 
    //miReloj.showTime1.text = formatTimeRemaining(); 
} 
+0

Haben Sie Fehler? – null

+0

TypeError: Fehler Nr. 1009: Nein, es ist nicht unbedingt erforderlich, um eine Referenz zu einem Referenzobjekt zu erstellen./Auf eine Eigenschaft einer Referenz auf ein Null-Objekt kann nicht zugegriffen werden. \t bei Method-142() \t bei flash.utils :: Timer/_timerDispatch() \t bei flash.utils :: Timer/tick() – epxela

Antwort

0

ist es nie einen Wert miReloj zugeordnet ist, das ist, warum es null ist

var miReloj:MovieClip;      // no assignment here 
var titulo_txt:TextField = new TextField(); 
titulo_txt.text = formatTimeRemaining(); 
addChild(miReloj);       // miReloj is still null here 
miReloj.addChild(titulo_txt);    // cannot call method on null 

But as soon as I convert the text fields into a movie clip

das unmöglich ist. Aus Ihrem Code sieht es so aus, als ob Sie das Objekt TextField zu einem Container hinzufügen möchten. Es gibt keine Notwendigkeit, ein MovieClip dafür zu verwenden, erstellen Sie einfach ein Sprite Objekt:

var container:Sprite = new Sprite();  // create container 
var title:TextField = new TextField(); 
title.text = formatTimeRemaining(); 
addChild(container);      // add container 
container.addChild(title);     // add title to container 

Immer Englisch verwendet für alle Ihre Programmierung. Mischen Sie keine anderen Sprachen hinein. Es wird mühsam, Ihren Code zu lesen und die Anzahl der Personen zu reduzieren, die Ihnen bei Problemen mit Ihrem Code helfen können.

+0

Mit diesem sugestion Sie machen, ist es nicht mehr Übersetzungsfehler, aber ich weiß nicht, wie man dieses Textfeld grafisch behandelt. Mit diesem Code erstellen Sie eine Vorlage im Flash und exportieren sie in SWF. Danke für Ihre Hilfe. – epxela

+0

@epxela Ich denke du kannst dein 'TextField' in deinen' MovieClip' einfügen, dann kannst du Alpha-Wert auf den 'MovieClip' mit' addChild' Funktion animieren und anwenden. – suzuiyue

+0

Ich bin auf der Suche nach einer Möglichkeit, den cowndown in den Movieclip zu schreiben, damit ich die Ergebnisse animieren kann. Ich werde Ihren Vorschlag testen. @suzuiyue danke. – epxela