Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-12-2005, 08:27   #1 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
JPGs dynamisch aus BIBO in MC laden

Hallo,

wie kann man JPGs aus der BIBO dynamisch in einen MC auf der Bühne laden?
Geht das überhaupt oder muss mann jeden Bild vorher manuell in einen MC konvertiert haben. Man kann ja nicht einfach ein Bild attachen.
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 09:17   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Zitat:
Zitat von compuboy1010
Man kann ja nicht einfach ein Bild attachen.
Genau - du mußt es vorher in einen Movieclip konvertieren.
Oder per loadMovie von extern nachladen.
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 06-12-2005, 09:34   #3 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
OK, Danke.

Angenommen ich mache eine Slideshow und speichere Bilder und einen Kommentare in einer XML Datei.

Die Bilder/Kommentare sollen nicht per click durchlaufen, sondern es soll mit setInterval() alle 5 Sekunden ein Bild/Kommentar mit dem nächsten ersetzt werden.

Wie kann man sicherstellen, dass das nächste Bild für Set interval bereits zur Verfügung steht und nicht dann erst geladen werden muss(also bereits vom Server angefordert wird, während sich der Besucher gerade das aktuelle anschaut?

Geändert von compuboy1010 (06-12-2005 um 09:36 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 10:06   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Geh in Flash, drück "F1" und such mal nach "vorausladen" dann findest da ein Beispiel zum Vorausladen von SWF und JPEG!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 06-12-2005, 11:52   #5 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
@ Bamboocha: Danke werde ich machen.

@ Rena: Danke, ich habe mir gerade eine Slideshow programmiert.
Allerdings ist nur Volker zu sehen aber die Namen und Kommentare wechseln wie gewünscht. Woran kann das liegen? Außerdem kommt nach dem zweiten Kommentar beim nächsten Namen und Kommentar erst ein undefined und dann wieder der erste Kommentar. Wo kommst da undefined her?

PHP-Code:
var nZ:Number;
var 
aPerson:Array;

this.createEmptyMovieClip("mcImage"this.getNextHighestDepth());
mcImage._x 18;
mcImage._y 25;

this.createTextField('tName'this.getNextHighestDepth(), 51678630);
with(tName) {
    
type "dynamic";
    
border false;
    
background false;
    
password false;
    
multiline false;
    
html true;
    
embedFonts false;
    
selectable false;
    
wordWrap true;
    
mouseWheelEnabled false;
}

this.createTextField('tComment'this.getNextHighestDepth(), 520016666);
with (tComment) {
  
border false;
  
multiline true;
  
wordWrap true;
  
autoSize "left";
}

var 
nZ:Number 0;
var 
aPerson = new Array();

aPerson[0] = new Object();
aPerson[0]['name'] = 'Volker';
aPerson[0]['comment'] = '"Tolles Produkt."'
aPerson[0]['mc'] = 'Volker';

aPerson[1] = new Object();
aPerson[1]['name'] = 'Jochen';
aPerson[1]['comment'] = '"Wirklich gut."';
aPerson[1]['mc'] = 'Jochen';


tName.text aPerson[nZ]['name'];
tComment.text aPerson[nZ]['comment'];
this.mcImage.attachMovie(aPerson[nZ]['mc'], "mc"+nZthis.getNextHighestDepth());

var 
nInterval:Number setInterval(function () {
    
nZ++
    
this.mcImage['mc'+nZ].removeMovieClip();
    
this.mcImage.attachMovie(aPerson[nZ]['mc'], "mc"+nZthis.getNextHighestDepth());
    
tName.text aPerson[nZ]['name'];
    
tComment.text aPerson[nZ]['comment'];
    
    if(
aPerson.length == nZ) {
        
nZ 0;
    } 
}, 
5000); 

Geändert von compuboy1010 (06-12-2005 um 14:08 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 13:35   #6 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Könnte mir das mal bitte jemand erklären?

Ich habe das this weggenommen. Und nun sieht man die Bilder.

Anstatt:

PHP-Code:
this.mcImage['mc'+nZ].removeMovieClip();
this.mcImage.attachMovie(aPerson[nZ]['mc'], "mc"+nZthis.getNextHighestDepth()); 
PHP-Code:
mcImage['mc'+nZ].removeMovieClip();
mcImage.attachMovie(aPerson[nZ]['mc'], "mc"+nZthis.getNextHighestDepth()); 

Jetzt bleibt nur noch das Problem mit dem undefinied nach dem letzten Kommentar(Durchlauf) und Beginn des Neudurchlaufs in den Textfeldern.
Der überspring beim Neudurchlauf die erste Person. Also Arrayposition Null.

Warum passiert das?
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 13:40   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo...
...setz das "nZ++" im Intervall nach unten vor die if Abfrage.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-12-2005, 13:50   #8 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Ich verbeuge mich vor meinem Flashidol derFrager.
Er hat es mal wieder vollbracht. Es klappt! 1000 Dank.

Kann ich noch eine Frage hinterher schießen?

Ich möchte ein paar Frames weiter nochmals die gleiche Slideshow haben. Allerdings nicht mit allen Personen sondern nur mit aPerson[3], aPerson[5] und aPerson[7]. Wie kann ich den Code wiederverwenden? Geht das oder muss ich den kompletten code der Slideshow in den anderen Frame kopieren und das Array kürzen?

Geändert von compuboy1010 (06-12-2005 um 13:52 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 13:59   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Naja, entweder (wie du's schon gesagt hast) die nicht benötigten Personsn (Objekte) löschen, oder du kannst dir noch ein Hilfsarray schreiben wo dann halt nur 3,5,7 drin steht und das dann verwenden.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-12-2005, 14:07   #10 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Aber wie löscht mand ie nicht benötigten Arraypositionen
aPerson[0]
aPerson[1]
aPerson[2]
aPerson[0]
aPerson[4]
aPerson[6] ?

Und wie rufe ich die setInterval() Funktion überhaupt von dem anderen Frame auf?
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 14:23   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Löschen:
PHP-Code:
var aPerson = new Array();
aPerson[0] = new Object();
aPerson[0]['name'] = 'Volker';
aPerson[0]['comment'] = '"Tolles Produkt."';
aPerson[0]['mc'] = 'Volker';
aPerson[1] = new Object();
aPerson[1]['name'] = 'Jochen';
aPerson[1]['comment'] = '"Wirklich gut."';
aPerson[1]['mc'] = 'Jochen';
trace(aPerson[0].name);
trace(aPerson[1].name);
aPerson.splice(01);// Volker löschen
trace(aPerson[0].name); 
Zum Aufrufen des Intervalls von einem andern Frame aus, einfach in eine Funktion packen. Außerdem auch mal wieder löchen...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-12-2005, 15:36   #12 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Hi derFrager.

Schau mal folgendes habe ich im frame 1:

PHP-Code:
stop();
_level0.mcBackground.attachMovie("background3x""mcBackground"0);

var 
nZ:Number;
var 
aPerson:Array;
var 
mcOpinions:MovieClip;
var 
nInterval:Number;
mcOpinions this.createEmptyMovieClip("mcOpinions"this.getNextHighestDepth());
mcOpinions._x 0;
mcOpinions._y 193;

mcOpinions.createEmptyMovieClip("mcImage"mcOpinions.getNextHighestDepth());
mcOpinions.mcImage._x 18;
mcOpinions.mcImage._y 25;

mcOpinions.createTextField('tName'mcOpinions.getNextHighestDepth(), 1016713030);
with(mcOpinions.tName) {
    
autoSize "left";
    
html true;
    
multiline true;
    
selectable false;
    
type "dynamic";    
    
wordWrap true;
}

mcOpinions.createTextField('tComment'mcOpinions.getNextHighestDepth(), 1022016666);
with(mcOpinions.tComment) {
    
autoSize "left";
    
html true;
    
multiline true;
    
selectable false;
    
type "dynamic";    
    
wordWrap true;    
}

var 
aPerson = new Array();

// This person has not made a comment yet
//aPerson[x] = new Object();
//aPerson[x]['name'] = 'Oliver';
//aPerson[x]['comment'] = '""'
//aPerson[x]['mc'] = 'Oliver';

aPerson[0] = new Object();
aPerson[0]['name'] = 'Volker';
aPerson[0]['comment'] = '"Super Produkt."'
aPerson[0]['mc'] = 'Volker';

// weitere Personen

aPerson[10] = new Object();
aPerson[10]['name'] = 'Dieter';
aPerson[10]['comment'] = '"Echt geil!"';
aPerson[10]['mc'] = 'Dieter';

startSlides();

function 
startSlides():Void {
    
nZ 0;
    
mcOpinions.mcImage.attachMovie(aPerson[nZ]['mc'], 'mc'+nZthis.getNextHighestDepth());
    
mcOpinions.tName.text aPerson[nZ]['name'];
    
mcOpinions.tComment.text aPerson[nZ]['comment'];
    
nInterval setInterval(function () {
        
mcOpinions.mcImage['mc'+nZ].removeMovieClip();
        
mcOpinions.mcImage.attachMovie(aPerson[nZ]['mc'], "mc"+nZ0);
        
mcOpinions.tName.text aPerson[nZ]['name'];
        
mcOpinions.tComment.text aPerson[nZ]['comment'];
        
nZ++;    
        if(
aPerson.length == nZ) {
            
nZ 0;
        } 
    }, 
5000); 
}

function 
stopSlides():Void {
    
clearInterval(nInterval);

Und das hier steht im frame 10:

PHP-Code:
stop();
stopSlides();
_root.mcBreadcrumb.maincat.text "Aktuelles";
_root.mcBreadcrumb.path.text "Aktuelles > Neue Produkte";

aPerson.splice(06);// Volker löschen
aPerson.splice(101);

startSlides(); 
Trotzdem lauft im Frame 10 die Slideshow viel schneller durch als im frame 1.
Ich denke so 2 Sekunden wechselt die Person.

Außerdem ist beim ersten Aufruf von Frame 1 die erste Person 10 Sekunden zu sehen anstann 5. Und wenn ich dann wieder zum Frame 1 zurückgehe, spinnt der total. Irgendwie löscht der das Intervall nicht.



Könntest du mir bitte da nochmals helfen? Ich schaffe das nicht.

Geändert von compuboy1010 (06-12-2005 um 15:49 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 15:55   #13 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hmm.. das die erste Person 10 Sekunden zu sehen ist, ist klar. Du hast das Hochzählen vergeigt... Warum die Funktion dann schneller laufen soll raffe ich auch nicht. Der Intervall wurde ja gelöscht... Allerdings weiß ich ja nicht, was da noch zwischen Frame 1 und 10 noch so alles passiert:

PHP-Code:
function startSlides():Void {
    
nZ 0;
    
clearInterval(nInterval);
    
mcOpinions.mcImage.attachMovie(aPerson[nZ]['mc'], 'mc'+nZthis.getNextHighestDepth());
    
mcOpinions.tName.text aPerson[nZ]['name'];
    
mcOpinions.tComment.text aPerson[nZ]['comment'];
    
nInterval setInterval(function () {
        if (++
nZ>aPerson.length) {
            
nZ 0;
        }
        
mcOpinions.mcImage['mc'+nZ].removeMovieClip();
        
mcOpinions.mcImage.attachMovie(aPerson[nZ]['mc'], "mc"+nZ0);
        
mcOpinions.tName.text aPerson[nZ]['name'];
        
mcOpinions.tComment.text aPerson[nZ]['comment'];
        
    }, 
5000);

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-12-2005, 15:59   #14 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Stimmt. Um das Intervall zu stoppen braucht man ja garkeine eigene Funktion. Danke

Zwischen Frame 1 und 10 passiert garnix. Das sind Label zu denen man aus einem Menü springen kann.

Da ist also kein AS dazwischen. Das macht es noch kurioser.

Geändert von compuboy1010 (06-12-2005 um 16:02 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 06-12-2005, 16:06   #15 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Mit dem letzten Code von Dir geht es garnicht mehr.
Da bleibt das Bild bei der ersten Person(Volker) stehen, allerdings ändert sich der Name und Kommentar.
compuboy1010 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