mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 12:15 Benutzername: Passwort: Auto-Login

Thema: [Flash] Überblendeffekt und Slideshow mit externen Dateien vom 30.07.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> [Flash] Überblendeffekt und Slideshow mit externen Dateien
Autor Nachricht
13pixelchen
Account gelöscht Threadersteller


Ort: -

Verfasst Sa 30.07.2005 00:31
Titel

[Flash] Überblendeffekt und Slideshow mit externen Dateien

Antworten mit Zitat Zum Seitenanfang

Hi,

Ich bin absoluter Anfänger, was Flash angeht. Ich hätte mir aber zugetraut, ne Slideshow zu basteln, wenn ihr mir ein paar Tipps gebt. Der Wunsch:

Überblendungen der Bilder durch einen Helligkeits-Effekt (Aber nicht wie durch den Helligkeitsregler in Photoshop, sondern wie durch den Tonwertkorrektur-Regler, so dass die hellen Bildbereiche zuerst aus und wieder einblenden).

Die Bilder sollen extern vorliegen und in einen MC vermute ich mal eingeladen werden, so dass ich nix an der swf ändern muss bei anderen Bildern. Ebenfalls extern sollte eine kleine Textdatei mit den Links zu den Bildern liegen, die gelten, wenn man ins Flash auf das grade eingeblendete Bild klickt.

Die Reihenfolge der Texteinträge könnte sich nach Bildnummer richten, also Bild1.jpg ...

Anregungen wären zuvorkommend, wie man sowas scriptet.
 
13pixelchen
Account gelöscht Threadersteller


Ort: -

Verfasst Mo 01.08.2005 19:19
Titel

Antworten mit Zitat Zum Seitenanfang

okay, ich mach den ersten Schritt.

Ich habe eine Flashdatei, eine XML Datei und ein paar Bilder (siehe unten). Die Flash Datei hat einen Scriptlayer und einen Layer, der lediglich einen MovieClip Container enthält (instanz "picture"). Das ganze sieht so aus:

Bilder im Ordner:
img01.jpg
img02.jpg
img03.jpg

XML-Datei:
Code:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>
    <pic>
        <image>img01.jpg</image>
        <link>http://www.web.de</link>
    </pic>
    <pic>
        <image>img02.jpg</image>
        <link>http://www.web2.de</link>
    </pic>
    <pic>
        <image>img03.jpg</image>
        <link>http://www.web3.de</link>
    </pic>
</images>


Actionscript in Frame 1 auf einem seperaten Script-Layer:
Code:

function loadXML(loaded) {
   if (loaded) {
      xmlNode = this.firstChild;
      image = [];
      link = [];
      total = xmlNode.childNodes.length;
      for (i=0; i<total; i++) {
         image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
         link[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
      }
      firstImage();
   } else {
      content = "file not loaded!";
   }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images.xml");
/////////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {
   if (Key.getCode() == Key.LEFT) {
      prevImage();
   } else if (Key.getCode() == Key.RIGHT) {
      nextImage();
   }
};
Key.addListener(listen);

link_btn.onRelease = function() {
   getURL(link_location,"_self");
};
/////////////////////////////////////
p = 0;
this.onEnterFrame = function() {
   filesize = picture.getBytesTotal();
   loaded = picture.getBytesLoaded();
   preloader._visible = true;
   if (loaded != filesize) {
      preloader.preload_bar._xscale = 100*loaded/filesize;
   } else {
      preloader._visible = false;
      if (picture._alpha<100) {
         picture._alpha += 10;
      }
   }
};
function nextImage() {
   if (p<(total-1)) {
      p++;
      if (loaded == filesize) {
         picture._alpha = 0;
         picture.loadMovie(image[p], 1);
         link_location = link[p];
         picture_num();
      }
   }
}
function prevImage() {
   if (p>0) {
      p--;
      picture._alpha = 0;
      picture.loadMovie(image[p], 1);
      link_location = link[p];
      picture_num();
   }
}
function firstImage() {
   if (loaded == filesize) {
      picture._alpha = 0;
      picture.loadMovie(image[0], 1);
      link_location = link[0];
      picture_num();
   }
}
function picture_num() {
   current_pos = p+1;
}


Das sieht jetzt schlimmer aus als es ist. Jedenfalls funktioniert es, es spielt die drei Bilder mit Cursortaste als Slideshow ab. Woran ich jetzt knabbere, ist, den Alphablend abzuändern in einen color-fade, der mit setTransform funktioniert, und auch im obigen Beispiellink zu sehen ist. Die Bilder sollen beim Bildwechsel sowohl aus, als auch einblenden mit diesem Effekt. Vielleicht kann mir nun jemand weiterhelfen. In dem Script ist auch noch ein Überrest aus einem Preloader, der soll später am Anfang stehen.

Gut wäre auch, wenn die Bilder in zufälliger Reihenfolge nach X Sekunden angezeigt werden.


Zuletzt bearbeitet von am Mo 01.08.2005 19:20, insgesamt 1-mal bearbeitet
 
Anzeige
Anzeige
myel

Dabei seit: 19.01.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 02.08.2005 00:26
Titel

Antworten mit Zitat Zum Seitenanfang

wie bist du denn überhaupt so weit gekommen....

post doch erstmal den link zum source script.

so einfach wird das mit dem color-fade schonmal nicht werden, das klappt nich so einfach wie mal eben alpha auf 100/0 faden.
  View user's profile Private Nachricht senden
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst Mo 09.01.2006 10:21
Titel

Antworten mit Zitat Zum Seitenanfang

ich bin auch gerade mal dabei, mich in flash bissle reinzuarbeiten und bin auf dieses script gestossen, mein problem hier liegt, das ich gerne unabhängig der original bildgrössen, gerne die bilder skaliert in der slideshow hätte (ratio natürlich beachtet)

jemand ne idee wie das funktioniert? steht da grad was auf dem schlauch.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tuxedo

Dabei seit: 10.10.2002
Ort: ~/
Alter: 51
Geschlecht: -
Verfasst Mo 09.01.2006 12:06
Titel

Antworten mit Zitat Zum Seitenanfang

breite und höhe in das xml eintragen, auslesen und den containerfilm auf die
grösse setzen...
  View user's profile Private Nachricht senden
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst Mo 09.01.2006 13:44
Titel

Antworten mit Zitat Zum Seitenanfang

tuxedo hat geschrieben:
breite und höhe in das xml eintragen, auslesen und den containerfilm auf die
grösse setzen...


ach, mehr is das nicht? k, das werde ich dann spätermal probieren. danke.

// edit:

habs mal ausprobiert. jedoch wills nicht so wie ich:

Code:

function nextImage() {
   if (p<(total-1)) {
      p++;
      if (loaded == filesize) {
         picture._alpha = 0;
         picture.width = w[p];
         picture.height = h[p];
         picture.loadMovie(image[p], 1);
         w.text = w[p];
         h.text = h[p];
         desc_txt.text = description[p];
         picture_num();
      }
   }
}


also das auslesen der richtigen daten aus dem xml file geht, ich lass mir w und h auf der bühne ausgeben, jedoch passt er das original bild nicht der grösse an.

vielleicht gibt mir jemand einen stoß in die richtige richtung. ich finde auch gar nirgens eine instanz die "picture" heisst, oder eine variable die so instanziiert wird.

flash ist für mich neuland, und ich hab (noch) kein buch.

danke.


Zuletzt bearbeitet von pRiMUS am Mo 09.01.2006 14:12, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [Flash] Foto Slideshow mit Überblendeffekt
suche simple slideshow (überblendeffekt)
[HILFE: FLASH MX] einladen von externen Dateien
Überblendeffekt (Flash)
Externen Text in Flash reinladen
HILFE ! Einfache Flash Slideshow mit Adobe Flash
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.