Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-03-2004, 18:27   #1 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
Unhappy function - scale von button onRollover funzt nicht was stimmt da nicht?

Hallo will eine Funktion schreiben mit dessen aufruf am button dann auf diesen meine Funktion ausgeführt wird.

ActionScript:
  1. var speed = 8;
  2.  
  3. // function zoom
  4. rolling = function() {
  5.     this.onRollOver = function() {
  6.         _xscale = scale;
  7.         this.scale = this.scale+speed;
  8.         if (this.scale>=120) {
  9.             this.scale=120;
  10.         }
  11.     }
  12.  
  13.     this.onRollOut = function() {
  14.         this.scale=this.scale+speed;
  15.         if(this.scale>=100)
  16.         {
  17.             this.scale=100;
  18.         }
  19.     }
  20. }
  21.  
  22. mc1.onRollOver = rolling;
  23. mc1.onRollOut = rolling;
  24.  
  25. m2......
  26. und so weiter


wäre super wenn da mal wer drüberschaun könnte.
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 01-03-2004, 18:41   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ähm...
Zitat:
_xscale
bezieht sich aber in dem fall auf den ganzen movie, nä...weil kein pfad angegeben ist...

ebenso das hier:
ActionScript:
  1. _xscale = scale;

woher kommt scale ????

und außerdem...woher kommt this.scale ????


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 01-03-2004, 18:47   #3 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
ah ich depp

scale = _xscale

geht des dass ich
_xscale + _yscale = scale schreibe?
damtis gleichmaäßig skalliert wird?
möchte wenni drüberfah dass der mc dann grösserskalliert.
onRollout dann kleinerskalliert.

dürfte doch damit dann gehen oder?
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 01-03-2004, 18:56   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. this._xscale = this._yscale = this.scale;


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 01-03-2004, 22:25   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
soll's so gehn?
Code:
var scaleMin = 100;
var scaleMax = 120;
var speed = 20;
//
var scaleMod = 0;
var scale = scaleMin;
//
// function zoom
rolling = function () {
	this.onRollOver = function() {
		scaleMod = (scaleMax-scaleMin)/speed;
	};
	this.onRollOut = function() {
		scaleMod = -(scaleMax-scaleMin)/speed;
	};
	this.onEnterFrame = function() {
		if (scale<scaleMin) {
			scale = scaleMin;
			scaleMod = 0;
		} else if (scale>scaleMax) {
			scale = scaleMax;
			scaleMod = 0;
		} else {
			scale += scaleMod;
		}
		_xscale = scale;
		_yscale = scale;
	};
};
//
mc1.onRollOver = rolling;
mc1.onRollOut = rolling;
mc1.onEnterFrame = rolling;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (01-03-2004 um 22:28 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 02-03-2004, 08:28   #6 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
jawohl genial!

so sollte das sein. nun wollte ich das ganze erweitern.

Funzt aber bei mir wieder nicht.

ich dachte mir da ich einige buttons habe warum nicht einfach ein array machen und da die buttons eintragen.



ActionScript:
  1. // array für die mc buttons
  2.  
  3. buttons = ["about", "kontakt", "wir", "suche"];
  4.  
  5.  
  6. var scaleMin = 100;
  7. var scaleMax = 120;
  8. var speed = 10;
  9. //
  10. var scaleMod = 0;
  11. var scale = scaleMin;
  12. //
  13. // function zoom
  14. rolling = function () {
  15.     this.onRollOver = function() {
  16.         scaleMod = (scaleMax-scaleMin)/speed;
  17.     };
  18.     this.onRollOut = function() {
  19.         scaleMod = -(scaleMax-scaleMin)/speed;
  20.     };
  21.     this.onEnterFrame = function() {
  22.         if (scale<scaleMin) {
  23.             scale = scaleMin;
  24.             scaleMod = 0;
  25.         } else if (scale>scaleMax) {
  26.             scale = scaleMax;
  27.             scaleMod = 0;
  28.         } else {
  29.             scale += scaleMod;
  30.         }
  31.         _xscale = scale;
  32.         _yscale = scale;
  33.     };
  34. };
  35. //
  36. buttons.onRollOver = rolling;
  37. buttons.onRollOut = rolling;
  38. buttons.onEnterFrame = rolling;
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 02-03-2004, 12:42   #7 (permalink)
Phlasher
 
Benutzerbild von gerard
 
Registriert seit: Nov 2001
Ort: Unna-Königsborn (NRW)
Beiträge: 466
Die buttons sind im Array deswege

for (var in buttons){

button[i].onRollover=rolling ;
}
__________________
Keep on Flashing
gerard ist offline   Mit Zitat antworten
Alt 02-03-2004, 12:49   #8 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
hmmm...
es ist so dass ich mit dem array bezwecken will, dass diese funktion für alle instanznamen die sich im array befinden ausgeführt wird.

so müsst eich z.b.

for (var about) {
buttons[i].onRollOver=rolling;
}

schreiben
wobei ich nicht weiss wofür i jezt hier steht?
und warum nochmal die variable eingeben?
Damit wäre dann doch

mc1.onRollOver = rolling;
mc1.onRollOut = rolling;
mc1.onEnterFrame = rolling;

einfacher wenn ich das schreibe und das array weglasse oder?
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 03-03-2004, 00:01   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
Code:
// man sollte immer erst alles ausprobieren :-(
// hier diese geschichte für mehrere mc's ;-)
//
var scaleMin = 100;
var scaleMax = 160;
var speed = (scaleMax-scaleMin)/40;
var buttons = [about, kontakt, wir, suchen];
//
rolling = function () {
	this.scaleMod = 0;
	this.scale = scaleMin;
	//
	this.onRollOver = function() {
		this.scaleMod = speed;
	};
	this.onRollOut = function() {
		this.scaleMod = -speed;
	};
	this.onEnterFrame = function() {
		if (this.scale<scaleMin) {
			this.scale = scaleMin;
			this.scaleMod = 0;
		} else if (this.scale>scaleMax) {
			this.scale = scaleMax;
			this.scaleMod = 0;
		} else {
			this.scale += this.scaleMod;
		}
		this._xscale = this.scale;
		this._yscale = this.scale;
	};
};
//
for (i in buttons) {
	buttons[i].onEnterFrame = rolling;
}
sicher, das geht. ist aber nicht so ein doller programmierstiel finde ich ;-)
da kann man sich halt einiges spahren, wenn die funktionen im mc drinnen sind.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (03-03-2004 um 01:21 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 03-03-2004, 08:32   #10 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
Dank dir.

Aber warum ist das hier ein "schlechter" programmierstil?
Und wie wäre das dann besser zu lösen?
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.

Geändert von Electric-X (03-03-2004 um 08:48 Uhr)
Electric-X ist offline   Mit Zitat antworten
Alt 03-03-2004, 08:38   #11 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
Zitat:

rolling = function () {
this.scaleMod = 0;
this.scale = scaleMin;
//
this.onRollOver = function() {
this.scaleMod = speed;
};
this.onRollOut = function() {
this.scaleMod = -speed;
};
this.onEnterFrame = function() {
if (this.scale<scaleMin) {
this.scale = scaleMin;
this.scaleMod = 0;
} else if (this.scale>scaleMax) {
this.scale = scaleMax;
this.scaleMod = 0;
} else {
this.scale += this.scaleMod;
}
this._xscale = this.scale;
this._yscale = this.scale;
};
};
//
das ist nicht schlecht - das ist schlicht 'dummes zeug'.
sorry...aber onenterframe onrollovers, onenterframes[selbst überschreibung], etc... zu generieren ist gelinde gesagt: '****zensiert*



greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 03-03-2004, 08:51   #12 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
hmmm.. ok sehe ich ein.

*grübel*

es geht einfach darum nicht auf jeden button die selbe function draufzuklatschen. wollte nur wenn ich aufn button gehe dass dieser grösser wird und wenni runtergeh dann wieder klein wird.
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 03-03-2004, 08:58   #13 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. for (var i=1;i<=10;i++){
  2.       this['button'+i].onRollOver=function(){
  3.             this.onEnterFrame=function(){
  4.                   this._xscale < 300 ? (this._xscale++) (this._yscale++) : (delete this.onEnterFrame);
  5.             }
  6.       }
  7.       this['button'+i].onRollOut=function(){
  8.             this.onEnterFrame=function(){
  9.                   this._xscale > 100 ? (this._xscale--) (this._yscale--) : (delete this.onEnterFrame);
  10.             }
  11.       }
  12. }


sowas???


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 03-03-2004, 09:06   #14 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
jap vielen Dank

eine frage zu dieser zeile:

this._xscale > 100 ? (this._xscale--) (this._yscale--) : (delete this.onEnterFrame);

das ist doch eine vereinfachte if else anweisung oder?

? enspricht dem else dann richtig? und this._xscale-- wäre this._xscale -= this._xscale so in der art
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 03-03-2004, 09:11   #15 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
übersetzt:

frage, ob ? wenn ja : wenn nein ;

also

ist das _xscale kleiner 300 ? wenn ja : wenn nein ;

und this._xscale -- entspricht : this._xscale = this._xscale -1 ;

und das gegenstück dazu ist ++



greetz

kelor
kelor 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:32 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele