Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-03-2006, 15:04   #1 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Gummiseil mit Maus anfassen

Hallo,
das folgende schöne Skript von Flashstar (Danke @ Madokan!)
lässt ein Gummiband schnellen. Damit es noch realistischer wird,
wollte ich es gerne mit der Maus richtig "packen", wegziehen und
dann erst loslassen.
Bei dieser Version lässt sich die Maus auch vom Gummiband entfernen.
Weiss jemand, wie sich das Skript ummodeln lässt?
Danke im voraus
23012

Code:
/*
Gummiband
*/

dicke = 1;
posX1 = 0;
posY1 = 200;
posX2 = 400;
posY2 = 200;

// Gum-Faktor
gummi = 0.1;
faktor = 1-gummi;

cx = tx = (posX2+posX1)/2;
cy = ty = (posY2+posY1)/2;
vx = vy = 0;

onMouseDown = function () {
	cx = _xmouse;
	cy = _ymouse;
	drag=true;
}
onMouseUp = function () {
	drag=false;
}
onMouseMove = function () {
	if (drag) {
		cx = _xmouse;
		cy = _ymouse;
	}
}

onEnterFrame = function () {
	clear();
	lineStyle(dicke,0x000000,100);
	moveTo(posX1,posY1);	
	vx = (tx-cx)*gummi + vx*faktor;
	vy = (ty-cy)*gummi + vy*faktor;
	if (!drag) {
		cx += vx;
		cy += vy;
	}
	curveTo(cx,cy,posX2,posY2);
}
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 26-03-2006, 15:41   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
"..richtig "packen".."

solange du an einem gummiband ziehst, wird dieses wohl kaum durchgebogen sein. also einfach zwei lineTo anfang-maus und maus-ende und erst beim loslassen mit curveTo zeichnen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-03-2006, 17:04   #3 (permalink)
Banned
 
Benutzerbild von _level0
 
Registriert seit: Jan 2006
Beiträge: 849
PHP-Code:
/*
Gummiband
*/

dicke 1;
posX1 0;
posY1 200;
posX2 400;
posY2 200;

// Gum-Faktor
gummi 0.1;
faktor 1-gummi;

cx tx = (posX2+posX1)/2;
cy ty = (posY2+posY1)/2;
vx vy 0;

onMouseDown = function () {
    
cx _xmouse;
    
cy _ymouse;
    
drag=true;
}
onMouseUp = function () {
    
drag=false;
}
onMouseMove = function () {
    if (
drag) {
        
cx _xmouse;
        
cy _ymouse;
    }
}

onEnterFrame = function () {
    
clear();
    
lineStyle(dicke,0x000000,100);
    
moveTo(posX1,posY1);    
    
vx = (tx-cx)*gummi vx*faktor;
    
vy = (ty-cy)*gummi vy*faktor;
    if (!
drag) {
        
cx += vx;
        
cy += vy;
        
My_Diff 0;
    } else {
        
My_Diff _ymouse-posY1
    
}
        
    
curveTo(cx,My_Diff+cy,posX2,posY2);

so?
_level0 ist offline   Mit Zitat antworten
Alt 26-03-2006, 17:19   #4 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Hallo,
danke @ _level0 für das praktische Beispiel - das reicht für meine
Bedürfnisse. (Obwohl ich hgseib Recht geben muss - so richtig
realistisches "Ziehen" ist das nicht. Dazu müsste das Seil gestrafft
werden.) Na, ich probier noch'n bisschen rum...
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 26-03-2006, 17:25   #5 (permalink)
Banned
 
Benutzerbild von _level0
 
Registriert seit: Jan 2006
Beiträge: 849
Zitat:
Zitat von 23012
Hallo,
danke @ _level0 für das praktische Beispiel - das reicht für meine
Bedürfnisse. (Obwohl ich hgseib Recht geben muss - so richtig
realistisches "Ziehen" ist das nicht. Dazu müsste das Seil gestrafft
werden.) Na, ich probier noch'n bisschen rum...
Gruss
23012
ok ich hab ehrlich gesagt auch nicht wirklich verstanden was du wolltest ... bis aus das das band an der maus (hängen bleibt)

stört dich nun noch das man klicken kann und das band dorthin springt oder ein sonstiges verhalten
_level0 ist offline   Mit Zitat antworten
Alt 26-03-2006, 18:15   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
naja, so richtig 'realistisch' wird es dadurch auch nicht ;-) ist ja wohl auch nur als beispiel gedacht gewesen.
das müsste dann in ruhestellung etwas durchhängen, die schwingung müsste etwas spitzer sein und es müsste mehrere wellen geben.
Code:
dicke = 1;
posX1 = 100;
posY1 = 200;
posX2 = 400;
posY2 = 200;
clear();
lineStyle(dicke, 0);
moveTo(posX1, posY1);
lineTo(posX2, posY2);
gummi = 0.1;
faktor = 1-gummi;
tx = (posX2+posX1)/2;
ty = (posY2+posY1)/2;
vx = vy=0;
//
onMouseDown = function () {
	onEnterFrame = function () {
		cx = _xmouse;
		cy = _ymouse;
		clear();
		lineStyle(dicke, 0);
		moveTo(posX1, posY1);
		lineTo(cx, cy);
		lineTo(posX2, posY2);
	};
};
onMouseUp = function () {
	onEnterFrame = function () {
		clear();
		lineStyle(dicke, 0x000000, 100);
		moveTo(posX1, posY1);
		vx = (tx-cx)*gummi+vx*faktor;
		vy = (ty-cy)*gummi+vy*faktor;
		if (!drag) {
			cx += vx;
			cy += vy;
		}
		curveTo(cx, cy, posX2, posY2);
	};
};
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (26-03-2006 um 22:14 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 26-03-2006, 19:19   #7 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Danke Euch beiden - klappt jetzt so, wie ichs wollte.
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 26-03-2006, 19:37   #8 (permalink)
Banned
 
Benutzerbild von _level0
 
Registriert seit: Jan 2006
Beiträge: 849
irgs.... nun weiss ich was du meintest.....
_level0 ist offline   Mit Zitat antworten
Alt 07-04-2006, 05:59   #9 (permalink)
[Matthias K.] - Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Jun 2001
Ort: Berlin/Germany - and the hole World !
Beiträge: 9.971
Hehe ich sag nur - immer ist das Gummi schuld. Ich schau mal, sobald ich Zeit habe werd ich neue Experimentals zum Thema hier und auf flashstar.de posten.

Liebe Grüsse
Matze K.
Madokan 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 14:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele