Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-09-2007, 16:52   #1 (permalink)
Bionicman
 
Benutzerbild von dark-future
 
Registriert seit: Apr 2007
Ort: Oberhausen - NRW
Beiträge: 29
Question Position von dynamisch geladenen Bildern in einer Liste

Hallo,

Folgendes Problem:
Ich lade für eine Credits Anzeige Text und Bilder dynamisch in ein MC.
Sprich ich arbeite eine for-Schleife ab in der createTextField bzw. createEmptyMovieClip und loadClip zum Einsatz kommen. Nach jedem Schleifeneintrag wird eine globale yPosition hochgezählt.

ich benutze diesen Listener:
Code:
var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadInit = function(image_mc:MovieClip) {
    image_mc._x = Stage.width/2-image_mc._width/2;
    image_mc._y = global.yPosition;
    _global.yPosition += image_mc._height;
};
my_mcl.addListener(mclListener);
Allerdings finden die onLoadInit Events alle am Ende der for-Schleife statt, weshalb die Bilder alle ans Ende der Liste gesetzt werden.

Wie kann ich das verhindern?

Gruß,
Bionicman
dark-future ist offline   Mit Zitat antworten
Alt 26-09-2007, 11:37   #2 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
wie hast du die for-schleife mit den listeners verknüpft?

Ich wette dass da jeweils immer der gleiche Listener wieder überschrieben wird, oder ähnliches.
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 26-09-2007, 12:12   #3 (permalink)
Bionicman
 
Benutzerbild von dark-future
 
Registriert seit: Apr 2007
Ort: Oberhausen - NRW
Beiträge: 29
Hmm, habe noch nie Listener benutzt, weiss nicht so genau was da passiert. Meine Schleife sieht in etwa so aus.

Code:
for(var i=0; i<company_names.length; i++) {
        container.createTextField("text_"+i, _global.aktuelle_tiefe, 0, _global.yPosition, 1024, 42);
        _global.aktuelle_tiefe++;
	company = eval("container.text_"+i);
	company.text = company_names[i];
	_global.yPosition += 60;

	container.createEmptyMovieClip("logo_mc_"+i, _global.aktuelle_tiefe);
	_global.aktuelle_tiefe++;
	image = eval("container.logo_mc_"+i);
	my_mcl.loadClip("Logos/"+images[i], image);
	_global.yPosition += 20;
}
Das mit dem überschreiben klingt plausibel, aber wie gesagt, noch nie mit gearbeitet!? Wie kann ich das denn ändern?

Danke,
Bionicman
dark-future ist offline   Mit Zitat antworten
Alt 26-09-2007, 12:32   #4 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
my_mcl wird hier jedesmal überschrieben.

Du kannst hier jetzt Abhilfe schaffen indem du mehrere my_cl generierst:

PHP-Code:
this["my_mcl"+i
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 26-09-2007, 15:14   #5 (permalink)
Bionicman
 
Benutzerbild von dark-future
 
Registriert seit: Apr 2007
Ort: Oberhausen - NRW
Beiträge: 29
Question

Ok, danke schon Mal für die Antwort!

Was ich noch nicht verstanden habe ist, wovon ich denn mehrere Instanzen erstellen muss? Ich habe ja ein
Code:
var my_mcl:MovieClipLoader = new MovieClipLoader();
außerhalb der for-Schleife. Dann kann ich ja vermutlich nicht einfach mit this["my_mcl"+i] weitere Kopien erstellen?!

Habe folgendes versucht, ohne Glück, bzw. die Bilder werden zwar geladen aber der Listener spuckt die Events wieder erst am Ende nach der Schleife aus.
Code:
	this["my_mcl"+i] = new MovieClipLoader();
	this["my_mcl"+i].addListener(mclListener);
	this["my_mcl"+i].loadClip("Logos/"+images[i], image);
Wie mache ich das denn genau?

Gruß,
Bionicman

Geändert von dark-future (26-09-2007 um 15:34 Uhr) Grund: Tippfehler ;)
dark-future ist offline   Mit Zitat antworten
Alt 28-09-2007, 14:58   #6 (permalink)
Bionicman
 
Benutzerbild von dark-future
 
Registriert seit: Apr 2007
Ort: Oberhausen - NRW
Beiträge: 29
Unhappy

Kleine Info dazu wie das geht wäre noch nett. Teste mir schon nen Wolf aber das Ergebnis ist immer folgendes:

Code:
listener erstellen {
    trace "geladen"
}

for {
    attach MC
    trace "in"
    lade Bild
}

Output:
in
in
in
geladen
geladen
geladen
Wie mach ich denn diese Listener, damit die Schleife erst dann fortgesetzt wird, wenn das Bild auch geladen und ich die Bildinformationen verwenden konnte.

Gruß,
Bionicman
dark-future ist offline   Mit Zitat antworten
Alt 28-09-2007, 15:06   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Als Beispiel/Ansatz:

Bilder untereinender darstellen
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 28-09-2007, 15:47   #8 (permalink)
Bionicman
 
Benutzerbild von dark-future
 
Registriert seit: Apr 2007
Ort: Oberhausen - NRW
Beiträge: 29
Lightbulb

Danke Frager,

So gehts natürlich. Bis ich auf die Idee gekommen wäre, hätte es wohl noch ein Weilchen gedauert

Dann mach ich mich ma ans umstrukturieren...

Gruß,
Bionicman
dark-future ist offline   Mit Zitat antworten
Alt 29-09-2007, 20:07   #9 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
Zitat:
Zitat von dark-future Beitrag anzeigen
Habe folgendes versucht, ohne Glück, bzw. die Bilder werden zwar geladen aber der Listener spuckt die Events wieder erst am Ende nach der Schleife aus.
Code:
	this["my_mcl"+i] = new MovieClipLoader();
	this["my_mcl"+i].addListener(mclListener);
	this["my_mcl"+i].loadClip("Logos/"+images[i], image);
Wie mache ich das denn genau?
hier jetzt noch jeweils immer einen separaten Listener vergeben, nicht immer den gleichen. Aber Der Frager hat das ja galant gelöst.

Oder: warten bis ein ClipLoader fertiggeladen hat, und dann erst den selben Listener weiterverwenden.
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 14-08-2009, 01:49   #10 (permalink)
Neuer User
 
Benutzerbild von cuep01
 
Registriert seit: Jan 2004
Ort: Berlin
Beiträge: 147
hallo,

ich muss das alte ding ma vorkramen
ich habe das script vom frager ma auf _x umgebaut und versuche dort dynamsich noch einen rahmen sowie einen schatten rumzusetzen. nur irgendwie funkrioniert das überhaupt nicht.
kann sich das vielleicht mal jemand anschauen und mir einen brauchbaren tipp geben?

hier das script.
PHP-Code:
var anzahl 9;
var 
border:Number 10;
var 
0;
var 
picWidth 0;
var 
mcl = new MovieClipLoader();
var 
ml = {};
ml.onLoadInit = function(obj) {
    
obj._x picWidth;
    
picWidth += obj._width+5;
    var 
pic_breite:Number obj.picloader_mc._width;
    
trace(pic_breite);
    var 
pic_hoehe:Number obj.picloader_mc._height;
    
obj.rahmen_mc._width pic_breite+border;
    
obj.rahmen_mc._height pic_hoehe+border;
    
obj.rahmen_mc._x 0;
    
obj.rahmen_mc._y 0;
    
obj.picloader_mc._x border/2;
    
obj.picloader_mc._y border/2;
    
obj.rahmen_mc._visible true;
    var 
shadowHeight:Number obj.shadow_top_left_mc._height;
    var 
shadowWidth:Number obj.shadow_top_left_mc._width;
    
obj.shadow_top_left_mc._x = -10;
    
obj.shadow_top_left_mc._y = -(shadowHeight);
    
obj.shadow_top_right_mc._x obj.rahmen_mc._width+10;
    
obj.shadow_top_right_mc._y = -(shadowHeight);
    
obj.shadow_bottom_left_mc._x = -10;
    
obj.shadow_bottom_left_mc._y obj.rahmen_mc._height+obj.shadow_bottom_left_mc._height;
    
obj.shadow_bottom_right_mc._x obj.rahmen_mc._width+10;
    
obj.shadow_bottom_right_mc._y obj.rahmen_mc._height+obj.shadow_bottom_left_mc._height;
    
obj.shadow_top_left_mc._alpha 50;
    
obj.shadow_top_right_mc._alpha 50;
    
obj.shadow_bottom_left_mc._alpha 50;
    
obj.shadow_bottom_right_mc._alpha 50;
    
laden();
};
mcl.addListener(ml);
//
function laden() {
    if (++
i<=anzahl) {
        
picattach_mc.attachMovie("container_mc""pic"+i+"_mc"i);
        var 
picpfad picattach_mc["pic"+i+"_mc"];
        
trace("galerie/Bild"+("0"+i).substr(-2)+".jpg");
        
mcl.loadClip("galerie/Bild"+("0"+i).substr(-2)+".jpg"picpfad.picloader_mc);
    }
}
laden(); 
vielen dank im vorraus.
__________________
http://www.304dpi.de
cuep01 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 02:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele