{MX} weitere .swf Filme preloaden

Aber im Grunde genommen sind ja relative Pfade auf _root absolute Pfade, mal von mehreren Leveln abgesehen...

Ist ok, wenn du portability erwähnst, aber mal angenommen du hättest folgenden Code auf _root liegen, würdest du tatsächlich auch der Einheit halber mit this arbeiten? :)

Find' das immer elend nervig, Code da zu haben, bei dem überall this am Zeilenanfang steht und trotzdem kein with genutzt werden kann... :(

Geist
 
Hmm, ok. aber auf der anderen seite ist ein einfaches gotoAndPlay(20) als einzige zeile nicht sauber. das erinnert einfach zu stark an flash 4 und geht ja nur, weil der interpretor für dich dann das this setzt.

...to be continued
gruss skyla
 
@geist: hab gerade die action script coding standarts von macromedia durchgeblättert und da steht folgendes drin:

Scoping a variable from the _root is not recommended because this limits the portability of the code. Use the keyword _parent ot this instead.

soweit so gut.
jetzt aber kommts:

If absolute addressing to the main timeline must be used, create a variable to reference the main timeline instead of using _root. This allows for easy modification of a single parameter if the timeline structure changes.

und jetzt kommt ein beispiel:


PHP:
// to create a convenient reference to the main 
// timeline of a movie, add this line of code to
// the main timeline:
_global.myAppMain = this; 

// use 
_global.myAppMain.someFunction();
// to refer to functions on the main timeline.


mit anderen worten: der gebrauch von _root als verstoss gegen
die as-conventions von mm, oder wie jetzt ???
 
Mh, ich würde die beiden statements nicht aufeinander beziehen.

Ersteres gilt für sich und weist auf, warum die Verwendung vom identifier _root in Scripten eingeschränkte Übertragbarkeit des AS bietet und zweiteres gilt für sich und beinhaltet in meinen Augen ausschließlich, dass jedesmal statt der Verwendung von _root eben eine beliebige Variable, die eine Referenz zum _root-Objekt beinhaltet, stattdessen zum Coden verwendet wird.

Vereinfacht würde ich das so auffassen:
PHP:
a = _root;
a.gotoAndPlay(2);        // hier dann statt "_root.gotoAndPlay(2);"
wodurch du eben einzelne Bytes sparen würdest. :)

Übliche Programmiertechnik eigentlich...

Geist
 
ne,ne da hast du nicht richtig hingeschaut. die beiden statements gehören zusammen und es geht in beiden fällen um die 'portability' von code. Es werden ja auch keine bites gespart, sondern im gegenteil mehr 'eingesetzt', um diese portability zu erreichen.

besser hingucken ! ;)
 
Oh... :rolleyes:

Dann lass uns mal logischer werden. ;)

Mal angenommen der Struktur-Aufbau eines Filmes ändert sich dadurch, dass er selbst bspw. in einen anderen Film hineingeladen wird.
Dadurch würde sich ein hiesiges _root ja auf den Film beziehen, in den geladen wird.

Dadurch, dass der _root-Identifier ersetzt wird, hast du dann logischerweise ständig Kontakt zum _root-Objekt per Variable.

Und die Wahl von oben wird wohl deshalb so getroffen worden sein, weil du mit dem _global-Identifier ja permanent Kontakt zur obersten Instanz des Hauptfilmes hast und somit im Elementbaum ganz oben anfängst.

Weiterhin ordnest du eben diesem Element _global eine Eigenschaft zu, die deiner Zeitleiste entspricht, damit du weiterhin eine gewisse Aufteilung aller Elemente aller Filme hast, die eine Logik darstellt - ein Ast geht eben zum Hauptfilm-_root und einer zum Unterfilm-_root.

So würde ich das nun erklären...

Verstoss gegen die AS-Conventions kann nicht sein, dann würdest du ja invalide, bzw. deprecated scripten, das glaub' ich nicht.
Eher für den Falle der Übertragbarkeit/Portabilität eben ein sinnvoller Anstoss, weil's sonst derbe Probleme geben kann...

Geist,
der hofft mal wieder nicht ins Fettnäpfchen zu treten ;)
 

Neue Beiträge

Zurück