mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 16:33 Benutzername: Passwort: Auto-Login

Thema: Überblendeffekt schaffen vom 07.04.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Überblendeffekt schaffen
Seite: 1, 2  Weiter
Autor Nachricht
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Di 07.04.2009 13:37
Titel

Überblendeffekt schaffen

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

ich habe hier folgendes AScript (Vers kann ich leider nicht genau sagen. muß wohl AS2 sein)

http://www.flashforum.de/forum/showthread.php?t=189463&highlight=stuff+galerie


das script läuft super, aber der grafiker möchte unbedingt einen weichen Übergang (also einen überblendeffekt)

wie hier zu sehen http://www.entheosweb.com/Flash/slideshow/index.asp

nun bin ich dabei das script umzuschreiben damit es ungefähr so ausschaut.
das was ich geschrieben habe ist in die sternchenkommentare eingeschlossen.etliches habe ich auch mittlerweile auskommentiert, da ich es nicht benötige.


Code:


//pfad zum folder mit deinen bildern drin
var pfad:String = "images/"
//auskommentieren wenn man eine dynamische xml hat
var xmlFile:String = "images.xml"
//var xmlFile:String = "http://www.yourdomain.com/pathToSwf/folderToXml.php?remotePath="+pfad+"&cachekilla="+random(999);

//mp3 player
//hier den dateinamen des sounds eintragen "nur mp3"
var mp3:String = "sound.mp3";

//System
//-------------------------------------------//
Stage.showMenu = false;
_quality = "LOW";

//variablen
//-------------------------------------------//
var xabstand:Number = 31;
var yabstand:Number = 31;
var spalten:Number = 20;
var stageB:Number = Stage.width;
var stageH:Number = Stage.height;
var current:Number = 0;
var count:Number = 0;
var allDone:Boolean = false;
var posShow:Number = 1;
//arrays
var pic_array:Array = new Array();
var mc_array:Array = new Array();
var bigMc_array:Array = new Array();
//-------------------------------------------//
var xl:Loadxml = new Loadxml(xmlFile, parseXml);

function parseXml(xml):Void {
   var ref = xml.firstChild;
   for (var i = 0; i<ref.childNodes.length; i++) {
      pic_array[i] = [];
      pic_array[i].pic = ref.childNodes[i].firstChild.nodeValue;
      pic_array[i].picname = ref.childNodes[i].attributes.picname;
      pic_array[i].pwidth = ref.childNodes[i].attributes.width;
      pic_array[i].pheight = ref.childNodes[i].attributes.height;
   }
   buildNav();
}
function buildNav() {
   for (var i = 0; i<pic_array.length; i++) {
      var ref:MovieClip = _root.ex.attachMovie("thumb_mc", "thumb_mc"+i, i);
      mc_array.push(ref);
      var bigRef:MovieClip = _root.bPholder.attachMovie("bPcontainer", "bpcon"+i, -i);
      bigMc_array.push(bigRef);
      ref._x = (i%spalten)*xabstand;
      ref._y = Math.floor(i/spalten)*yabstand;
      ref.id = i;
      ref.enabled = false;
      ref.onRelease = function() {
         picTransition(this.id);
         clearInt();
      };
      ref.onRollOver = function() {
         this.line_mc.gotoAndStop(2);
      };
      ref.onRollOut = function() {
         this.line_mc.gotoAndStop(1);
      };
      if (i == pic_array.length-1) {
         loadThumbs();
      }
   }
}
function loadThumbs():Void {
   if (count<pic_array.length) {
      var ref:MovieClip = mc_array[count];
      ref.big = bigMc_array[count];
      ref.big.bp_mc.loadMovie(pfad+pic_array[count].pic);
      ref.onEnterFrame = function() {
         var gesamt:Number = this.big.bp_mc.getBytesTotal();
         var geladen:Number = this.big.bp_mc.getBytesLoaded();
         var prozent:Number = Math.ceil((geladen/gesamt)*100);
         if (prozent == 100 && geladen>4) {
            ref.prozent_txt.text = count+1;
            ref.balken_mc.gotoAndStop(100);
            _root.bigMc_array[(count+1)]._visible = false;
            if(count<1) {
               _root.ex["thumb_mc"+0].enabled = true;
               _root.bigMc_array[0].slideTo((stageB/2)-(int(pic_array[0].pwidth)/2), _root.bigMc_array[0]._y, 5);
               _root.bigMc_array[0].masker();
               posNav(0);
            }
            count++;
            loadThumbs();
            _root.ex["thumb_mc"+count].enabled = true;
            delete this.onEnterFrame;
         } else {
            ref.prozent_txt.text = prozent+"%";
            ref.balken_mc.gotoAndStop(prozent);
         }
      };
   } else {
      allDone = true;
      slideinterval = setInterval(playShow, 5000);
      var player:Mp3player = new Mp3player(mp3);
   }
}

function picTransition(id) {
   if (current != id || _root.bigMc_array[id].loadComp) {
      _root.mc_array[id].prozent_txt.textColor = 0xFF0000;
      _root.bigMc_array[id].swapDepths(100);
      _root.bigMc_array[id].masker(id);
      _root.bigMc_array[id]._visible = true;
      
//***************************************************************      
      _root.bigMc_array[id]._alpha = 0;
      do {
         if(_root.bigMc_array[id]._alpha < 50) {
            _root.bigMc_array[id]._alpha++;
         }
      }while (_root.bigMc_array[id]._alpha < 50);
//***************************************************************      
      
      
//      _root.bigMc_array[id]._x = -840;
//      _root.bigMc_array[id].slideTo((stageB/2)-(int(pic_array[id].pwidth)/2), _root.bigMc_array[id]._y, 5);
      
   
      
   
      
      _root.mc_array[current].prozent_txt.textColor = 0xFF6600;
      _root.bigMc_array[current].swapDepths(99);
      _root.bigMc_array[current]._visible = false;
      _root.picname_txt.text = "Filename: " + pic_array[id].picname;
      posNav(id)
      current = id;
   }
}

function posNav(id) {
   var picX:Number = int(pic_array[id].pwidth);
   var picY :Number = int(pic_array[id].pheight);
   _root.line_mc.slideTo(_root.line_mc._x,picY+65,5);
   _root.ex.slideTo(_root.ex._x,picY+75,5);
}
function playShow() {
   if (allDone) {
      if (posShow<pic_array.length) {
         picTransition(posShow);
         posShow++;
      } else {
         posShow = 0;
      }
   }
}

function clearInt() {
   clearInterval(slideinterval);
   delete slideinterval;
}
_root.slideStop_mc.onRelease = function() {
   clearInt();
};
_root.slidePlay_mc.onRelease = function() {
   if(slideinterval == undefined && allDone == true){
      playShow();
      slideinterval = setInterval(playShow, 5000);
   }

};
//-------------------------------------------//
MovieClip.prototype.masker = function() {
   //var m_mc:MovieClip = this.attachMovie("maske", "maske", 1000);
   //this.setMask(m_mc);
};
var cToleranz:Number = 1;
MovieClip.prototype.slideTo = function(X, Y, speed) {
    this.onEnterFrame = function() {
        if (Math.abs(X-this._x)+Math.abs(Y-this._y)>cToleranz) {
            this._x += (X-this._x)/speed;
            this._y += (Y-this._y)/speed;
        } else {
            this._x = X;
            this._y = Y;
            delete this.onEnterFrame;
        }
    };
};


nur ist es so wie ich mir gedacht habe. meine schleife steht sicher an der falschen stelle.
denn meinen einblendeffekt wie ich es mir gedacht habe sieht man nicht.nur das fertig geladene bild bei 50% alphawert.

kann mir evtl jemand einen tipp geben wie ich diesen effekt mit diesem script realisieren kann?
  View user's profile Private Nachricht senden
fragile

Dabei seit: 22.09.2004
Ort: Amberg
Alter: 50
Geschlecht: Männlich
Verfasst Di 07.04.2009 13:56
Titel

Antworten mit Zitat Zum Seitenanfang

Was willst du mit dem Alpha-Blend an dieser Stelle erreichen ? In welchem Context wird die picTransition-Fkt. später eingesetzt ? Bisher blendest du den mit "id" übergebenen MC von 0 auf 50% (wobei ich dich if-abfrage relativ sinnlos finde, du setzt _alpha ja schon auf 0 oben und hast in der while-Bedingung ja deine Abbruchung-Bed. stehen). Also laß die if-Verzweigung mal weg.

Was genau bezeichnet current ? Das Bild, das der User momentan sieht ? as gneua bezeichnet dann "id"? Ohne einen "Snapshot" deiner Anwendung beim Funktionsaufruf von PicTransition wird es kaum Hilfe hier geben...
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Di 07.04.2009 14:15
Titel

Antworten mit Zitat Zum Seitenanfang

fragile hat geschrieben:
Was willst du mit dem Alpha-Blend an dieser Stelle erreichen ?


damit das bild step by step von 0 auf 50 eingeblendet wird

fragile hat geschrieben:
In welchem Context wird die picTransition-Fkt. später eingesetzt ?


damit werden imo die mc's bereit gestellt um später den masken-effekt mit diesen mc's zu realisieren.
diesen effekt brauche ich ja nicht.deswegen habe ich mir gedacht das es reicht die mc's von 0 auf 50 (bzw später von 0 auf 99) einzublenden um mit den nächsten mc das selbe zu machen.das der nächste sich über den vorhergehenden (könnte current sein) einblendet.

fragile hat geschrieben:
du setzt _alpha ja schon auf 0 oben und hast in der while-Bedingung ja deine Abbruchung-Bed. stehen). Also laß die if-Verzweigung mal weg.


das werde ich mal testen, wobei die syntax das selbe resultat liefern sollte.

fragile hat geschrieben:
Ohne einen "Snapshot" deiner Anwendung beim Funktionsaufruf von PicTransition wird es kaum Hilfe hier geben...


dazu hatte ich ja den Link gepostet.

hierzu nochmal das Bsp

http://www.interhof.com/fla_depot/flashslide/
  View user's profile Private Nachricht senden
fragile

Dabei seit: 22.09.2004
Ort: Amberg
Alter: 50
Geschlecht: Männlich
Verfasst Di 07.04.2009 15:16
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
_root.bigMc_array[id].masker(id);

Wenn du den "Masker"-Effekt nicht brauchst, kommentier' obige Zeile mal aus...
Zudem kann es sein, daß deine Schleife zu schnell durchlaufen wird, du also den Effekt nicht siehst..

Ich arbeite gern mit der Tween-Klasse : Da kann man Start-/Endwert der getweenten Eigenschaft und die Zeit angeben, in der der Tween laeuft.. (also etwa ein MX.Tween(0,50,_alpha,25,false) (25=dauer in frames)).

Current scheint mir die ID des derzeit angezeigtne Bilds zu sein, "id" ist die ID des "Zielbildes" auf den sich der Blendeffekt bezieht....
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Di 07.04.2009 15:24
Titel

Antworten mit Zitat Zum Seitenanfang

ich habe jetzt auch noch ein bsp gefunden welches mit dieser von dir genannten klasse arbeitet.

http://www.flashforum.de/forum/showthread.php?t=267900

nur habe ich (wie du sehen kannst) probleme mit dem veröffentlichen.

denn sobald ich das bsp von dem bei mir öffne und wieder veröffentliche, dann gehts nicht mehr.
  View user's profile Private Nachricht senden
fragile

Dabei seit: 22.09.2004
Ort: Amberg
Alter: 50
Geschlecht: Männlich
Verfasst Di 07.04.2009 15:30
Titel

Antworten mit Zitat Zum Seitenanfang

Evtl. die Sicherheitseinstellungen ('Nur auf lokale Dateien zugreifen...')... ?

Ansonsten sollte es mit der Tween-Klasse gehen... Die Funktion picTransition muss bei dir ja nur den alpha-Blend durchführen und die Bilder weiterschalten (current=id)...
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Di 07.04.2009 15:38
Titel

Antworten mit Zitat Zum Seitenanfang

fragile hat geschrieben:
Evtl. die Sicherheitseinstellungen ('Nur auf lokale Dateien zugreifen...')... ?


zweite option hier wäre 'nur auf netzwerk zugreifen', das bringt bei auch keine veränderung.

fragile hat geschrieben:
Die Funktion picTransition muss bei dir ja nur den alpha-Blend durchführen und die Bilder weiterschalten (current=id)...


d.h. meine idee war schon ok so, nur an der falchen stelle im script.
kann ich den teil

Code:
_root.bigMc_array[id]._alpha++;


nicht auch irgendwie mittels setInterval steuern? dann müßte ich ja nicht unbedingt die tween-klasse verwenden oder?falls ja muß ich diese ja irgendwo herunterladen, code.google hat die glaub ich und includieren.verstehe ich das richtig?

/************************************************************************************************/

also um nochmal zum ersten Bsp zu kommen.
ich wollte das mit der Tween-Klasse jetzt mal ausprobieren.

dazu habe ich folgendes für den Import der Klasse gefunden

Code:

import flash.external.*;
import caurina.transitions.Tweener;


wird die klasse dann direkt im systemordner der FlashVers gesucht?
Oder kann man auch auf klassen zurückgreifen die im netzt stehen?
Oder muß ich diese erst irgendwo herunterladen?

Sorry für diese dümmlichen Fragen, aber ich habe 1mal im Jahr mit Flash zu tun und dann ist der einstieg jedesmal ziehml mühsam.

dazu habe ich mir folgendes noch gesucht um das Bild mittels der Klasse einzublenden

Code:

function moveImageIn( imageNr_:Number ):Void
{
   Tweener.addTween( holders[ imageNr_ - 1 ], { _alpha:100, time:transTime, transition:"linear", onStart:function() { this._visible = true }, onComplete:startTimer } );
}


nur verstehe ich die syntax nicht um das auf mein Bild anzuwenden.


Zuletzt bearbeitet von Kash am Di 07.04.2009 16:27, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Di 07.04.2009 17:04
Titel

Antworten mit Zitat Zum Seitenanfang

so also ich habe herausgefunden warum 2tes Beispiel nicht funktioniert.
das liegt daran das die Tweener-Klasse nicht dabei war und extra heruntergeladen werden mußte.

irgendwie hatte ich es mir auch schon gedacht.

die klasse wäre folgende

http://tweener.googlecode.com/files/..._31_74_as2.zip

und ist im selben verzeichniss unterzubringen in dem auch *.fla, *.swf etc liegen.
  View user's profile Private Nachricht senden
 
Ähnliche Themen Überblendeffekt (Flash)
suche simple slideshow (überblendeffekt)
[Flash] Foto Slideshow mit Überblendeffekt
[Flash] Überblendeffekt und Slideshow mit externen Dateien
wie praktische Prüfung schaffen
Illustrator - wie weiche Übergänge schaffen?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
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.