Update eines MovieClips

deostift

Erfahrenes Mitglied
Hallo zusammen,

wie kann ich denn einen MovieClip sich aktualisieren lassen - sprich neu laden (per AS).

Situation: Ich habe einen Clip der einen Kalender beinhaltet. Dieser holt sich für den Monat immer die aktuellen Ereignisse aus der Datenbank. Lege ich nun für den aktuellen Monat ein neues Ereignis an, wird dieses nur angezeigt, wenn ich in der Zeitleiste aus dem Bereich kurz rausspringe und dann wieder rein (>> MovieClip wird neu geladen und folglich auch die Datenbankabfrage).
 
Würde ich gerne ja tun, aber ich bin schon zu kleingeistig um eine Funktion in einem MC außerhalb anzusprechen. Irgendwie tue ich mich verdammt schwer mit AS und der Gültigkeit von Funktionen/Variablen. Ich hab schon ein wenig im Netz nachgeschaut - vielleicht nur an den falschen Stellen bisher.

Hier hab ich Dir mal das Beispiel angehängt:

Die Funktion liegt in einem MC .. .der wird auf die Bühne geholt und hier soll die Funktion (später die erneute Serverabfrage) gestartet werden.
 

Anhänge

Noch eine Ergänzung:

Weshalb kann ich die Methode damit ansprechen?

function onMouseDown () {
trace(test_mc.meinReload("Hallo"));
}

Und nicht ohne Event wie z.B. so:

trace(test_mc.meinReload("Tobias"));


Danke für die Hilfe ... ich steh im Moment auf dem Schlauch.
 
Hi,

wie der Aufruf einer Methode eines instanzierten Clips funktionieren kann, kannst Du dem angehängten Beispiel entnehmen. Mit der Syntax:
Code:
function onMouseDown () {
 // mach was
}
erstellst Du einen globalen Mouse-Listener. Der Direktaufruf funktioniert dann nicht, wenn der betreffende MC im selben Frame instanziert wurde. Das liegt daran, dass Code (und damit auch Methoden) in MovieClips erst geparst wird, wenn der Code der instanzierenden Zeitleiste abgearbeitet ist. Wenn Du einen Frame wartest, solltest Du kein Problem bekommen:
Code:
var foo = this.attachMovie("foo", "foo", 1);

foo.machWas(); // klappt nicht, da der Code in "foo" noch nicht geparst ist

this.onEnterFrame = function() { // warte einen Frame ...
  delete this.onEnterFrame;
  foo.machWas(); // .. und es geht ;)
}

Gruß
.
 

Anhänge

Zurück