Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-01-2005, 20:46   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 1
Angry Anzahl Dateien durchsuchen

Hallo
wie kann ich die anzahl bilder im ordner images beliebig verändern und die
bilder importieren ohne das ich im skript die anzahl verändere.
irgendwie müsste man die anzahl variabel setzten.

es ist das beispiel im flash ordner unter samples!
Angehängte Dateien
Dateityp: zip load_images.fla.zip (5,7 KB, 10x aufgerufen)
dlweibel ist offline   Mit Zitat antworten
Alt 10-01-2005, 20:57   #2 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Dazu brauchst du eine Programmiersprache, die auf dem Server läuft. PHP bietet sich sehr gut dazu an.
Ich habe auf meiner Homepage selbst so etwas gemacht. Das liefert die Ordner und darin enthaltenen Dateien automatisch als Array an Flash.
Angehängte Dateien
Dateityp: rar dirs.rar (432 Bytes, 36x aufgerufen)
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 10-01-2005, 22:50   #3 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
Thumbs up

@johanness:
1. hübsch
2. du solltest vielleicht noch sagen, wie man die datei ruft, bzw. anpasst


sonst kommen viel nicht damit klar...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 11-01-2005, 04:15   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Lightbulb ui...

ich hab auch ne idee...., sehr pragmatisch, aber es funktioniert...

das ganze mal ohne PHP ! mit beispiel zum downloaden

voraussetzung ist, das du die bilder immer gleich benennst, bzw. fortlaufend nummerierst, ohne lücken, und bei 0 beginnend! etwa so:
  • bild1.jpg
  • bild2.jpg
  • bild3.jpg
  • u.s.w....
in dem nun folgenden script kannst du dir n ordner erstellen, in dem deine bilder hinterlegt sind. flash ließt die bilder aka. die anzahl der bilder aus diesem ordner.

das kommt ins erste schlüsselbild: (keine angst, mehr komentare, als alles andere !)
PHP-Code:
this.stop();
// "i" wird als basis, bzw. zum hochzaehlen der bilderanzahl verwendet
var i:Number 1;
// "sPicturePath" gibt den den pfad zu deinem bilderordner an, besser is n totale pfad, wie
// [url]http://www.deinServer.de/pictures/[/url]
var sPicturePath:String 'pictures/';
// das ist der bezeichner string, mit dem jeder name deines bildes anfaengt
var sPicturePraefix:String 'bild';
// das ist der bezeichner string, mit dem jeder name deines bildes aufhoert. da flash nur
// jpe's laden kann, bleibt der immer gleich. nicht ändern ! kann ja sein, das in der 8er flash
// version mal bmp's o. png's verwendet werden koennen, dann kannst das  hier aendern, aber
// vorerst, finger weg !
var sPictureSufix:String '.jpg';
// mit dieser function checken wir, wieviele bilder in deinem ordner sind. funktionsweise ist ganz
// easy, mit Listener stehen uns die error & onLoadStart przeduren zur verfuegung, und
// diese nutzen wir, um die anzahl der vorhandenen bilder zu check. was wo passiert, habe ich in die
// prozeduren geschrieben.
var fnc_pictureChecker:Function = function () {
    
// vorher erstellen wir uns n dummy, in den wir die bilder laden, bzw. sie anfangen zu laden.
    // um nicht gefahr zulaufen, die bilder, seien sie so klein es nur geht darzustellen, setzen
    // wir unseren dummy MC aus sichtbar = 0 / _visible = 0
    
_level0.createEmptyMovieClip('mc_dummy'1);
    
_level0.mc_dummy._visible 0;
    
// nun die oben beschriebene checker aktion...
    
var mein_mcl:MovieClipLoader = new MovieClipLoader();
    var 
meinListener:Object = new Object();
    
// wird ausgefuehrt, wenn ein bild vorhanden ist, logischerweise, koennen wir, wenn es da
    // ist gleich weiter machen, und diesen ladevorgang abbrechen. vorher wird unsere variable aber
    // um 1 erhoeht. output.text, ist nur damit du siehst was passiert (siehe beispiel download)
    
meinListener.onLoadStart = function() {
        
output.text i;
        
+= 1;
        
mein_mcl.loadClip(sPicturePath+sPicturePraefix+i+sPictureSufix_level0.mc_dummy);
    };
    
// wird ausgefuehrt, wenn kein bild mehr vorhanden ist. da i vorher um 1 erhoeht wurde,
    // muessen wir es hier wiederum um 1 kürzen, da genau diese bild nichtmehr vorhanden ist.
    // wenn es kein bild mehr zuladen aka. zu testen gibt, verlassen wir den checker, und springen
    // zur naechsten zu erledigenden funktion / aktion, oder sonst etwas ....
    // in diesem fall, gehen wir in der _root ein schluesselbild weiter, wo noch 2 wichtige
    // aktionen zu sehen sind plus deinem picture loader (nur n beispiel, wie manns machen koennte)
    
meinListener.onLoadError = function() {
        
-= 1;
        
output.text i;
        
trace('es sind '+i+' bilder in deinem ordner');
        
// hier was passieren soll, wenn die anzahl ausgelesen wurde
        // schau bitte im 2. schuesselbild was ich gemacht habe
        
_level0.play();
    };
    
mein_mcl.addListener(meinListener);
    
mein_mcl.loadClip(sPicturePath+sPicturePraefix+[i]+sPictureSufix_level0.mc_dummy);
};
// hiermit startest du die "fnc_pictureChecker" funktion ! ganz wichtig ! :-)
fnc_pictureChecker(); 
das kommt ins zweite schlüsselbild:
PHP-Code:
this.stop();
// hier entfernen wir mal vorsichtshalber, den in der "fnc_pictureChecker" erstellten
// mc_dummy, und löschen danach die "fnc_pictureChecker" funktion. keine ahnung, warum, aber so
// sind wir, denke ich auf der sicheren seite, und es kommen keine komplikationen zu stande ...
_level0.mc_dummy.removeMovieClip();
delete fnc_pictureChecker;
// ok, das wars.... wie du dir die hochgerechnete variable "i" zu nutze machst, ist deine, 
// bzw. geschmackssache. ich zeige dir mal, wie man es machen koennte
// ---------------------------------------------------------------------------------------------
// kleine, aber wirkungsvolle funktion, die sich die besprochenen "i" variable zu nutzen macht
// wieder eine funktion schreiben "fnc_loadMyPics"
var fnc_loadMyPics:Function = function (target) {
    
// unsere benoetigte variablen einstellen
    // "b" zum hochrechnen, und gleich i plus eins setzen, da flash bei 0 anfaengt zu zaehlen
    
var b:Number i+1;
    
// start X positionierung der "mc_bilder" (MovieClips) festlegen
    
var posX:Number 0;
    
// damit sich die bilder nicht ueberlagern, erhoehen wir die positionierung auf der X Achse
    // bei jedem neuen bild um den wert der variable "moveX"
    
var moveX:Number 150;
    
// und nun eine schleife, die uns 1. einen MvieClip erstellt, und 2. das passende bild
    // in ihn laedt.
    
for (var 1a<ba++) {
        
// movieclip erstellen
        
target.createEmptyMovieClip('mc_bild'+aa);
        
// in den movieclip das passende bild laden, wie du dich erinnerst, nutzen wir hier
        // die variablen aus dem ersten schluesselbild, und bauen uns daraus den pfad zum bild
        // und das entsprechende bild zusammen
        
target['mc_bild'+a].loadMovie(sPicturePath+sPicturePraefix+[a]+sPictureSufix0);
        
// hier die verwendung der positionierungs variable
        
target['mc_bild'+a]._x posX;
        
// und dann erhoehen wir die positionierung für das naechste bild um den wert von
        // moveX
        
posX += moveX;
        
// wenn das erledigt ist, loeschen wir fein fleissig alle nichtmehr verwendeten variablen
        // mit einer wahren bedingung. und, wenn du willst, kannst du hier die naechste zu erledigende
        // aktion deklarieren....
        
if (== (b-1)) {
            
delete i;
            
delete sPicturePath;
            
delete sPicturePraefix;
            
delete sPictureSufix;
            
delete b;
            
delete posX;
            
delete moveX;
            
delete fnc_loadMyPics;
            
trace('\n\n### ende, alle bilder da. mfg shorty / [url]http://www.flashforum.de[/url] ###');
        }
    }
};
// und hier wieder der aufruf der eben erstellten funktion...
fnc_loadMyPics(_level0);
// ende gut, alles gut, viel spass. shorty, [url]www.flashforum.de[/url] 
ik hoffe, das hilft dir bei nem server ohne PHP weiter....

peace & fette beute
shorty


im anhang, findest du eine MX 2004er version
Angehängte Dateien
Dateityp: zip fileChecker - MX 2004 version.zip (20,8 KB, 17x aufgerufen)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shortybmc (11-01-2005 um 04:17 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 11-01-2005, 05:36   #5 (permalink)
:-(
*unknown user*
 
Benutzerbild von :-(
 
Registriert seit: Jan 2005
Beiträge: 137
wirst aber probleme mit firefox bekommen, da dieser bei einem pic was geladen, aber nicht gefunden wird einfach hängen bleibt.

Die php-lösung ist meiner meinung nach die eleganteste.
:-( ist offline   Mit Zitat antworten
Alt 11-01-2005, 06:17   #6 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Lightbulb kurze version...

jup, da haste recht, aber:

1. schrieb ich, gleich in der überschrift "pragmatisch" --> sach- und anwendungsbezogen; auf konkrete Handlungsmöglichkeiten ausgerichtet
2. gleich als nächstes DICK und BREIT ohne PHP

aber egal, was soll's, lesen, scheinen hier einige immer zu vergessen

zum "FireFox" - ja 100% zu stimmung, aber leider benutzen das teil so wenig leute, das auch der boom, welcher vor 4 Monaten ausgebrochen ist, an der verbreitung in einer bestimmten zielgruppe nichts geändert hat, und die Zielgruppe heist: --> so viele wie möglich <-- und nicht wie beim fuchs ca. 4% - 5% (aktuell) der internet- bzw. browsernutzer

naja, und weils so schön war, hier nochmal das script, auf ein paar wichtige zeilen zusammen geschrumpft:

*einfach ins erste schlüsselbild packen, die sPicturePath variable anpassen, gegebenenfalls auch die level's / pafde / eigene aktionen, und fertig:
PHP-Code:
this.stop();
var 
fnc_checker:Function = function (target) {
    var 
i:Number 1;
    var 
sPicturePath:String 'pictures/bild';
    var 
mein_mcl:MovieClipLoader = new MovieClipLoader();
    var 
meinListener:Object = new Object();
    
meinListener.onLoadStart = function() {
        
+= 1;
        
mein_mcl.loadClip(sPicturePath+[i]+'.jpg'1);
    };
    
meinListener.onLoadError = function() {
        
// ---------------------------------------- deine aktionen ----
        
var posX:Number 0;
        for (var 
1a<ia++) {
            
target.createEmptyMovieClip('mc_bild'+aa);
            
target['mc_bild'+a].loadMovie(sPicturePath+[a]+'.jpg'0);
            
target['mc_bild'+a]._x posX;
            
posX += 150;
            if (
== (i-1)) {
                
trace('es sind '+(i-1)+' bilder in deinem ordner');
            }
        }
        
// ---------------------------------------- deine aktionen ----
    
};
    
mein_mcl.addListener(meinListener);
    
mein_mcl.loadClip(sPicturePath+i+'.jpg'1);
};
fnc_checker(_level0); 
shorty

BTW: an das nasenmännchen, welches vor mir postete: siehste, hast mich doch erwischt, habe nämlich gerade entdeckt, das eine lösung für ne MXer version gesucht wird, und nicht wie ich das hier so fleissig tippele --> MX 2004 <-- lol, selber angepi..t . dumm ist nur, das in MX keine new MovieClipLoader(); klasse bereit steht...., na son dre..k, brauch er wohl doch PHP ....

EDIT 1: andere möglichkeit: ums ganz kurz zu machen. wenn du deine bilder auf den webspace lädst, schieb doch gleich noch eine texfile mit hoch, in der die aktuelle anzahl deiner bilder hinterlegt ist. diese lässt du dann von flash auslesen, und fertig ist's ...? willste wissen wie's geht, dann schreib einfach:
Ja, ich will ...

EDIT 2: hier die version mit load vars, funktioniert auch im firefox & mit flash MX (deine version). beispiel im anhang.
PHP-Code:
this.stop();
var 
fnc_checker = function (targetpath) {
    var 
inhalt = new LoadVars();
    
inhalt.onLoad = function(ok) {
        if (
ok) {
            var 
this.pics;
            
trace('es sind '+i+' bilder in deinem ordner');
            var 
posX 0;
            var 
picID 1;
            for (var 
0a<ia++) {
                
target.createEmptyMovieClip('mc_bild'+picIDpicID);
                
target['mc_bild'+picID].loadMovie(path+'bild'+[picID]+'.jpg'0);
                
target['mc_bild'+picID]._x posX;
                
posX += 150;
                
picID += 1;
            }
        } else {
            
trace("stimmt der pfad zum bildverzeichnis & der name der textdatei?");
        }
    };
    
inhalt.load(path+'_pictures.txt');
};
fnc_checker(_level0'pictures/'); 
... so, jetzt is aber gut
Angehängte Dateien
Dateityp: zip mit loadVars.zip (16,7 KB, 25x aufgerufen)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shortybmc (11-01-2005 um 07:00 Uhr)
shorty 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 09:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele