Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-05-2005, 15:38   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2005
Beiträge: 44
Wer erklärt mir zwei Action Scripte?

Moin,

ich versuche gerade dynamisch ein paar Bilder in ein MC zu laden. Diese Bilder sollen bei einem MouseOver sich jeweils vergrößern (wie beim OS-X-Dock) und wenn man draufklckt ein Popup-Fenster (HTML) öffnen.

Zu diesem Zweck habe ich mir jetzt in ein paar Foren für die jeweiligen Aufgaben zwei Scripte zusammengeräubert. Leider sind mir die Scripte anscheinend nicht so hunderprozentig klar, da ich nicht in der Lage bin, diese Scripte mit einender zu kombinieren. Einzelnd bekomme ich sie zum laufen, zusammen tut sich jedoch nichts.

Ich binzwar schon fleissig am Lesen von Büchern, die bringen mich so auf Anhieb aber auch nicht weiter.

Vielleicht hat hier jemand Lust, mir die Funktionsweise der Scripte zu erklären und mir einen Tip zu geben, wie ich diese Scripte verschmelze.

Script zum Laden und positionieren den Bilder:

Wie bekomme ich jetzt hier den Hyperlink rein? Und warum bekommt das Skript h eraus, wann die externen Bilder geladen sind um die Breite zu erfragen, ohne in einen zweiten Frame zu springen? So ich es richtig verstanden habe wir der Inhalt eines Frames doch nur dann neu ausgeführt, wenn der Frame von einem anderen Frame aus neu betreten wird.

Zitat:
var pics = 6;
var i = 0;
var gesammtbreite = 0;
var distance = 10;
function laden() {
this.createEmptyMovieClip("pic"+i, i);
this.createEmptyMovieClip("watcher", 100);
this["pic"+i].loadMovie("chip-0"+(i+1)+".jpg");
this.watcher.onEnterFrame = function() {

if (this._parent["pic"+i]._width>0) {

i>0 ? lastwidth=this._parent["pic"+(i-1)]._width : lastwidth=0;
this._parent["pic"+i]._x = this._parent["pic"+(i-1)]._x+lastwidth+distance;
gesammtbreite=this._parent["pic"+i]._x+lastwidth+distance;
this._parent["pic"+i]._y = 100;
i == pics-1 ? removeMovieClip(this) : (i++, laden());
}

};
}


laden();
Script zum Aufzoomen der einzelnen Bilder:

Gerade hier ist mir nicht klar, wie ich dieses Script auf dynamisch erzeugte MCs loslassen kann.

Zitat:
onClipEvent (load) {
skalXAnf = this._xscale;
skalYAnf = this._yscale;
skalXEnd = 200; //Maximaler Skalierungswert X
skalYEnd = 200; //Maximaler Skalierungswert Y
vOver = 6; //Je kleiner, desto schneller wird größer gezoomt
vRunter = 4; //Je kleiner, desto schneller wird kleiner gezoomt
breite=this._width;

//Aktion vegeben
this.onRollOver = function() {
this.over = true;
}
this.onRollOut = function() {
this.over = false;
}
}

onClipEvent (enterFrame) {
if (this.over) {
//Für das zoomObj

this._xscale = this._xscale + (skalXEnd - this._xscale) / vOver;
this._yscale = this._yscale + (skalYEnd - this._yscale) / vOver;
if ((skalXEnd - this._xscale) >0.1 ){

this._parent.bild2._x=this._parent.bild2._x + 1;
}

}
if (!this.over) {
//Für das zoomObj
this._xscale = this._xscale + (skalXAnf - this._xscale) / vRunter;
this._yscale = this._yscale + (skalYAnf - this._yscale) / vRunter;
}

}
Questor ist offline   Mit Zitat antworten
Alt 08-05-2005, 16:09   #2 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
Hi,

erst mal zum ersten Script:

meiner Meinung nach nicht das beste, wegen des rekursiven Aufrufs, aber wers mag.

ActionScript:
  1. var pics = 6;
  2. var i = 0;
  3. var gesammtbreite = 0;
  4. var distance = 10;
  5. function laden() {
  6. this.createEmptyMovieClip("pic"+i, i);
  7. this.createEmptyMovieClip("watcher", 100); // <- Neuer leerer MC wird erstellt
  8. this["pic"+i].loadMovie("chip-0"+(i+1)+".jpg");
  9. this.watcher.onEnterFrame = function() {   // und hier ist das "neu Betreten" des Frames des neuen MCs
  10.  
  11. if (this._parent["pic"+i]._width>0) { // <- hier wird das Bild geprüft
  12.  
  13. i>0 ? lastwidth=this._parent["pic"+(i-1)]._width : lastwidth=0;
  14. this._parent["pic"+i]._x = this._parent["pic"+(i-1)]._x+lastwidth+distance;
  15. gesammtbreite=this._parent["pic"+i]._x+lastwidth+distance;
  16. this._parent["pic"+i]._y = 100;
  17. this.zoomdingens(); // Verknüpfung zu zweitem Script
  18. i == pics-1 ? removeMovieClip(this) : (i++, laden());
  19. }
  20.  
  21. };
  22. }
  23.  
  24.  
  25. laden();

das zweite Script:

ActionScript:
  1. MovieClip.prototype.zoomdingens = funktion () { // <- in protoype umgeschrieben
  2. skalXAnf = this._xscale;
  3. skalYAnf = this._yscale;
  4. skalXEnd = 200; //Maximaler Skalierungswert X
  5. skalYEnd = 200; //Maximaler Skalierungswert Y
  6. vOver = 6; //Je kleiner, desto schneller wird größer gezoomt
  7. vRunter = 4; //Je kleiner, desto schneller wird kleiner gezoomt
  8. breite=this._width;
  9.  
  10. //Aktion vegeben
  11. this.onRollOver = function() {
  12. this.over = true;
  13. }
  14. this.onRollOut = function() {
  15. this.over = false;
  16. }
  17. }
  18.  
  19. this.onEnterFrame = function () { // <- neue Schreibweise verwendet
  20. if (this.over) {
  21. //Für das zoomObj
  22.  
  23. this._xscale = this._xscale + (skalXEnd - this._xscale) / vOver;
  24. this._yscale = this._yscale + (skalYEnd - this._yscale) / vOver;
  25. if ((skalXEnd - this._xscale) >0.1 ){
  26.  
  27. this._parent.bild2._x=this._parent.bild2._x + 1;
  28. }
  29.  
  30. }
  31. if (!this.over) {
  32. //Für das zoomObj
  33. this._xscale = this._xscale + (skalXAnf - this._xscale) / vRunter;
  34. this._yscale = this._yscale + (skalYAnf - this._yscale) / vRunter;
  35. }
  36.  
  37. }

das ganze ist ungetestet, daher möglicherweise nicht 100% funktionsfähig.

Tipps: onEnterFrame und prototype anschauen!

viel erfolg,
solo
soloFlash 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 13:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele