Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-12-2005, 12:09   #1 (permalink)
It's all a Game
 
Benutzerbild von Kandidat
 
Registriert seit: Sep 2004
Ort: Berlin
Beiträge: 53
Lightbulb Dynamische Bildleiste

Hallo Sportsfreunde, hier ist der Kanditat.

Eigentlich bin ich Grafiker und die Menge meiner funktionierenden Skripts belaufen sich insgesamt auf vielleicht 5 DinA4 Seiten. Die Menge an Code den ich dafür geschrieben und verworfen und ausprobiert und verändert habe der beläuft sich vielleicht mitlerweile auf 180 DinA4 Seiten. Ich kenn mich also nicht so gut aus, aber ich habe Ziele! Kannst Du mir helfen?

Folgendes soll passieren: Ein schmaler Flashstreifen soll mit Thumbnail.jpgs eine Reihe formen. Jedes Thumbnail soll ein Popup öffnen und auf die Show.html verlinken. Dabei soll bei jedem Thumbnail abgewartet werden, bis es komplett geladen wurde und anschließend einfaden.

Soweit bin ich schon: Die Bilder werden definiert. Die Dropzones für das Loadmovie verteilen sich dynamisch auf den Film. Der Loadmovie funktioniert auch.

Bitte scrolle zu den nächsten Posts weiter unten

AUFBAU & PROBLEMATIK NICHT MEHR AKTUELL

