Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-05-2006, 14:14   #1 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
...wackelpeter!

aloah folx!

ich hab mir nen prototypen geschrieben, der figuren "skanken" lässt.
die figur hat kopp, koerper.oberkoerper und koerper.unterkoerper.

z.B. _root.figur.kopp.hibbeln() startet den prototyp.

watch it ´ere

PHP-Code:
MovieClip.prototype.hibbeln = function (){
    if(
this._parent.bounceflag != true){
        var 
maxbounce this._parent.bouncemax;
        
        
bouncer = function(that){
            
that.bounceflag true;
            if(
Math.round(that.kopp._y) != maxbounce){
                
trace(Math.round(that.kopp._y))
                
deltay maxbounce-that.kopp._y;
                
that.kopp._y += deltay/2;
                
that.koerper.oberkoerper._y += deltay/4;
                
that.koerper.unterkoerper._yscale -= deltay/2;
            }else{
                
maxbounce maxbounce * -1;
                if(
maxbounce 1){
                    
maxbounce -= that.bounceout;
                }
                else if(
maxbounce < -1){
                    
maxbounce += that.bounceout;
                }
                else{
                    
clearInterval(bouncing);
                    
that.bounceflag false;
                }
            }
        }
        var 
bouncing setInterval(bouncerthis._parent.bouncespeedthis._parent);
    }

...sie bouncen auf und ab und "beruhigen" sich langsam wieder.
klappt soweit auch. mein einziges problem is, dass ich diesen bounceout-wert nicht unter 1 setzen kann (sons hakts irgendwo). dadurch regen die sich immer viel zu schnell wieder ab...

wie kann ich diesen bounceout so setzen, dass das bouncen der figuren zwar weiterhin gleichmässig, kontinuierlich abnimmt, aber die figuren länger bouncen?

(....if(maxbounce < -1)...das geht doch bestimmt auch noch besser, oder?)

...lassdiesonnerein!
strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace

Geändert von störie (11-05-2006 um 15:45 Uhr)
störie ist offline   Mit Zitat antworten
Alt 11-05-2006, 15:14   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
http://www.seibsprogrammladen.de/fra...ispiele/flash6
-> Wackler

und ergänze bitte noch, wie man deinen prototypen zum laufen bringt.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (11-05-2006 um 15:23 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 11-05-2006, 16:08   #3 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
heiho!
danke erstmal...

...raff ich jetz noch nich ganz, wie ich das gebrauchen kann, aber das prinzip is klar.

...ma tüfteln
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 11-05-2006, 17:36   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
lade doch bitte eine fla mit zumindestens einer figur hoch. weil bis man etwas passendes zu deinem programm hinbekommen hat, da hat man das schneller selbst programiert ;-)

dann könnte auch jemand nachsehen, wegen:
"..bounceout-wert nicht unter 1.."
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 11-05-2006, 18:39   #5 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
klar. gern.

tada!

...und merci!
strie
Angehängte Dateien
Dateityp: rar wackelpeter.rar (11,1 KB, 9x aufgerufen)
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 11-05-2006, 20:01   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
voila:
Code:
MovieClip.prototype.hibbeln = function() {
	if (!this._parent.bounceflag) {
		var maxbounce = this._parent.bouncemax;
		bouncer = function (that) {
			that.bounceflag = true;
			if (Math.abs(that.kopp._y-maxbounce)>that.bounceout) {
				deltay = maxbounce-that.kopp._y;
				that.kopp._y += deltay/2;
				that.koerper.oberkoerper._y += deltay/4;
				that.koerper.unterkoerper._yscale -= deltay/2;
			} else {
				maxbounce = -maxbounce;
				if (maxbounce>that.bounceout) {
					maxbounce -= that.bounceout;
				} else if (maxbounce<-that.bounceout) {
					maxbounce += that.bounceout;
				} else {
					clearInterval(bouncing);
					that.bounceflag = false;
				}
			}
		};
		var bouncing = setInterval(bouncer, this._parent.bouncespeed, this._parent);
	}
};
//
MovieClip.prototype.soul = function() {
	this.onRollOver = function() {
		this.kopp.hibbeln();
	};
};
this.stoerie.bouncemax = 20;
this.stoerie.bounceout = .4;
this.stoerie.bouncespeed = 20;
this.stoerie.soul();
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 11-05-2006, 20:34   #7 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
bigup Math.abs!

hammermässich, danke!

jez gehts weider.

...rocknroll!
strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 11-05-2006, 23:23   #8 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
...und so kann man se auch noch anstacheln...

Code:
MovieClip.prototype.hibbeln = function() {
	if (!this._parent.bounceflag) {
		this._parent.maxbounce = this._parent.bouncemax;
		this._parent.uk_ol_wid = this._parent.koerper.unterkoerper._width;
		var kopp_ol_y = this._y;
		var ok_ol_wid = this._parent.koerper.oberkoerper._width;
		var ok_ol_y = this._parent.koerper.oberkoerper._y;
		bouncer = function (that) {
			that.bounceflag = true;
			if (Math.abs(that.kopp._y-that.maxbounce)>that.bounceout) {
				deltay = that.maxbounce-that.kopp._y;
				that.kopp._y += deltay/2;
				that.koerper.oberkoerper._y += deltay/8;
				that.koerper.oberkoerper._yscale += deltay/8;
				that.koerper.unterkoerper._yscale -= deltay/2;
			} else {
				that.maxbounce = -that.maxbounce;
				if (that.maxbounce>that.bounceout) {
					that.maxbounce -= that.bounceout;
				} else if (that.maxbounce<-that.bounceout) {
					that.maxbounce += that.bounceout;
				} else {
					clearInterval(bouncing);
					that.bounceflag = false
					that.kopp._y = kopp_ol_y;
					that.koerper.oberkoerper._y = ok_ol_y;
					that.koerper.oberkoerper._width = ok_ol_wid;
					that.koerper.unterkoerper._width = that.uk_ol_wid;
				}
			}
		};
		var bouncing = setInterval(bouncer, this._parent.bouncespeed, this._parent);
	}
	else{
		if(Math.abs(this._parent.maxbounce) < this._parent.uk_ol_wid/2){
			this._parent.maxbounce += this._parent.maxbounce/5;
		}
	}
};
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 12-05-2006, 07:12   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ok, für einen 'richtigen' prototypen fehlt jetzt noch folgendes (falls du das machen willst):

du sprichtst ja jedes mc 'persönlich' an. z.b. that.koerper.oberkoerper
ein prototype sollte von soetwas eigentlich unabhängig sein. sprich: das hibbeln müsste jedes mc inclusive seiner sub_mc's hibbeln können.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 12-05-2006, 10:28   #10 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
hmmm...
das hatte ich mir auch schon gedacht, besonders weil dann noch haare, hut oder sonstiges bei bedarf ohne weiteres script mitwackeln könnten.

auf der anderen seite würde dies aber doch ne menge an zusätzlichen variablen erfordern (was hibbelt, hibbelt es über _y, _yscale oder _y und _yscale)...

un da sich nachher diverse leute über einen eingabescreen ihre figur zusammenstellen sollen, wollte ich den "fragebogen" so klein wie möglich halten...

da würd mir dann nur ne abfrage innerhalb des prototypens einfalln... aber "richtig" wär das dann auch nich.

oder hast du da auch noch ne tolle idee?

gruss
strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 12-05-2006, 10:32   #11 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Jo, und _parent sind in Prototypes auch nicht gut aufgehoben, besser die Variablen an die Methode übergeben.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 12-05-2006, 11:16   #12 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
wie gesagt, musst du wissen, ob du den aufwand betreiben willst (gründe dafür wären: weil du's wissen willst oder weil du sowas ständig brauchst).
ansonsten gilt die regel: 'niemals ein funktionierendes system ändern' ;-)

passend zu Janoscharlipp: nur die figur selbst hibbeln und die sub_mc's mit z.b.
for (var _mc in this) ... abarbeiten.

damit die routine weiss was sie machen soll, jedem _mc parameter mitgeben. ähnlich:
this.stoerie.bouncemax = 20;
this.stoerie.bounceout = .4;
this.stoerie.bouncespeed = 20;
also so wenig wie unbedingt nötig. lieber mit beziehungen und %ten arbeiten. z.b.
this.bouncemax=this._heigth/3;

eine andere lösung ist z.b. via namenserkennung z.b.
that.koerper.oberkoerper_hibbeln
daran kann die routine erkennen, dass dieses mc ge-hibbelt werden soll.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (12-05-2006 um 11:20 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 12-05-2006, 13:12   #13 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
ok. ich lass mir das ma durch den kopf gehen...

vielen dank jedenfalls für die schnelle und ergiebige hilfe!

...falls ich s nochmal umschreibe, poste ichs natürlich hier!

un jetz geniess ich erstmal meinen neuen laptop

intel celeron, 252 MHz, 192 MB RAM > was das läuft!

...rocknroll!
strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 12-05-2006, 20:34   #14 (permalink)
Pixeldipaxeldipux
 
Benutzerbild von Ahrsib
 
Registriert seit: Dec 2002
Ort: Ruhrmetropole Essen
Beiträge: 7.589
Witzig die Hibbelnden!-)
Und großartig die Forumschmiede!
hgseib sollte Achim werden, nicht wahr, Achim Fehltdawas?

Ahrsib
... *Duftmarke absetz*
__________________
Selbstgelerntes ist am Besten!

iMac G5/2,1GHz, 2,5GB RAM, 20" Widescreen (1680*1050), MacOS 10.4.11, Safari 4.1, dsl 6000
Achim ...Orient

Das Flashforum zu unterstützen ist ganz einfach!
Ahrsib ist offline   Mit Zitat antworten
Alt 13-05-2006, 09:38   #15 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
aloah ahrsib!

ja, also etwas kim-chi und n humpen blondes hätt er sich verdient
...by the way, wann is denn der nächste achim.
hab ja VERSPROCHEN da zu sein, und da ich jetzt seit dem ersten in berlin rumtingel muss sowas gut geplant sein.

greetz vom achim!
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie 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 11:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele