Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-07-2006, 20:25   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Question hittest was anders?

hi also ich habe ein kleines problem.

ich habe ein rahmen in dem ich ein mc bewege aber der soll nicht aus dem rahmen gezugen werden können.
also wenn der mc größer ist als der rahmen dann soll zB die obere linke ecke vom mc beim oberen linken ecke vom rahmen stoppen.

ich habe mir schon hitTest angeguckt aber ich komme da mir nicht so ganz klar
also ich habe das hier mal aber hält dann immer an auch wenn der mc größer ist

Code:
	if(this.gCurrentTier_mc.hitTest(this.gCurrentTier_mc._width/2,pw,true)) {
 		this.gCurrentTier_mc.stopDrag();
	}
	if(this.gCurrentTier_mc.hitTest(this.gCurrentTier_mc._height/2,ph,true)) {
 		this.gCurrentTier_mc.stopDrag();
	}

wer weis denn dazu was ?
flozwo ist offline   Mit Zitat antworten
Alt 29-07-2006, 20:32   #2 (permalink)
Neuer User
 
Benutzerbild von Xeef
 
Registriert seit: Sep 2004
Ort: Spain/Ibiza
Beiträge: 942
wo hast den das drin ?
in ein onEnterFRame ?

wie auch immer

startDrag function
startDrag(target:Object, [lock:Boolean, left:Number, top:Number, right:Number, bottom:Number]) : Void
__________________
Languages : (in the order of knowledge/preference)
Read: Flash AS, PHP, JS, Html, DHtml, Basic, C++, DOS, 3DMaxScript, English, Deutsch, Magyar, XML, Pascal, VB, Spanish
Write: Flash AS, Basic, PHP, JS, DHtml, Html, ..., C++, ...., ..., English, ..., ..., ..., ...., Deutsch, ..., Magyar

wen du mein deutsch nicht magst whele eine andere sparache von den obrigen ;)
Xeef ist offline   Mit Zitat antworten
Alt 29-07-2006, 20:41   #3 (permalink)
Mac User
 
Benutzerbild von prizma
 
Registriert seit: Jul 2006
Ort: Berlin
Beiträge: 167
Es geht auch auf die etwas andere Art, wobei diese Methode für Dein Beispiel nicht das effektivste ist, sondern das von xeef eher.

Koordinaten-Check Variante

(Registrierungspunkt der beiden MC's sollte einfachheitshalber oben links sein).

links: vagina_mc._x rechts: vagina_mc._width;
oben: vagina_mc._y;
unten: vagina_mc._height;

Abfrage erfolgt einfach mit

if(penis_mc._x<vagina._x || penis_mc._y < vagina_mc. || penis_mc._x + penis_mc._width > vagina_mc._width || penis._mc._y+penis_mc._height >vagina_mc._height){
penis_mc.stopDrag();
usw.
blaa blaa
}
__________________
Schöne Grüße, best regards
prizma

Geändert von prizma (29-07-2006 um 20:43 Uhr)
prizma ist offline   Mit Zitat antworten
Alt 29-07-2006, 20:44   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
haha bist aber sehr creative in deinen variablen.
also ich ich habe von beiden die eckpunkte die werte (vom rahmen und dem mc).
die abfrage liegt in einem onEnterFrame also so das der wert immer aktuell ist.
flozwo ist offline   Mit Zitat antworten
Alt 29-07-2006, 20:49   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Question

alos wenn ich es so mache hat es keinerlei auswirkung leider =/
oder habe ich das was falsch gemacht ?
Code:
this.gCurrentTier_mc.startDrag(false, this._parent.maskdummy_mc._x,this._parent.maskdummy_mc._y,this._parent.maskdummy_mc._x+this._parent.maskdummy_mc._width-this._width,this._parent.maskdummy_mc._y+this._parent.maskdummy_mc._height-this._height);
flozwo ist offline   Mit Zitat antworten
Alt 29-07-2006, 21:17   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Unhappy

also wenn ich das mir dem

this.gCurrentTier_mc.startDrag(false, this.getWindowLeft(),this.getWindowTop(),this.getW indowRight(),this.getWindowBottom());

mache dann geht es aber nicht so ganz also wenn der mc größer als der rahmen wird dann kann ich es nicht mehr verschieben. obwohl der noch nciht an seine kannten angekommen ist.

wie muss ich es denn ändern damit der es richtig macht?
flozwo ist offline   Mit Zitat antworten
Alt 29-07-2006, 21:26   #7 (permalink)
Neuer User
 
Benutzerbild von Xeef
 
Registriert seit: Sep 2004
Ort: Spain/Ibiza
Beiträge: 942
Hmmmm

das ist was mich stendig verwirt !

versuch mall :

(regPoint is topLeft !)

this.gCurrentTier_mc.startDrag(false, 0,0,_parent.width-this._width,_parent._height-this._height)
__________________
Languages : (in the order of knowledge/preference)
Read: Flash AS, PHP, JS, Html, DHtml, Basic, C++, DOS, 3DMaxScript, English, Deutsch, Magyar, XML, Pascal, VB, Spanish
Write: Flash AS, Basic, PHP, JS, DHtml, Html, ..., C++, ...., ..., English, ..., ..., ..., ...., Deutsch, ..., Magyar

wen du mein deutsch nicht magst whele eine andere sparache von den obrigen ;)
Xeef ist offline   Mit Zitat antworten
Alt 29-07-2006, 21:45   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Unhappy

also der code müsste bei mir dann ca so aussehen aber dann wenn man es verschiebt dann stoppt immer aus ürgent einem grund und wenn der MC zu ende ist macht der trotzdem weiter.

ich habe es so umändern müssen da der nummpunkt in der mitte des mc ist.

this.gCurrentTier_mc.startDrag(false, (this.gCurrentTier_mc._width/2)-(pw/2),(this.gCurrentTier_mc._height/2)-(ph/2),-(this.gCurrentTier_mc._width/2)+(pw/2),-(this.gCurrentTier_mc._height/2)+(ph/2))
flozwo ist offline   Mit Zitat antworten
Alt 29-07-2006, 21:57   #9 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Unhappy

also ich lade mal eine fla datei hoch mit einem beispiel.
die fla ist eine mx2004 version.
also wenn ich es zb nach unten verschieben will dann müsste der dann auch bei der unterenlinke ecke oder unterenrechten ecke aufhören.
ich hoffe man versteht es was ich meine =/
Angehängte Dateien
Dateityp: zip mx2004.zip (5,1 KB, 2x aufgerufen)
flozwo ist offline   Mit Zitat antworten
Alt 29-07-2006, 22:08   #10 (permalink)
Neuer User
 
Benutzerbild von Xeef
 
Registriert seit: Sep 2004
Ort: Spain/Ibiza
Beiträge: 942


jetzt bin ich aber verwirt !!!

Zitat:
also wenn ich es zb nach unten verschieben will dann müsste der dann auch bei der unterenlinke ecke oder unterenrechten ecke aufhören
Zitat:
ich habe ein rahmen in dem ich ein mc bewege aber der soll nicht aus dem rahmen gezugen werden können.
also wenn der mc größer ist als der rahmen dann soll zB die obere linke ecke vom mc beim oberen linken ecke vom rahmen stoppen.

wasen nun ?

das ding IST grosser als der rahmen ! (dein FLA)
__________________
Languages : (in the order of knowledge/preference)
Read: Flash AS, PHP, JS, Html, DHtml, Basic, C++, DOS, 3DMaxScript, English, Deutsch, Magyar, XML, Pascal, VB, Spanish
Write: Flash AS, Basic, PHP, JS, DHtml, Html, ..., C++, ...., ..., English, ..., ..., ..., ...., Deutsch, ..., Magyar

wen du mein deutsch nicht magst whele eine andere sparache von den obrigen ;)
Xeef ist offline   Mit Zitat antworten
Alt 29-07-2006, 22:12   #11 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Unhappy

also ich habe lade mal was hoch was so ansatzweise geht wie ich es haben will es ist aber schlecht da es auch hängt.

also sollte es functionieren aber es hängt ja und es gibt bestimmt was besseres also das was ich grade gemacht habe.
Angehängte Dateien
Dateityp: zip soCAmx2004.zip (5,0 KB, 2x aufgerufen)
flozwo ist offline   Mit Zitat antworten
Alt 29-07-2006, 23:17   #12 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ich versteh nur Bahnhof, kannst nicht mal genauer erklären was Du machen möchtest .
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 30-07-2006, 06:43   #13 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Unhappy

also ich habe ein rahmen und ein mc sagen wir mal da ist ein bild drinne das aber größer ist als der rahmen. also ragen ein paar stellen von dem bild links rechts oben und unten aus dem rahmen heraus.
(die positionen der nullpunkte vom rahmens und vom mc ist in der mitte.)

ich will aber das das bild nicht aus dem rahmen gezogen werden kann. (das keine leeren flächen entstehen).
also kann man das bild im bereich vom rahmen bewegen.
(so ca wie die letzte fla, wobei die nicht gut gelöst ist.)


ich hoffe ich habe es jetzt besser erklärt. =)
flozwo ist offline   Mit Zitat antworten
Alt 30-07-2006, 10:31   #14 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Unhappy

ich wollte es nachher bei dem zoomifly addon einbinden. aber da der nullpunkt immer von der maske zentiert ausgerichtet wird geht der ganze script nicht so wie im diesem tollen beispiel was ich da hochgeladen hatte. ich hatte mir überlegt wenn ich zB an jeder seite ein balken hin setze der dann beim startDrag kontroliert wenn der hitTest = true wieder gibt das der dann stopt aber das geht bei mir gar nicht. also das ist der script dazu

Code:
_root.emp.attachMovie("mc", "mc", 2);
//ausgabe
_root.emp.mc.onPress = function() {
	this.startDrag();
	//pointer();
	pointersec();
};
_root.emp.mc.onRelease = _root.emp.mc.onReleaseOutside=function () {
	this.stopDrag();
};
staerke = 10;
//TOP
_root.emp.mc.createEmptyMovieClip("rahmenT", 20);
_root.emp.mc.rahmenT.lineStyle(staerke, 0xFF0000, 100);
_root.emp.mc.rahmenT.moveTo(-(_root.emp.mc._width/2), -(_root.emp.mc._height/2));
_root.emp.mc.rahmenT.lineTo(_root.emp.mc._width/2, -(_root.emp.mc._height/2));
//BOTTOM
_root.emp.mc.createEmptyMovieClip("rahmenB", 40);
_root.emp.mc.rahmenB.lineStyle(staerke, 0xFF0000, 100);
_root.emp.mc.rahmenB.moveTo(-(_root.emp.mc._width/2), (_root.emp.mc._height/2));
_root.emp.mc.rahmenB.lineTo(_root.emp.mc._width/2, (_root.emp.mc._height/2));
//LEFT
_root.emp.mc.createEmptyMovieClip("rahmenL", 10);
_root.emp.mc.rahmenL.lineStyle(staerke, 0xFF0000, 100);
_root.emp.mc.rahmenL.moveTo(-(_root.emp.mc._width/2-staerke), (_root.emp.mc._height/2));
_root.emp.mc.rahmenL.lineTo(-(_root.emp.mc._width/2-staerke), -_root.emp.mc._height/2);
//RIGHT
_root.emp.mc.createEmptyMovieClip("rahmenR", 30);
_root.emp.mc.rahmenR.lineStyle(staerke, 0xFF0000, 100);
_root.emp.mc.rahmenR.moveTo((_root.emp.mc._width/2-staerke), -(_root.emp.mc._height/2));
_root.emp.mc.rahmenR.lineTo((_root.emp.mc._width/2-staerke), _root.emp.mc._height/2);
//
//function
function pointersec(){
	if(_root.emp.mc.hitTest(_root.maske._x,_root.maske._y)){
		trace("hit L");
		_root.emp.mc._x = (_root.emp.mc._width/2)-(_root.maske._width/2);
	}
	if(_root.emp.mc.hitTest(_root.maske._x,_root.maske._y)){
		trace("hit T");
		_root.emp.mc._y = (_root.emp.mc._height/2)-(_root.maske._height/2);
	} 
	if(_root.emp.mc.hitTest(_root.maske._x,_root.maske._y)){
		trace("hit R");
		_root.emp.mc._x = -(_root.emp.mc._width/2)+(_root.maske._width/2);
	} 
	if(_root.emp.mc.hitTest(_root.maske._x,_root.maske._y)){
		trace("hit B");
		_root.emp.mc._y = -(_root.emp.mc._height/2)+(_root.maske._height/2);
	}
		/*
		if(_root.emp.mc.hitTest(rahmenL._x,rahmenL._y)){
			trace("hit L");
			_root.emp.mc._x = (_root.emp.mc._width/2)-(_root.maske._width/2);
		}
		if(_root.emp.mc.hitTest(rahmenT._x,rahmenT._y)){
			trace("hit T");
			_root.emp.mc._y = (_root.emp.mc._height/2)-(_root.maske._height/2);
		} 
		if(_root.emp.mc.hitTest(rahmenR._x,rahmenR._y)){
			trace("hit R");
			_root.emp.mc._x = -(_root.emp.mc._width/2)+(_root.maske._width/2);
		} 
		if(_root.emp.mc.hitTest(rahmenB._x,rahmenB._y)){
			trace("hit B");
			_root.emp.mc._y = -(_root.emp.mc._height/2)+(_root.maske._height/2);
		}
		*/
}
//
function pointer() {
	onEnterFrame = function () {
		if (_root.emp.mc._x>(_root.emp.mc._width/2)-(_root.maske._width/2)) {
			_root.emp.mc._x = (_root.emp.mc._width/2)-(_root.maske._width/2)-3;
			//_root.emp.mc.stopDrag();
			//delete this.onEnterFrame;
		}
		if (_root.emp.mc._y>(_root.emp.mc._height/2)-(_root.maske._height/2)) {
			_root.emp.mc._y = (_root.emp.mc._height/2)-(_root.maske._height/2)-3;
			//_root.emp.mc.stopDrag();
			//delete this.onEnterFrame;
		}
		if (_root.emp.mc._x<-(_root.emp.mc._width/2)+(_root.maske._width/2)) {
			_root.emp.mc._x = -(_root.emp.mc._width/2)+(_root.maske._width/2)+3;
			//_root.emp.mc.stopDrag();
			//delete this.onEnterFrame;
		}
		if (_root.emp.mc._y<-(_root.emp.mc._height/2)+(_root.maske._height/2)) {
			_root.emp.mc._y = -(_root.emp.mc._height/2)+(_root.maske._height/2)+3;
			//_root.emp.mc.stopDrag();
			//delete this.onEnterFrame;
		}
	};
}
flozwo ist offline   Mit Zitat antworten
Alt 01-08-2006, 23:02   #15 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ich hab da mal was gebaut, des bezieht sich zwar auf die Bühne aber vielleichzt hilfts ja!
Angehängte Dateien
Dateityp: zip drag_border_MX2.zip (5,7 KB, 2x aufgerufen)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake 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 16:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele