« April 2004 | Hauptseite | Juni 2004 »
for in
Schleife der Buttoninstanz in dem jeweiligen MovieClip aus dem Array modules
zuzuweisen:
function initClips() {
for(var i in modules) {
....
_root[modules[i]].button.i = i;
_root[modules[i]].button.onRollOver = function() {
_root[modules[this.i]].setModulActive();
}
...
}
}
ist die Mac Variante.
Flash interpretiert die Event-Function als neues Object (in Flash sind functions Objekte). Dadurch verliert die Event-Funktion den Inhalt der Variablen i
. Um immer den richtigen Array-Wert von modules ansprechen zu können, wurde mittels _root[modules[i]].button.i = i
eine neue Variable i
für die jeweilige Buttoninstanz button
erzeugt und initilisiert. Somit kann der Event auf das richtige Objekt im _root verweisen.
Da aber ein Button ein eigenständiges Objekt ist, sollte es doch möglich sein mit this._parent.setModulActive();
auf das Elternelement (MovieClip) zu referenzieren und somit die Funktion setModulActive()
, welche nur den Movieclips aus dem Array modules zugewiesen ist, ausführen zu können? Ja, aber bitte nur, wenn DU den Code unter Windows entwickelt und das SWF erzeugt hast!
function initClips() {
for(var i in modules) {
...
_root[modules[i]].button.onRollOver = function() {
this._parent.setModulActive();
}
...
}
}
Ist die Variante unter Win, welche wohl bei solch einer Art von Zuweisung auch Sinn ergibt.
Okay, Bugs und Fehler gibt es in jeder Software. Aber um darauf zu kommen, dass man unter Mac OSX in dieser Version von Flash einen anderen Weg gehen muss, hat mich doch etwas Zeit, Nerven und Unverständnis gekostet. Denn was bringt es mir, am PC im Büro zu entwickeln und mich zu Hause zu wundern, dass unter OSX meine Scripte nicht funktionieren? Und, heute Abend werde ich testen können, ob die zweite Variante überhaupt im Flashplugin aufm Mac funtzt.
Nächstes Ärgernis: der Debugger. Bei Flashentwicklungen, in denen viel gescripted wird, ein doch sehr hilfreiches Unterstützungstool. Nicht so unter OSX. Der Debugger spinnt mehr als man denkt. Eine Nachfrage an einen Kollegen erbrachte, dass ihm bekannt war, dass unter Flash MX für Mac der Debugger sehr buggy war. Der Satz in der Mail "... sie sollen angeblich was daran verbessert haben, aber wie gut, kann ich nix sagen. ..." bestätigte nur meine Vermutung: das Teil kannste vergessen!
Debugger Mac OSX
Debugger Windows
Die Windows Variante ist richtig und brauchbar. Die Instanzen unter_level0.tboxes
sind dort, wo sie hingehören und ich kann sehen, ob diese Instanzen auch wieder gelöscht werden und ob die Enthaltenen Variablen alle korrekt gesetzt sind.
Im Mac pfeffert der Debugger die Instanzen an _level0.submenu. ..
, _level0.tboxes
bleibt leer und keine Ahnung wie die Variableninhalte lauten.
Nach 10 x Klicken auf einen Link im SWF bedankte sich Flash dann mit einer Meldung, dass das Programm geschlossen werden muss, wegen einem schwerwiegenden Fehler.
Am liebsten würde ich MM die Version MX 2004 Prof. für Mac um die Ohren hauen.
this._parent.setModulActive();
. Interessant ist es schon, dass es wohl doch in einigen Versionen funktioniert - erinnert mich etwas an die DingBats-Geschichte. Wer also anderes produzieren kann als ich, möge doch ein kurzes Feedback per Mail geben.
Diese Seite enthält alle "pixelblow - News certainly travels fast"-Einträge in Mai 2004. Sie sind in chronologischer Reihenfolge angeordnet.
April 2004 ist das vorherige Archiv.
Juni 2004 ist das nächste Archiv.
Viele weitere Einträge finden Sie auf der Hauptseite und im Archiv.