PHP-Code:
// GLOBAL SETTINGS
_global.BILDGROESSE_x 160;
_global.BILDGROESSE_y 110;
_global.BILDANZAHL 4;
_global.FADESTEPS 10;
//
//
Vorschaubild = function (nrpfadlink) {
    
this._nr nr;
    
this._pfad pfad;
    
this._link link;
};
//
//
// Go Ahead!
Go_ahead = function () {
    for (
i=1i<(BILDANZAHL+1); i++) {
        
// 
        // Dropzones
        
yabs = ((Stage.height-(BILDANZAHL*BILDGROESSE_y))/BILDANZAHL)*0.5;
        
ypos = ((BILDGROESSE_y*i)-BILDGROESSE_y)+(yabs*i);
        
xpos = (Stage.width-BILDGROESSE_x)/2;
        
_root.attachMovie("dropzone""dz"+i+"_mc"i);
        
_root["dz"+i+"_mc"]._x xpos;
        
_root["dz"+i+"_mc"]._y ypos;
        
// 
        // Bilder & Daten
        
_root["bild"+i] = new Vorschaubild(i"left"+i+"/thumb.jpg""left"+i+"/show.html");
        
trace("Bildkontrolle Nr."+this["bild"+i]._nr);
        
trace("Pfad: "+this["bild"+i]._pfad);
        
trace("Link: "+this["bild"+i]._link);
        
trace("Position: X="+this.xpos+" Y="+this.ypos);
        
// 
        // Load Movie
        
var mc = ["dz"+i+"_mc"];
        var 
jpg = ["left"+i+"/thumb.jpg"];
        
loadMovie(jpgmc);
        
_root["dz"+i+"_mc"]._alpha 0;
        
// 
        // Preload & Fade
        
_root["dz"+i+"_mc"].onEnterFrame = function() {
            var 
bloaded _root["dz"+i+"_mc"].getBytesLoaded;
            var 
btotal _root["dz"+i+"_mc"].getBytesTotal;
            
// 
            
if (bloaded=btotal) {
                var 
0;
                if (
j<FADESTEPS) {
                    
_root["dz"+i+"_mc"].alpha += (100/FADESTEPS);
                    
j++;
                    
trace("Fadeing = "+_root["dz"+i+"_mc"]._alpha);
                } else {
                    
_root["dz"+i+"_mc"].onEnterFrame undefined;
                }
            }
        };
        if (
== BILDANZAHL) {
            
trace("Ok");
        }
    }
};
// Platzrelay
if (Stage.width<(BILDGROESSE_x)) {
    
trace("ERROR (Filmbreite nicht ausreichend)");
} else if (
Stage.height<=(BILDGROESSE_y*BILDANZAHL)) {
    
trace("ERROR (Filmhöhe nicht ausreichend)");
} else if (
Stage.height>(BILDGROESSE_y*BILDANZAHL)) {
    
Go_ahead();



Was eben nicht funktioniert ist diese Preloadgeschichte. Ich muss ehrlich sagen ich bin an dieser Stelle so wie sie jetzt aussieht mit meinem Denkvermögen überfordert. Ich habe zu viel Wissenslücken und komm nicht weiter. Das Ziel bei Preload & Fade ist das jeder einzelne Thumbnail abwarten soll bis er geladen wurde und darauf hin ein if FadeIn dem dz[i]_mc seinen Alpha zurückgibt und danach den ganzen Zauber auflöst.

Ich dachte, dass diese Lösung über ein Enter Frame vielleicht möglich ist.

Dann gehts auch schon weiter mit meinen Fragen. Welche Methode ist hier die geeignetste, um ein onRelease einzusetzen?

Gruß Paul

ps.: Ich währe auch schon dankbar, wenn mir einer sagt was ich alles falsch gemacht habe.
__________________
//Iss nich immer so viel sinnlosen Zucker!
//Iss mal ne Banane zur Abwechslung!

viel.Vitamine = Gesund (Duuuuuuu! Ganove ;-)


Links:
Mein Kofferradio. Mit lauter Smith-Songs
Mein MySpace Account

Geändert von Kandidat (01-12-2005 um 23:09 Uhr)
Kandidat ist offline   Mit Zitat antworten
Alt 01-12-2005, 22:16   #2 (permalink)
It's all a Game
 
Benutzerbild von Kandidat
 
Registriert seit: Sep 2004
Ort: Berlin
Beiträge: 53
Neukonzipiert Und Funktioniert!!!

Neukonzipiert Und Funktioniert!!!
Das Skript ist jetzt funktionstüchtig und macht was es soll. Bis auf eine Stelle:

Es werden Jpg's in dynamische Movieclips geladen. Dann werden diese Eingefadet. Zwischen den beiden Vorgängen soll ein Preloadabstand entstehen. Aktionscript soll abwarten bis das JPEG geladen wurde und erst dann den Movieclip einfaden.

PHP-Code:
Picture.prototype.loadjpeg = function() {
    
_root["dz"+this.nr+"_mc"].target_mc.loadMovie(this.jp_root["dz"+this.nr+"_mc.target_mc"]);
    var 
byToa this.getBytesTotal;
    var 
byLoa _root["dz"+this.nr+"_mc"].getBytesLoaded;
    
trace(byToa+" | "+byLoa);
    
this.onEnterFrame = function() {
        if (
byLoa<=byToa) {
        } else {
            
this.fade();
        }
    };
}; 
Meine Frage: Wie komme ich jetzt an die getBytes-Informatioen? Im Trace erscheint immer nur type-function.
__________________
//Iss nich immer so viel sinnlosen Zucker!
//Iss mal ne Banane zur Abwechslung!

viel.Vitamine = Gesund (Duuuuuuu! Ganove ;-)


Links:
Mein Kofferradio. Mit lauter Smith-Songs
Mein MySpace Account

Geändert von Kandidat (01-12-2005 um 22:57 Uhr)
Kandidat ist offline   Mit Zitat antworten
Alt 01-12-2005, 22:17   #3 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
lach, schreib mal hinter die methode dit hier: (); aka. getBytesTotal(); oder getBytesLoaded();

außerdem mußt du die werte innherhalb des onEnterFrame Events permanent aktualisieren & danach mit if peng abfragen ...

in etwa* so:
PHP-Code:
Picture.prototype.loadjpeg = function() {
    
_root["dz" this.nr "_mc"].target_mc.loadMovie(this.jp_root["dz" this.nr "_mc.target_mc"]);
    
this.onEnterFrame = function() {
        var 
byToa _root["dz" this.nr "_mc"].getBytesTotal();
        var 
byLoa _root["dz" this.nr "_mc"].getBytesLoaded();
        var 
percent byLoa 100 byToa;
        
trace(byToa " | " byLoa);
        if (
percent >= 100) {
            
delete this.onEnterFrame;
            
trace('finito');
            
// mach was wenn fertig ...
        
} else {
            
this.fade();
        }
    };
}; 
*wobei das noc immer nicht das gelde vom ei ist... ik geh jetzt ine keia. jute nacht
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (01-12-2005 um 22:24 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 01-12-2005, 22:38   #4 (permalink)
It's all a Game
 
Benutzerbild von Kandidat
 
Registriert seit: Sep 2004
Ort: Berlin
Beiträge: 53
Question

Danke Shorty für Deine schnelle Reaktion.

Das hapert aber immernoch. Auch bei Deiner Version sowie bei meiner wird die onEnterFrame-Methode scheinbar übergangen WESTE DENN DA STEHT NÜSCHT MIT TRACE IM FENSTA... ÜBERHAUPT JAARNÜSCHT! Ehh

Auch bei dem Versuch das Enterframe auf die Instanz des _root["dz"+this.nr+"_mc"].enterFrame = ... zu bringen kam nur Käse bei raus. Der Strich in der Mitte wurde angezeigt aber die byToas und byLoas waren leer, ohne irgendwelche Daten.

Trotzdem coole if-Methode mit den percents.
PHP-Code:
Picture.prototype.loadjpeg = function() {
    
_root["dz"+this.nr+"_mc"].target_mc.loadMovie(this.jp_root["dz"+this.nr+"_mc.target_mc"]);
    
_root["dz"+this.nr+"_mc"].onEnterFrame = function() {
        var 
byToa _root["dz"+this.nr+"_mc"].getBytesTotal();
        var 
byLoa _root["dz"+this.nr+"_mc"].getBytesLoaded();
        var 
percent byLoa*100/byToa;
        
trace(byToa+" | "+byLoa);
        if (
percent>=100) {
            
delete _root["dz"+this.nr+"_mc"].onEnterFrame;
            
trace("finito");
            
// mach was wenn fertig ...
            
this.fade();
        }
    };
}; 
Wo muss denn nach dieser Logik das getBytesLoaded*hust*(); jetzt angezapft werden um die Bytes vom Jpeg zu erhalten?

Edit
Naa Super. Shorty geht pennen. Ich kann jetzt nich schlafen, das muss fertig werden dass muss fertig werden. this.Kandidat(NEEDSSUCCES) = erstschlafenwennfertig trace(funktionierts?) if (funktionierts==false) {this.Kandidat(NEEDSSUCCES);}
__________________
//Iss nich immer so viel sinnlosen Zucker!
//Iss mal ne Banane zur Abwechslung!

viel.Vitamine = Gesund (Duuuuuuu! Ganove ;-)


Links:
Mein Kofferradio. Mit lauter Smith-Songs
Mein MySpace Account

Geändert von Kandidat (01-12-2005 um 23:05 Uhr)
Kandidat ist offline   Mit Zitat antworten
Alt 02-12-2005, 01:18   #5 (permalink)
nekoupour
Gast
 
Beiträge: n/a
Wozu ist denn überhaupt noch diese Zeile gut, wenn du diese garnichts nutzt?


Code:
// Load Movie
        var mc = ["dz"+i+"_mc"];
        var jpg = ["left"+i+"/thumb.jpg"];
        loadMovie(jpg, mc); //Besser this.loadMovie(xx,xx);
Zapf die getBytesLoaded() usw. an "mc" an....bla bla bla
  Mit Zitat antworten
Alt 02-12-2005, 02:33   #6 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
ohne mir jetzt dein as oben angeschaut zu haben hab ich einfach nur mal folgendes modifiziert... nur ein bissal aufgeräumt, nicht getestet

PHP-Code:
Picture.prototype.loadjpeg = function() {
    
    var 
mc _root["dz" this.nr "_mc"];
    var 
target mc.target_mc;//oder halt _root["dz"+this.nr+"_mc.target_mc"]
    
    
var byToa 0;
    var 
byLoa 0;
    var 
percent 0;
    
    
target.loadMovie(this.jp);
    
    
mc.onEnterFrame = function() {
        
        
byToa target.getBytesTotal();
        
byLoa target.getBytesLoaded();
        
percent byLoa 100 byToa;
        
        
trace(byToa " | " byLoa);
        
        if (
percent >= 100) {
            
            
delete this.onEnterFrame;
            
            
trace("finito");
            
            
trace("mc" this);
            
trace("target" target);
            
        }
        
    };
    
}; 
cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 02-12-2005, 10:57   #7 (permalink)
It's all a Game
 
Benutzerbild von Kandidat
 
Registriert seit: Sep 2004
Ort: Berlin
Beiträge: 53
Jo!!!! Bei den unteren Trace-events erscheint jetzt folgendes im Ausgabefenster:

Code:
Bild Nr.1 x=20 y=2
aktuell/left1/show.html
aktuell/left1/thumb.jpg
20015 | 20015
finito

mc_level0.dz1_mc
target_level0.dz1_mc.target_mc


Bild Nr.2 x=20 y=119
aktuell/left2/show.html
aktuell/left2/thumb.jpg
20015 | 20015
finito

mc_level0.dz2_mc
target_level0.dz2_mc.target_mc
Die Bytes werden richtig ausgelesen! Mich irritiert das Level0 ich hab keinen Plan warum das jetzt plötzlich auftaucht. Hat das etwas mit den _root. und/oder this. Bezeichnungen zutun?

@ Salazar danke für die kleine Jongliereinlage mit den Variablen. Mir sind die Möglichkeiten in AS noch gar nicht alle bewusst.

Aber ich glaube ich habe zuvor den Movieclip schon falsch attached. Es tat sich erst etwas, als ich bei den Zuweisungen des attach.Movie folgendes änderte:

PHP-Code:

this
.getMyMC = function() {
        return 
"dz"+this.nr+"_mc";
    };
// War vorher: this.mc = ["dz"+this.nr+"_mc"];

--- Attach Movie ---

_root.attachMovie("dropzone"this.getMyMC(), this.nr);
// War vorher _root.attachMovie("dropzone", this.mc, this.nr); 
Ich habe "return" benutzt um eine klare Variable zu erhalten und ließ die Funktion im Attach Movie ablaufen. Faszinierend das Ganze.
__________________
//Iss nich immer so viel sinnlosen Zucker!
//Iss mal ne Banane zur Abwechslung!

viel.Vitamine = Gesund (Duuuuuuu! Ganove ;-)


Links:
Mein Kofferradio. Mit lauter Smith-Songs
Mein MySpace Account

Geändert von Kandidat (02-12-2005 um 11:26 Uhr)
Kandidat 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 08:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele