Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-03-2005, 14:44   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 18
scriptgenerierte MC's sind nicht sichtbar

Hallo

Ich habe folgendes Problem,
Beim erstellen einer Galerie werden die per Script erzeugten MovieClips nicht angezeigt. Ich weiss aber absolut nicht, was ich noch anders machen soll.
Der Debugger meint, das die _height bzw _width von mc_gal auf 0 stehen.
Das setzen der Werte scheint ignoriert zu werden.

Hier mal die Funktion:

PHP-Code:
function doGalerie(pfad) {
    if (
pfad == null) {
        
pfad "galerie.firstChild.firstChild.childNodes[0]";
    }
    
picarr getjpgs(pfad);
    
createEmptyMovieClip("mc_gal"1);
    
mc_gal._width=500;
    
mc_gal._height=300;
    
y_tmp=0;
    
x_tmp=0;
    for (
i=0i<picarr.lengthi++) {
            
//skalieren Rückgabe ist ein Array[neu_x,neu_y]
        
thumbdim thumbsize([picarr[i][1], picarr[i][2]]);
        
mc_gal.createEmptyMovieClip("bildmc"+ii);
        
mc_gal["bildmc"+i]._x=x_tmp;
        
mc_gal["bildmc"+i]._y=y_tmp;
        
mc_gal["bildmc"+i]._width thumbdim[0];
        
mc_gal["bildmc"+i]._height thumbdim[1];
        
mc_gal["bildmc"+i].loadMovie(picarr[i][0], i);
        
x_tmp+=200;

    }
    
//picarr[i,0]=name
    //picarr[i,1]=breite
    //picarr[i,2]=hoehe

Vielleicht fällt ja jemandem was ein, wo der Fehler liegen könnte.

Blackfox
blackfox1982 ist offline   Mit Zitat antworten
Alt 12-03-2005, 14:51   #2 (permalink)
Pharao a.D.
 
Benutzerbild von Tut-ench-aton
 
Registriert seit: Jul 2004
Ort: 29°58'33.34'' N, 31°07'49.29'' O
Beiträge: 430
Du kannst einem leeren MC keine Breite und Höhe zuweisen, da er immer 0 pixel Größe hat. Erst mit Inhalt (zum Beispiel Draw-Objekten oder geladenen MCs) bekommt er eine editierbare Größe zugewiesen.
Ich würde die _height und _width-Zuweisung ans Scriptende stellen.
Tut-ench-aton ist offline   Mit Zitat antworten
Alt 12-03-2005, 14:54   #3 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
PHP-Code:
function doGalerie(pfad) { 
    if (
pfad == null) { 
        
pfad "galerie.firstChild.firstChild.childNodes[0]"
    } 
    
picarr getjpgs(pfad); 
    
createEmptyMovieClip("mc_gal"1); 
    
mc_gal._width=500// zu früh
    
mc_gal._height=300// zu früh 
    
y_tmp=0
    
x_tmp=0
    for (
i=0i<picarr.lengthi++) { 
            
//skalieren Rückgabe ist ein Array[neu_x,neu_y] 
        
thumbdim thumbsize([picarr[i][1], picarr[i][2]]); 
        
mc_gal.createEmptyMovieClip("bildmc"+ii); 
        
mc_gal["bildmc"+i]._x=x_tmp;  // <<< zu früh
        
mc_gal["bildmc"+i]._y=y_tmp// <<< zu früh
        
mc_gal["bildmc"+i]._width thumbdim[0]; // <<< zu früh
        
mc_gal["bildmc"+i]._height thumbdim[1]; // <<< zu früh
        
mc_gal["bildmc"+i].loadMovie(picarr[i][0], i);
        
x_tmp+=200

    } 
    
//picarr[i,0]=name 
    //picarr[i,1]=breite 
    //picarr[i,2]=hoehe 

Erstmal Movie laden und danach eigenschaften ändern..
Guck mal diese thread
hier
__________________
www.fresh-solutions.de
Fresh Flash For All.

Geändert von xbass (12-03-2005 um 14:56 Uhr)
xbass ist offline   Mit Zitat antworten
Alt 12-03-2005, 14:57   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Versuchs mal so:

PHP-Code:
function doGalerie(pfad) {
    if (
pfad == null) {
        
pfad "galerie.firstChild.firstChild.childNodes[0]";
    }
    
picarr getjpgs(pfad);
    
createEmptyMovieClip("mc_gal"1);
    
mc_gal._width 500;
    
mc_gal._height 300;
    
y_tmp 0;
    
x_tmp 0;
    for (
i=0i<picarr.lengthi++) {
        
//skalieren Rückgabe ist ein Array[neu_x,neu_y] 
        
thumbdim thumbsize([picarr[i][1], picarr[i][2]]);
        
mc_gal.createEmptyMovieClip("bildmc"+ii);
        
mc_gal["bildmc"+i].createEmptyMovieClip("loader"1);// Hier noch ein MC mehr
        
mc_gal["bildmc"+i]._x x_tmp;
        
mc_gal["bildmc"+i]._y y_tmp;
        
mc_gal["bildmc"+i]._width thumbdim[0];
        
mc_gal["bildmc"+i]._height thumbdim[1];
        
mc_gal["bildmc"+i].loader.loadMovie(picarr[i][0], i); // ...und da rein laden
        
x_tmp += 200;
    }
    
//picarr[i,0]=name 
    //picarr[i,1]=breite 
    //picarr[i,2]=hoehe 

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-03-2005, 15:16   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 18
Danke erstmal für die Antworten, werds gleich mal testen.

Blackfox
blackfox1982 ist offline   Mit Zitat antworten
Alt 12-03-2005, 15:25   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 18
So, hab das Laden der Bilder in die MovieClips vor das Setzen der Grösse geschoben. Haut aber immernoch nicht hin.

So hab ichs jetzt:

PHP-Code:
function doGalerie(pfad) {
    if (
pfad == null) {
        
pfad "galerie.firstChild.firstChild.childNodes[0]";
    }
    
picarr getjpgs(pfad);
    
createEmptyMovieClip("mc_gal"1);
    
y_tmp 0;
    
x_tmp 0;
    for (
i=0i<picarr.lengthi++) {
            
//skalieren Rückgabe ist ein Array[neu_x,neu_y]
        
thumbdim thumbsize([picarr[i][1], picarr[i][2]]);
        
mc_gal.createEmptyMovieClip("bildmc"+ii);
        
mc_gal["bildmc"+i].loadMovie(picarr[i][0], i);
        
mc_gal["bildmc"+i]._x=x_tmp;
        
mc_gal["bildmc"+i]._y=y_tmp;
        
mc_gal["bildmc"+i]._width thumbdim[0];
        
mc_gal["bildmc"+i]._height thumbdim[1];

        
x_tmp+=200;
    }
    
mc_gal._width=500;
    
mc_gal._height=300;
    
//picarr[i,0]=name
    //picarr[i,1]=breite,x
    //picarr[i,2]=hoehe,y

/edit

Kann es sein, das da was mit den Ebenen nicht hinhaut. Eigentlich sollte der MC sich ja seinem Inhalt selbst anpassen. Das jedenfalls funktioniert:

PHP-Code:
wie_oft=5

createEmptyMovieClip
("mc",1);

for(
i=0;i<wie_oft;i++){
mc.createEmptyMovieClip("mc_unter"+i,i);
mc["mc_unter"+i].loadMovie("galerie/test.jpg",1);
mc["mc_unter"+i]._x=i*200;


Geändert von blackfox1982 (12-03-2005 um 15:28 Uhr)
blackfox1982 ist offline   Mit Zitat antworten
Alt 12-03-2005, 15:29   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Natürlich nicht. Entweder musst du abfragen, ob die komplett geladen sind, oder du machst es so:

PHP-Code:
function doGalerie(pfad) { 
    if (
pfad == null) { 
        
pfad "galerie.firstChild.firstChild.childNodes[0]"
    } 
    
picarr getjpgs(pfad); 
    
createEmptyMovieClip("mc_gal"1); 
    
mc_gal._width 500
    
mc_gal._height 300
    
y_tmp 0
    
x_tmp 0
    for (
i=0i<picarr.lengthi++) { 
        
//skalieren Rückgabe ist ein Array[neu_x,neu_y] 
        
thumbdim thumbsize([picarr[i][1], picarr[i][2]]); 
        
mc_gal.createEmptyMovieClip("bildmc"+ii); 
        
mc_gal["bildmc"+i].createEmptyMovieClip("loader"1);// Hier noch ein MC mehr 
        
mc_gal["bildmc"+i]._x x_tmp
        
mc_gal["bildmc"+i]._y y_tmp
        
mc_gal["bildmc"+i]._width thumbdim[0]; 
        
mc_gal["bildmc"+i]._height thumbdim[1]; 
        
mc_gal["bildmc"+i].loader.loadMovie(picarr[i][0], i); // ...und da rein laden 
        
x_tmp += 200
    } 
    
//picarr[i,0]=name 
    //picarr[i,1]=breite 
    //picarr[i,2]=hoehe 

Steht da oben doch alles?!??!
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-03-2005, 15:47   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 18
Okay, hab das jetzt mal so probiert.
Funktioniert aber trotzdem nicht.
Die Objekte werden jetzt aber gar nicht mehr angelegt.


Ich hab die *.as mal angehängt.

Blackfox
Angehängte Dateien
Dateityp: rar galeries.rar (1,2 KB, 2x aufgerufen)

Geändert von blackfox1982 (12-03-2005 um 15:51 Uhr)
blackfox1982 ist offline   Mit Zitat antworten
Alt 12-03-2005, 15:54   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Und wo kriege ich die hier her?

lists/list.xml
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-03-2005, 15:59   #10 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 18
ähm, okay, die datei lasse ich von ner php erstellen, die die ordnerstruktur ausliest. ich häng mal beide an, also die php und die xml

blackfox
Angehängte Dateien
Dateityp: rar index.rar (627 Bytes, 3x aufgerufen)
Dateityp: rar list.rar (242 Bytes, 3x aufgerufen)
blackfox1982 ist offline   Mit Zitat antworten
Alt 12-03-2005, 17:26   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Oh Mann, durch den Code von anderen Leuten durch zu steigen ist immer wieder ein Genuss. Aber ich glaube, nun geht's:

PHP-Code:
function doGalerie(pfad) {
    if (
pfad == null) {
        
pfad "galerie.firstChild.firstChild.childNodes[0]";
    }
    
//    picarr=new Array([],[]);
    
picarr getjpgs(pfad);
    
trace("länge :"+picarr.length);
    
//    trace(picarr[0][0]);trace(picarr[1][0]);trace(picarr[2][0]);
    
createEmptyMovieClip("mc_gal"1);
    
y_tmp 0;
    
x_tmp 0;
    for (
i=0i<picarr.lengthi++) {
        
//skalieren Rückgabe ist ein Array[neu_x,neu_y]
        
this.mc_gal.createEmptyMovieClip("bildmc"+ii);
        
this.mc_gal.createEmptyMovieClip("loader"+i100+i);
        
this.mc_gal["loader"+i].id i;
        
this.mc_gal["bildmc"+i].loadMovie(picarr[i][0], i);
        
this.mc_gal["loader"+i].onEnterFrame = function() {
            if (
this._parent["bildmc"+this.id].getBytesLoaded()>=this._parent["bildmc"+this.id].getBytesTotal() && this._parent["bildmc"+this.id].getBytesLoaded()>10) {
                
thumbdim thumbsize([picarr[this.id][1], picarr[this.id][2]]);
                
this._parent["bildmc"+this.id]._x x_tmp;
                
this._parent["bildmc"+this.id]._y y_tmp;
                
this._parent["bildmc"+this.id]._width thumbdim [0];
                
this._parent["bildmc"+this.id]._height thumbdim [1];
                
x_tmp += 200;
                
removeMovieClip(this);
            }
        };
    }
    
//picarr[i,0]=name
    //picarr[i,1]=breite,x
    //picarr[i,2]=hoehe,y

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-03-2005, 17:41   #12 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 18
Glaub ich dir gerne.

UND:
es funktioniert.

Hab erst angefangen, mich mit AS zu befassen. Hab vorher ausser bisschen
Java noch nicht viel mit OOP gemacht.

Das man da das Laden abwarten muss, wusste ich nicht.
Dachte das macht die Funktion selbst.

Also tausend danke fürs durchschauen.

Gruss Blackfox
blackfox1982 ist offline   Mit Zitat antworten
Alt 12-03-2005, 17:50   #13 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Abgesehen davon, dass ich weich in der Birne geworden bin - bitteschön!
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 05:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele