Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-05-2006, 17:45   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 29
Question mehrere swf in einem mc

Hi Leute,

ich will mehrere swf's in einen MC laden. Wie ist es möglich die aneinander zu hängen?

Ich will nicht, dass einfach kontrolliert wird, wann der erste Film fertig geladen ist und dann der zweite abgespielt wird, sondern alle Filme sollen gleichzeitig zur Verfügung stehen, da ich auf diese per GotoAndPlay zugreifen muss.
erik_dl ist offline   Mit Zitat antworten
Alt 13-05-2006, 17:49   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
>ich will mehrere swf's in einen MC laden

geht nicht.
jedes swf braucht einen eigenen mc, sonst überschreiben
sie sich gegenseitig. allerdings kannst du mehrere mcs
wiederum in einen «umfassenden» mc packen.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 13-05-2006, 17:50   #3 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Tag!
Dann lad jeden Film in einen leeren MC, dessen Ladeststus du prüfst. Können ja z.B. neben der Bühne liegen oder auf _alpha = 0 stehen. Sind alle Filme geladen kann's losgehen. Kannst du auch mit einem MC machen, in den du nacheinander die swfs lädst. Da sie danach aus dem Cache kommen geht das auch.
Such im Zweifel mal nach "Preloader"....
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-05-2006, 18:06   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 29
ich würde dann also so eine art übergangs-mc für jeden film mache.
wie ist es dann möglich einen übergangs-mc, der der angezeigt werden soll, in den haupt-mc zu laden (der dann die animation anzeigt)?
erik_dl ist offline   Mit Zitat antworten
Alt 13-05-2006, 18:09   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
na das is doch fast nen klassiches preloader problem.
ob die dinger nun parallel oder nacheinander geladen werden spielt keine Rolle, die Bandbreite wird im Normalfall eh komplett ausgenutzt.
Im Prinzip brauchste nen normalen Preloader, der die Ladevorgänge startet, der die Anzahl kennt, und der nun entweder alle überwacht, oder die mcs melden sich selbst beim Loader, der dann die erfolgreichen Ladevorgänge zählt. Danach gibt er das okay zum abspielen.

hier mal ungetestet
ActionScript:
  1. LoadControl=function(tl){
  2.  this.tl=tl
  3.  this.zuladen=0
  4.  this.counter=0
  5.  this.depthOffset=10
  6.  this.loadingMovies=[]
  7. }
  8. var o=LoadControl.prototype
  9. //starte den ladevorgang aller swf, hinterleg den pfad zu den einzelnen movies
  10. o.ladeSWFS=function(mcArray){
  11. this.zuladen=mcArray.length
  12. for(var i=0;i<this.zuladen;i++){
  13.  var swf=mcArray[i]
  14.  this.loadingMovies.push(this.ladeSwf(swf))
  15. }
  16. o.ladeSwf=function(swf){
  17. //ein clip für enterFrames und andere eigenschaften, zB visible, die nicht
  18. //durch das laden resettet werden sollen
  19. var clip=this.tl.createEmptyMovieClip("movie"+this.counter,this.counter+this.depthOffset)
  20. //ein contaienr zum laden
  21. var swfcontainer=clip.createEmptyMovieClip("container",1)
  22. swfcontainer.loadMovie(swf)
  23. return o={swfcontainer:swfcontainer,clip:clip}
  24. }
  25. //liefert die Preloadfunktion für jeden einzelnen clip
  26. o.getPreloader=function(){
  27. var f=function(){
  28. var g=this.clip.getBytesLoaded()
  29. var z=this.clip.getBytesTotal()
  30. var p=g/z
  31. if(z<10) p=0
  32. if(p>=1){
  33. //fertig
  34. this._callback.apply(this.myMother)
  35. delete this.onEnterFrame
  36. }
  37. }
  38. }
  39.  
  40. o.setPreloader=function(clip,preloadFunc){
  41. clip.myMother=this
  42. clip._callback=this.finishedMovie
  43. clip.onEnterFrame=preloadFunc
  44. }
  45. //wird von jedem zuende geladenen mc aufgerufen
  46. o.finishedLoading=function(){
  47.  this.counter++
  48.  if(this.counter>=this.zuladen){
  49.   this.afterLoading()
  50.  }
  51. }
  52. //wenn alles geladen ist auszuführen
  53. o.afterLoading=function(){
  54. for(var i=0;i<this.loadingMovies.length;i++){
  55. var movie=this.loadingMovies[i]
  56. var clip=movie.clip
  57. clip.gotoAndPlay("start")
  58. }
  59. }
  60.  
  61. loader=new LoadControl()
  62. loader.ladeSWFS(["eine.swf","nocheine.swf","wiedereine.swf"])

grüße
deluxe

edit: hmm ich teste das ding mal, glaube du findest mögliche fehler nicht *smileynachobenkuck*

Geändert von Deluxe (13-05-2006 um 18:11 Uhr)
Deluxe ist offline   Mit Zitat antworten
Alt 08-02-2008, 20:55   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 2
Ich arbeite mit as2 kenne mich aber wenig bis gar nicht damit aus.

Stunden lang habe ich mir die moviecliploader und listener Sachen angeschaut und herumprobiert, komme aber nicht weiter.

im Hauptfilm soll an einer bestimmten Position ein film geladen werden, sobald der geladene film fertig ist, soll der nächste geladen werden, usw. bis alle filme durch sind und dann wieder der erste.

Ich habe es nur so geschafft zu lösen in dem ich den ersten film mit

Code:
_root.ref.loadMovie ("ref_1.swf")
starte, und am ende des ersten films dann mit

Code:
_root.ref.loadMovie ("ref_2.swf");
stop();
den nächsten starte.

Ich würde sie aber gerne alle aus dem Hauptfilm laden und nacheinander abspielen lassen, mit dem Vorteil, dass der nächste schon geladen wird während der aktuelle noch läuft.

Kann ich script von deluxe dafür verwenden wenn ja,

Code:
//starte den ladevorgang aller swf, hinterleg den pfad zu den einzelnen movies
in welcher zeile geb ich die pfade an?
danieLius ist offline   Mit Zitat antworten
Alt 08-02-2008, 21:22   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
Zeile 62 zeigt den Aufruf.
Aber: Es werden alle Movies parallel geladen!

Du willst die Sache sequenziell.
Also musst du den 1. Movie preloaden, danach starten und den nächsten Movie vorladen. Dazu gehört dann noch der Check ob nach dem Laden von Movie 2 dieser gestartet werden soll oder ob auf Film1 gewartet werden soll. Während dem Warten kann dann alternativ Movie 3 zu laden beginnen. Mit dem Script wie es momentan darsteht kommste also nicht weiter- da kommen einige Anpassungen auf dich zu.

Grüße
Deluxe ist offline   Mit Zitat antworten
Alt 08-02-2008, 22:00   #8 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 2
ich kann den code zwar meistens entziffere und weiß auch meistens was damit bewerkstelligt werden soll, aber um den anzupassen reichen meine momentanen Kenntnisse noch nicht aus, Ich beschäftige mich erst seid einer Woche mit flash, und habe mich die ersten 3-4 tage, 10 std am tag ausschließlich mit den Werkzeugen, Zeitleiste, Animationen usw. beschäftigt, mit AS schlag ich mich erst seit kurzem herum.

Mir wurde geraten die Dinger direkt mitrein zu packen. Ich denke ich probiere das, auch wenn es mir unvorteilhaft erscheint, weil das ganz eigene Filme sind, und davon 10-15 Stück, die jeweils bis zu 600kb groß sein können. Dann teste ich mal das lade verhalten.

Kannst du mir sagen was vorteilhafter wäre?
danieLius 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 22:51 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele