hilfdirselbst.ch
Facebook Twitter gamper-media
Kalle
Beiträge: 130
26. Mär 2003, 19:27
Beitrag #1 von 5
Bewertung:
(1325 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Referenzierung bei Szenen


*verwirrt* kann mir jemand helfen?
Mein Film besteht aus Szene1 (preloader) und Szene2 (film)
Der preloader ist in einem MC mit zwei frames (frame1="eins", frame2="zwei", jedoch nicht in der Hauptzeitleiste, sondern, wie gesagt im MC-preloader. Der Film (Szene2, "film") besteht aus MCs in einem frame (framename="anfang").

Ich wollte es so machen, damit ich nicht 6 mal einen preloader neu programmieren muss, sondern einfach diesen MC mehrmals in 6 .swf benutzen kann.
Vorher hatte ich also das hier(noch nicht als MC, sondern direkt auf der Hauptzeitleiste):

if (_framesloaded>=_totalframes) {
gotoAndPlay("film", "anfang");
} else {
geladen = this.getBytesLoaded();
gesamt = this.getBytesTotal();
prozent = Math.round((geladen/gesamt)*100);
ladebalken._xscale = prozent;
}


Dass beim Export die Szenen (und deren frames) aneinandergereiht werden ist mir bekannt.

Nachdem ich aber den preloader als MC gemacht habe, habe ich mir das hier mal ausgedacht:

if (film.anfang._framesloaded>=film.anfang._totalframes) {
gotoAndPlay("film", "anfang");
} else {
geladen = _root.getBytesLoaded();
gesamt = _root.getBytesTotal();
prozent = Math.round((geladen/gesamt)*100);
ladebalken._xscale = prozent;
}
Die MX-Hilfe hat mir da nicht wirklich weitergeholfen.
Ich glaube nicht, dass das 2. scriptchen richtig ist.
Weiß jemand wie ich da referenzieren muss?
Oder ist das sowieso völlig banane, den preloader als eigenen MC zu machen?
Wie macht Ihr das?
Vielen Dank schon mal.
______
Kalle

http://www.netzkunstkg.de Top
 
X
MOS
Beiträge: 262
28. Mär 2003, 13:03
Beitrag #2 von 5
Beitrag ID: #29623
Bewertung:
(1325 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Referenzierung bei Szenen


Hi Kalle...

ich denke Dein Problem besteht genau in der Verwendung von Szenen.
Ich habe auch mal mit Szenen begonnen, weil ich dachte das sorgt für Übersichtlichkeit...tut es aber genau nicht...

Ein Fehler liegt darin, dass Du mit "framesloaded" und "totalframes" nur _die_ Frames des referenzierten Clips holst...nicht des Gesamtfilmes...und genau da wird es eben mit den Szenen schwierig.
In Deinem 2. Beispiel holst Du die "geladenen Frames der Instanz 'anfang' die in 'film' liegt" ... wenn ich es richtig verstanden habe heißt Deine 2. Szene aber 'film'...das kann nicht klappen...

Tendenziell würde ich die Referenz so schreiben (aber garantieren kann ich es nicht, da ich bestimmt seit 2 Jahren keinen Film mit Szenen mehr gebaut habe):

if (_framesloaded >= _totalframes) {
gotoAndPlay ("film", "anfang");
} else {
_root.ladebalken._xscale = (_framesloaded/_totalframes)*100);
}

Dein Preloader-MC sollte als Namen "ladebalken" haben...Dein Skript schreibst Du auf die Haupttimeline der Szene 1.

Hast Du übrigens schon in der MX-Referenz nachgeschaut? Da steht das für _framesloaded ziemlich genau so drin...nicht in der Hilfe, in der REFERENZ!

Den Preloader als MC anzulegen ist natürlich überhaupt nicht falsch, sondern sogar guti.

-----------------------------
How we are doing it....

Ich mache das so, dass ich am Beginn der Timeline einige Frames reserviere (meist 3), dem Ersten dieser reservierten Frames gebe ich das Framelabel "loader" und Frame 4 bekommt das Label "start".

Dann loopt der film ganz simpel zwischen diesen 3 Frames:

Frame 1:
// geladene prozente berechnen; gerundet auf zwei kommastellen
prozente = Math.round((getBytesLoaded()/getBytesTotal())*100)/100;

Frame 2:
// setz die gewonnenen Prozente z.B. in ein Textfeld ein...
// oder ziehe eine Grafik auf...oderwasauchimmer
// wir lassen einen Balken auf dem Prozentwerte stehen - 10er intervalle - unter
// einer Maske durchwandern, abhängig vom prozent-Wert. das startet schneller als
// ein eingebetteter Font in einem Textfeld...

Frame 3:
gotoAndPlay("loader");
if (getBytesLoaded()/getBytesTotal() == 1) {
gotoAndPlay("start");
}


Du kannst zum einen die Prozente anzeigen lassen, Du kannst "alles" als Preloader in diesen Loop legen und auch an die prozente koppeln...Umrechnungen um auf nette Werte zu kommen sollten kein Problem sein denke ich mal...versuch von den Szenen wegzukommen...die sorgen früher oder später nur für Stress...

hope this helps...

mfg
MOS2000
als Antwort auf: [#29437] Top
 
Kalle
Beiträge: 130
28. Mär 2003, 18:24
Beitrag #3 von 5
Beitrag ID: #29688
Bewertung:
(1325 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Referenzierung bei Szenen


Hallo MOS,
danke für die ausführliche Antwort.
Dachte ich mir schon, dass die Szenen nicht so gut sind. Erst fand ich das sehr übersichtlich, jetzt kommen die Probleme.
Was ich allerdings in der Referenz nicht verstanden habe ist, ob mit _totalframes und _framesloaded automatisch das komplette swf, also inklusive aller Szenen, weitergegeben wird, wenn nicht z.B. _parent.myMC. oder so davor steht. Es stand auch nicht darin, wie ich damit einen bestimmten frame ansprechen kann, also vielleicht ja so: _framesloaded("anfang")>=_totalframes("anfang"), aber das hat sich eigentlich erledigt, wenn mit _totalframes und _framesloaded sowieso immer der gesamte Film gemeint ist, und das entnehme ich Deinem Script, wenn ich es richtig verstanden habe. Aber mein Problem ist, dass ich die Scripts nicht in die Hauptzeitleiste, sondern in MCs packen will(wollte...), das kann ich dann wohl vergessen, oder?




______
Kalle

20:29 hinzugefügt:
Die Szenen hab ich erstmal behalten (bin ja doch faul...), in Im MC Preloader(instanzname: "pre") ist also bytestotal, bytesloaded, prozent und balken.
if (_framesloaded>=_totalframes) {
gotoAndPlay("film", "anfang");
} else {
pre.geladen = getBytesLoaded();
pre.gesamt = getBytesTotal();
pre.prozent = Math.round((pre.geladen/pre.gesamt)*100);
pre.ladebalken._xscale = pre.prozent;
}

Das funktioniert. Puhh. Heute wieder viel gelernt. Und danke nochmal!
(vielleicht nehm ich die Prozentzahl ja wieder raus. Ist eigentlich doppelt gemoppelt...)
http://www.netzkunstkg.de
als Antwort auf: [#29437]
(Dieser Beitrag wurde von Kalle am 28. Mär 2003, 20:33 geändert)
Top
 
MOS
Beiträge: 262
31. Mär 2003, 11:33
Beitrag #4 von 5
Beitrag ID: #29865
Bewertung:
(1325 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Referenzierung bei Szenen


Also es gibt noch eine (in MX nicht mehr verwendete) Methode:

- ifFrameLoaded -
--------------------------------
Verfügbarkeit

Flash Player 3. In Flash 5 gilt die Aktion ifFrameLoaded als veraltet. Stattdessen wird die Verwendung der Aktion MovieClip._framesloaded empfohlen.

Verwendung

ifFrameLoaded(szene, bild) {
anweisung;
}
ifFrameLoaded(bild) {
anweisung;
}
--------------------------------

Damit kannst Du konkret sagen dass in der Szene "x" der Frame "y" geladen sein soll bevor...diesunddas...
Aber soll halt eigentlich nicht mehr verwendet werden...

So wie ich _framesloaded verstehe gilt es eben für den MC den man anspricht...auf der Haupttimeline verwendet eben für den gesamten Film mit allen Szenen, und wenn man es auf einen MC schreibt dann für diesen MC...will man diesen MC aus der _Haupttimeline_ ansprechen, dann sagt man eben

if (meinMC._framesloaded>=...

Aber dazu muss der angesprochene MC eben zum Zeitpunkt des Scriptings auch auf der Timeline präsent sein...
Aber das ist ein wenig halbwissen, weil ich das halt gar nicht benutze...
Hoffe das hat jetzt nicht zu zusätzlicher Verwirrung beigetragen... :)

mfg
MOS2000
als Antwort auf: [#29437] Top
 
Kalle
Beiträge: 130
31. Mär 2003, 17:18
Beitrag #5 von 5
Beitrag ID: #29917
Bewertung:
(1325 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Referenzierung bei Szenen


Hallo MOS,
das war die Funktion, die ich meinte, also, die ist veraltet. Aha. Du hast nicht zur weiteren Verwirrung beigetragen, im Gegenteil.
Nun, es funktioniert nun bei meinen swfs alles so, wie ich es haben wollte. Allerdings klappt es nicht, wenn ich den preloader in einer shared library liegen habe. Ich weiß noch nicht warum. Naja, bin ja auch keine richter Flasher. Nur für manches ist es doch zuverlässiger als Javascript-Geschichten.
______
Kalle

http://www.netzkunstkg.de
als Antwort auf: [#29437] Top
 
X