Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-02-2005, 13:29   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
filmlänge (totale laufzeit) ermitteln!

hallo,
habe ein kleines problem. ich möchte externe swf's laden und sie in meiner anwendung wiedergeben, soweit so gut. nun möchte ich aber am ende des externen swf diesen wieder entladen und einen neuen swf laden, klingt eigentlich ganz einfach. aber, die zu ladenden swf sind aber völlig unterschiedlich aufgebauf, soll heissen: länge der hauptzeitleist 1-n frames, diverse movieclip's mit unterschiedlichen framelängen! auf die swf habe ich keinen einfluss die kommen nicht von mir!

die hauptzeitleiste zu prüfen ist ja nicht wirklich schwer, aber die könnte ja beispielsweise nur 1 frame haben, der rest spielt sich z.b. in irgendeinem mc ab!

gibt es eine möglichkeit die länge (totale laufzeit) eines filmes zu ermitteln, egal wie dieser aufgebaut ist?

für euere hilfe bedanke ich mich schon jetzt
gruß hans
schmalhans ist offline   Mit Zitat antworten
Alt 03-02-2005, 15:11   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
in jeden swf in den letzten frame z.b. einen functionsaufruf
_level0.bin_fertig(abbutze);

und im hauptfilm
function bin_fertig(wer) { ...

über die variablenübergabe kannst du auch feststellen, wer da fertig ist.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 03-02-2005, 15:51   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
hallo,
klar mit einen flag könnte man das ganz einfach erledigen. leider habe ich nicht die möglichkeit diesen zu setzen. wie gesagt, die swf's kommen nicht von mir und ich habe auch keinen einfluss darauf.

mir geht es eher um die ermittlung der laufzeit, sprich wie lange wird der swf laufen. bin da noch ziehmlich ratlos, könnte man aus diversen eckdaten nicht halbwegs die laufzeit bestimmen, z.b. aus totalframes, framerate usw.

oder irgendeine rekursive function die prüft, ob es mc's gibt und wenn ja dann wo und wieviele frames, hmm....

gruß hans

Geändert von schmalhans (03-02-2005 um 15:58 Uhr)
schmalhans ist offline   Mit Zitat antworten
Alt 03-02-2005, 19:21   #4 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hi.

Es gibt doch die Eigenschaften:
_currentframe /* Derzeitiger Frame in dem der Abspielkopf steht*/
_totalframes /* Die Gesamtzahl an Frames, die ein MovieClip hat*/


Das sollte Dir doch reichen.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 04-02-2005, 00:19   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
hallo,
danke, aber mit _currentframe und _totalframes habe ich es schon versucht, ich sag jetzt nicht, dass das der falsche ansatz ist, aber was mach ich mit den verschachtelten mc's? wie bekomme ich raus ob und wieviele mc's sich im film befinden und wie lange (zeitlich gesehen) der movie abspielen wird?

gruß hans
schmalhans ist offline   Mit Zitat antworten
Alt 04-02-2005, 00:33   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
habe vielleicht die lösung des problems, wenn auch nur geistig!
gibt es die möglichkeit abzufragen ob ein geladener film neu beginnt? (sprich im loop) ? wenn ja dann wäre das der simpelste weg das ding über den jordan zu schicken!

werde das mal morgen versuchen
grüße hans

Geändert von schmalhans (04-02-2005 um 00:48 Uhr)
schmalhans ist offline   Mit Zitat antworten
Alt 04-02-2005, 05:29   #7 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Du könntest jedem Film beim einladen
eine Variable mitgeben, die beim Neustart oder auf Frame "2"
inkrementiert wird bzw. bevor sie
hochgezählt wird, kannst Du den Film
löschen lassen. Also jeder Film bekommt
z.B. eine "1" verpasst. Und wenn _currentframe==1 ist,
dann wird gelöscht, was eine Variable hat.
So kann man das bestimmt machen.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------

Geändert von thebiz (04-02-2005 um 05:33 Uhr)
thebiz ist offline   Mit Zitat antworten
Alt 04-02-2005, 05:43   #8 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hiermit kannst Du alle Mc's
im Clip aufspüren:

ActionScript:
  1. MovieClip.prototype.findeFilme = function(obj) {
  2.     for (var i in obj) {
  3.         if (typeof obj[i] == "movieclip") {
  4.             trace(obj[i]);
  5.             findeFilme(obj[i]);
  6.         }
  7.     }
  8. };
  9. findeFilme(_root);

Auch die verschachtelten.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 04-02-2005, 09:32   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
wow, super, werde es gleich mal ausprobieren. habe gerade erfahren, nicht jeder mc wird loopen, ganz toll also nix mit, wenn er wieder auf frame 1 ist dann weg damit, hmm....

gruß hans
schmalhans ist offline   Mit Zitat antworten
Alt 04-02-2005, 09:52   #10 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
hi,
vielleicht check ichs auch nicht! wenn ein mc in einem mc liegt und in dessen zeitleiste erst auf frame 5 kommt wird dieser nicht mehr erfasst.
habe dein script nur etwas verändert damit ich die frames der mc noch sehe.

PHP-Code:
trace("root : frames: "+_root._totalframes);

MovieClip.prototype.findeFilme = function(obj) {
    for (var 
i in obj) {
        if (
typeof obj[i] == "movieclip") {
            
trace("mc: "+obj[i]+" frames: "+obj[i]._totalframes);
            
findeFilme(obj[i]);
        }
    }
};

findeFilme(_root); 
das script ist schon mal ganz weit vorn.
gruß hans
schmalhans ist offline   Mit Zitat antworten
Alt 04-02-2005, 21:26   #11 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Gut, bei dem Skript
muss man davon ausgehen,
dass die Obejekte gerde
sichtbar sind.
Nur dann kann das Skript sie
erfassen.
Wenn die Objekte jetzt auf
der Zeitleiste noch nicht
erreicht wurden, erkennt
das Skript die Mc's noch nicht.

Also das Skript ist jetzt nicht
von mir. Ich habe es bei
RustyCake abgeschaut.
In meinem Fall habe ich es
unwesentlich modifiziert.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 04-02-2005, 22:10   #12 (permalink)
Neuer User
 
Benutzerbild von IIDarianII
 
Registriert seit: Feb 2005
Beiträge: 165
Exclamation

*vorsicht schwachsinn*
schonmal mit ner Stoppuht probiert
IIDarianII ist offline   Mit Zitat antworten
Alt 09-02-2005, 00:12   #13 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
@ IIDarianII, was meinst du mit *schwachsinn*, bitte erläutere dies.

mein problem ist, ich lade dynamisch swf's von einen ad-server und die filme kommen eben nicht von mir, sondern von irgend jemand, da hab ich keinen einfluss drauf wie die aufgebaut sind. die swf's sollen angezeigt werden, einmal durchlaufen und dann kommt wieder ein movie von mir, danach beginnt das ganze wieder von vorne.
...neues swf danach film von mir, und so weiter...

der ansatz von john ist nicht verkehrt, zumindest kann man schon mal bestimmen wieviele frames (root wie mc's) der film hat, vorausgesetzt man platziert das script am ende des zu ladenden film.

über geistreiche kommentare bin ich nach wie vor sehr aufgeschlossen.
gruß hans
schmalhans ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele