| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jun 2002 Ort: austria
Beiträge: 36
| dynamisch erzeugte clips: inhalte verschwinden zur laufzeit??
hallo flasher, ich kämpf schon seit wochen mit folgendem problem: ich lade externe .jpgs in mein flashmovie, und zwar über aufruf einer .txt textdatei, die die bildernamen enthält. diese namen werden als variablen in ein array geladen und auf Basis der array-länge wird dann dynamisch ein movieclip pro bild an einen containerMC auf der hauptzeitleiste attached. der code, der in frame 1 auf der zeitleiste dieses Bildlade-movieclips liegt, sieht folgendermaßen aus: //"bild_mc" ist ein auf der bühne des BildladeClips liegender, leerer MC //"bildname" ist der beim attachen des Clips übergebene variablenwert aus //dem angesprochenen array this.bild_mc.loadMovie(bildname); this.onEnterFrame = function() { this.gesamt = this.bild_mc.getBytesTotal(); this.bereits = this.bild_mc.getBytesLoaded(); this.prozent = this.bereits*100/this.gesamt; if (this.bild_mc.getBytesTotal()>12) { this.balken_mc._width = this.prozent*0.5; this.pausgabe = int(this.prozent)+" %"; } if (this.prozent>=100) { this.bild_mc._width = 50; this.bild_mc._height = 50; delete this.onEnterFrame; this.balken_mc._visible = 0; this.pausgabe = ""; } }; Offline klappt alles wie es klappen soll. online leider nicht. Folgende Probleme treten auf: in Mozilla Firefox werden die Bilder meistens überhaupt nicht angezeigt, obwohl die externen variablen anscheinend ordnungsgemäß angekommen sind. Witzigerweise werden manchmal ein paar Bilder angezeigt, verschwinden dann aber plötzlich zur Laufzeit des movies einfach. In IE 6 werden dagegen eigentlich alle bilder richtig geladen. Sowohl in IE und Mozilla funktioniert die Preloader-Anzeige nur offline, online wird der preloader einfach nicht gestartet und ich versteh echt nicht warum. das teil in aktion zu sehen gibts auf folgender URL: http://www.testrender.com/_tests/main.html dort bitte auf das linke obere feld klicken, dann den menüpunkt "photos" wählen. dort ist die bildergallerie zu sehen. kann mir das irgendwer erklären? liegts daran, dass das flash movie für 15 clips einen preloader anzeigen müsste und dafür das streaming nicht schnell genug ist? ich verstehs nicht. bitte um euren rat danke david. |
| | |
| | #2 (permalink) |
| Gast
Beiträge: n/a
|
Du solltest versuchen, die Fotos hintereinander zu laden, wenn du Preloader verwendest. Flash "verschluckt" sich sonst gerne mit den Events. Also: im Preloader nach dem Löschen des onEnterFrame-Events über einen Funktionsblock das nächste Bild laden und nicht über eine for-Schleife o.ä. BTW: du könntest deine bild_mc._width und ._heigth auch schon vor dem Preloader auf 50 stellen, da die ja nicht abhängig von der echten Größe der Bilder sind. |
|
| | #4 (permalink) |
| Neuer User Registriert seit: Jun 2002 Ort: austria
Beiträge: 36
|
hi, also ich lade jetzt die bilder, wie von holger vorgeschlagen, mit einer kleinen abfrage immer eines nach dem anderen. zumindest werden sie jetzt auch korrekt geladen (Danke Holger!), allerdings wird der preloader (balken und dynam. textfeld) immer noch nicht angezeigt (Offline funktionierts, online nicht). in den zu ladenden attacheden containerclips liegen nun drei frames: in frame 1 vergleiche ich eine dem clip beim attachen zugewiesene "lade_id" mit einer auf einem controllerclip auf der hauptebene angelegten variable (var zu_ladendes_bild): this.onEnterFrame = function() { //lade_id wurde beim attachen der clips individuell generiert if (_parent.controlMC.zu_ladendes_bild == this.lade_id) { this.gotoAndStop("bild_laden"); } }; stop(); in frame 2, dem frame "bild_laden" liegt folgender code: //bildname (pfad zum .jpg) kommt aus externer textdatei this.bild_mc.loadMovie(bildname); this.bild_mc._width = 50; this.bild_mc._height = 50; this.onEnterFrame = function() { this.gesamt = this.bild_mc.getBytesTotal(); this.bereits = this.bild_mc.getBytesLoaded(); this.prozent = this.bereits*100/this.gesamt; if (this.bild_mc.getBytesTotal()>12) { this.balken_mc._width = this.prozent*0.5; this.pausgabe = int(this.prozent)+" %"; } if (this.prozent>=100) { this.balken_mc._visible = 0; this.pausgabe = ""; this.gotoAndStop("bild_geladen"); } }; stop(); und schliesslich liegt in frame 3 folgender code: _parent.controlMC.zu_ladendes_bild += 1; stop(); ich hab mal das .fla des containerclips attached. kann mir wer sagen, wieso die ladeanzeige ONLINE nicht funktioniert? (offline tut sie das anstandslos). |
| | |
| | #5 (permalink) |
| Gast
Beiträge: n/a
|
Du solltest deinen onEnterFrame-Event wieder löschen, wenn das Bild geladen wurde... Und wenn du mehrere davon benötigst, häng die Events an verschiedene MCs und nicht alle an die Hauptzeitleiste. Online könnte es sonst zu zeitkritischen Problemen kommen, weil ja nich so schnell nachgeladen wird, wie von der Festplatte... |
|
| | #6 (permalink) | |
| Neuer User Registriert seit: Jun 2002 Ort: austria
Beiträge: 36
| Zitat:
Und dieser Frame wird über die gotoAndStop Aktion verlassen, sobald das Bild geladen wurde. Läuft der onEnterFrame Event denn dann trotzdem weiter? und hängt mein preloader problem etwa auch damit zusammen? | |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jun 2002 Ort: austria
Beiträge: 36
|
ok, hab jetzt mal eine trace aktion in das event eingebaut und du hattest natürlich recht. Das script wurde zur Laufzeit immer weiter ausgeführt. Was ich aber interessant finde ist, dass das onEnterFrame Event in Frame 1 des Clips anscheinend NICHT weiter ausgeführt wird, sobald der frame verlassen wurde, das oben angesprochene Event in Frame 2 aber schon. Wie lässt sich denn sowas erklären? naja, jedenfalls hat das einauen der delete aktion mein preloader problem auch nicht gelöst. ich kapier das nicht. hab jetzt schon mehrere varianten, unter anderem mit der loader klasse ausprobiert, aber der balken will und will nicht wachsen. grmbl. irgendjemand einen vorschlag? (file wurde in einem vorhergehenden post attached). |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Jan 2004
Beiträge: 25
|
Leider kann ich dir die Frage nicht beantworten, weil ich nen AS-Noob bin. Aber könntest du mir vielleicht mal erklären, wie ich das Script und die Textdatei aufbauen muss, so dass sich jpg's der Reihe nach in einen einzigen MC legen??? (auf Knopfdruck versteht sich) Quasi so wie dein Ladecontainer... Geändert von sincomp (14-07-2005 um 08:26 Uhr) |
| | |
| | #10 (permalink) | |
| Gast
Beiträge: n/a
| Zitat:
Aber hier mal ein Vorschlag für einen Preloader mit Balken: ActionScript:
| |
|
| | #11 (permalink) | |
| Neuer User Registriert seit: Jun 2002 Ort: austria
Beiträge: 36
|
@sincomp: ich empfehle dir mal folgenden link, ich glaube wenn du dir da eines der tuts loadest hast dus leichter, als mit meinem konfusen script. ![]() http://www.flashstar.de/tutlist/index.php3?bereich=flash2004extern schau dir dort mal die "dynamic image" tutorials an. auf basis von denen hab ich mein script auch entwickelt. @holger: Zitat:
jedenfalls werd ich versuchen dein Script mal ein wenig anzupassen und schaun, obs funktioniert. man liest sich. | |
| | |
| | #12 (permalink) | |
| Gast
Beiträge: n/a
| Zitat:
| |
|
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |