Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-03-2006, 10:37   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 33
JPGs dynamisch laden

Folgendes ist mein Problem:

Ich möchte 18 Bilder dynamisch in eine Zeitleiste laden. Jedes in einen eigenen Frame. Hinterher wird diese Animation durchgängig laufen so das die Bilder auch nur einmal geladen werden sollen und dann die ganze Zeit zur Verfügung stehen. Mit dem folgenden Code wird aber nur das erste Bild geladen. Beim zweiten Mal loest er noch alles richtig auf, aber beim preloaden bekommt er nicht mehr die Grösse der Datei und gibt nur noch 'NaN' aus.

PHP-Code:
var counter 1;

trace("counter1 : "+counter);

var 
containerName "container_"+counter+"_mc";
var 
imgPfad "../img/img_"+counter+".jpg"

this.createEmptyMovieClip(containerName,0);
this[containerName].loadMovie(imgPfad);

this.onEnterFrame = function ()
{
    
this.gesamt this[containerName].getBytesTotal ();
    
this.bereits this[containerName].getBytesLoaded ();
    
this.prozent this.bereits 100 this.gesamt;
    
trace(this.prozent);
    if (
this.prozent == 100)
    {
        
counter=counter+1;
        
this.play();

Ich denke das ich wohl eine Variable leeren muss?
__________________
.: NetzFischer :.
.: vista hilfe online :.
NetzFischer ist offline   Mit Zitat antworten
Alt 28-03-2006, 10:49   #2 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
So schön, wie du dir das vorstellst, geht das nicht! AS kennt keine Zeitleiste! Du arbeitest mit genau einem Frame!
Eine Möglichkeit wäre: für jedes Bild einen eigenen Container zu erstellen (was du im Moment nicht tust), die Bilder da reinladen, für alle die Position gleich setzen, die Höhe anpassen und diese dann per setIntervall nacheinander auszublenden.
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 28-03-2006, 10:56   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 33
Moment. Dieser Code wieder holt sich in jedem Frame der Zeitleiste. Also wird jedesmal ein neuer MovieClip erstellt der einen eigenen Namen hat. (containerName + counter)

und da ich diese Zeitleiste noch von aussen steuer muss. nuetzt mir kein intervall.

ein beispiel mit statischen bildern:
http://www.lexicar-server.de/ -> miniPlayer
__________________
.: NetzFischer :.
.: vista hilfe online :.

Geändert von NetzFischer (28-03-2006 um 10:59 Uhr)
NetzFischer ist offline   Mit Zitat antworten
Alt 28-03-2006, 11:03   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Zitat:
Zitat von NetzFischer
Dieser Code wieder holt sich in jedem Frame der Zeitleiste.
Wie kommst du denn auf das schmale Brett? Wie schon gesagt - AS kennt KEINE Zeitleiste! Sofern du den Code nicht auf jedem Frame stehen hast, wird der auch nicht immer ausgeführt! Das einzige, was (bei Bsp-weise 24bps) 24 mal pro Frame ausgeführt wird, ist die prozent-Abfrage. Dein restlicher Lade code wird definitiv nicht mehr ausgeführt. Darum ist das dann auch 'undefined' ab dem zweiten Bild... weil schlichtweg nix mehr geladen wird!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 28-03-2006, 11:10   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 33
also vielleicht schreib ich es nicht genau genug, aber ja in jedem einzelnen frame der zeitleiste wiederholt sich dieser code.

b) im ersten frame klappt es, im zweiten nicht mehr MIT DEM SELBEN CODE (wiederholt).
__________________
.: NetzFischer :.
.: vista hilfe online :.

Geändert von NetzFischer (28-03-2006 um 11:13 Uhr)
NetzFischer ist offline   Mit Zitat antworten
Alt 28-03-2006, 11:19   #6 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Dann steht obiger wirklich in jedem Frame???
Ist allerdings auch Humbug!
Probiers mal so:
PHP-Code:
var counter 1;
var 
containerName;
var 
imgPfad;
var 
watcher this.createEmptyMovieClip("watching"0);

function 
loadit() {
    
containerName "container_"+counter+"_mc"
    
imgPfad "../img/img_"+counter+".jpg" 
    
    
this.createEmptyMovieClip(containerNamecounter); 
    
this[containerName].loadMovie(imgPfad); 
    
watcher.onEnterFrame = function () 
    { 
        var 
gesamt this[containerName].getBytesTotal (); 
        var 
bereits this[containerName].getBytesLoaded (); 
        var 
prozent bereits/gesamt*100;
        if (
prozent >= 100
        {
            
delete this.onEnterFrame;
            
this._parent.play(); 
            
counter++;
            
loadit();
        }
    } 

__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 28-03-2006, 11:56   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 33
wenn das humbug ist, dann nen mir doch bitte die Vorgehensweise um 18 Bilder in 18 separate Frames innerhalb einer Zeitleiste zu laden, denn das mit den einzelnen Frames ist Bedingung, da es schon eine Steuerung gibt die das vorraussetzt.
__________________
.: NetzFischer :.
.: vista hilfe online :.
NetzFischer ist offline   Mit Zitat antworten
Alt 28-03-2006, 12:19   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...lad die Bilder einfach im ersten Frame alle vor. Danach dann einfach im jeweiligen Frame mit loadMovie() in einen MC. Da die dann aus dem Cache kommen, sollte das schon passen.

Allerdings wäre es natürlich schöner, deine "Steuerung" auch auf nur im ersten Frame zu haben.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 28-03-2006, 12:23   #9 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Zitat:
Zitat von NetzFischer
wenn das humbug ist, dann nen mir doch bitte die Vorgehensweise um 18 Bilder in 18 separate Frames innerhalb einer Zeitleiste zu laden, denn das mit den einzelnen Frames ist Bedingung
Ich sag's dir gerne nochmal! So wie du dir das vorstellst, funktioniert das nicht, weil ActionScript keine Zeitleiste kennt! Mit deinem (modifizierten) Beispiel würde schlichtweg ein Frame so lange angezeigt werden, bis das nächste Bild geladen ist!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 28-03-2006, 13:16   #10 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 33
ok, jetzt hab ich es verstanden. Da es mit dem Cache zu langsam geht, habe ich mich entschieden die Steuerung umzubauen. Daraus entstehen Fragen:

Ist es besser ...
a) mit den Ebenen zu arbeiten und das Bild das Angezeigt wird auf die höchste Ebene zu stellen,
b) die Bilder per _y / _x zu positionieren, also alle Bilder ausserhalb der Bühne und nur immer das aktuelle richtig zu Positionieren,
c) die Bilder per _alpha ein auszublenden (wobei _alpha ja wohl sehr performanz fressent ist)

Danke
__________________
.: NetzFischer :.
.: vista hilfe online :.
NetzFischer ist offline   Mit Zitat antworten
Alt 28-03-2006, 13:45   #11 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Hmmmm... wenn du die eh alle schon reinlädst, würde ich das gleich schlau machen, alle auf die selbe x- und y-Position setzen und die Tiefe bereits beim laden schlau wählen (1. Bild muss die höchste Tiefe haben!). Dann nach und nach das oberste Bild ausblenden (beispielsweise mit _visible = false als Alternative zu _alpha. Ist zwar kein Fading möglich - wenn du aber n'Framwechsel simulieren willst, sollte das auch gehen!) oder ganz entfernen, wenn du es nicht mehr brauchst...
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha 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 17:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele