Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-11-2003, 14:53   #1 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
magenet-function für hitTest

hi,

gibt es für hitTest so eine art "magent"-funktion, dass wenn ich mc1 über mc2 bewege und die maustaste "release" sich die beiden mc´s aneinander ausrichten?
habe das problem, wenn die karte nicht genau über dem feld-mc liegt, wird der richtig/flasch-mc nicht korrekt angezeigt bzw. teilweise verdeckt.

kartenspiel.zip liegt auf:
http://www.castra.de/download.htm

gruss xlive
xlive ist offline   Mit Zitat antworten
Alt 11-11-2003, 17:00   #2 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Ist es mit einer einfachen Funktion nicht getan?

Wenn der User loslässt: Falls _x und _y in der nähe (+ oder -10 zB), dann
verschiebe zu....
johanness ist offline   Mit Zitat antworten
Alt 11-11-2003, 18:12   #3 (permalink)
Schrottkunst
 
Benutzerbild von angelikab
 
Registriert seit: Jun 2001
Ort: südlicher
Beiträge: 898
@johannes kannst du das bitte etwas ausführlicher erklären, das ist wahrscheinlich genau das, was ich suche

ich habe einen hebel, der soll nur in x-richtung zu bewegen sein und dann an verschiedenen stellen quasi einrasten.

im moment richtet er sich nur an einer bestimmten stelle aus, um danach ins nächtse bild zugehen, wo wieder dasselbe script liegt mit anderer koordinate, aber das soll so nicht sein:
ActionScript:
  1. function fixPos(){
  2.         mc_schieber._x=417;
  3.         mc_schieber._y=488;
  4. }
  5.  
  6. mc_schieber.onPress=function(){
  7.         this.startDrag();
  8. }
  9. mc_schieber.onRelease=function(){
  10.         this.stopDrag();
  11.         _root.fixPos();
  12.         gotoAndStop("erste");
  13. }

ich hätte natürlich auch lieber einen button mit rollover

sonst hab' ich im moment keine wünsche
angelikab ist offline   Mit Zitat antworten
Alt 11-11-2003, 23:16   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. arrx = [50, 100, 150, 200, 250];
  2. MovieClip.prototype.pos = function(p) {
  3.     arrg = [];
  4.     arrk = [];
  5.     z = arrx.length;
  6.     for (var i = 0; i<z; i++) {
  7.         arrx[i]<p ? arrk.push(arrx[i]) : arrg.push(arrx[i]);
  8.     }
  9.     disk = p-arrk[arrk.length-1];
  10.     disg = arrg[0]-p;
  11.     disk == disg ? this._x=arrk[arrk.length-1] : 0;
  12.     disk<disg ? this._x=arrk[arrk.length-1] : this._x=arrg[0];
  13. };
  14. mc.onPress = function() {
  15.     startDrag(this);
  16. };
  17. mc.onRelease = function() {
  18.     this.stopDrag();
  19.     this.pos(Math.round(this._x));
  20. };


_x wird mit den werten im array verglichen und jeweils an der nächsten koordinate positioniert, wobei das "unentschieden"
der distanzen hier für die positionierung nach links ausgewertet wird.
wenn man eine y-function nach dem gleichen muster macht,
kann man wie auf einem raster positionieren.
warrantmaster ist offline   Mit Zitat antworten
Alt 12-11-2003, 07:59   #5 (permalink)
Schrottkunst
 
Benutzerbild von angelikab
 
Registriert seit: Jun 2001
Ort: südlicher
Beiträge: 898
cool, danke, werds heute abend mal probieren
angelikab ist offline   Mit Zitat antworten
Alt 12-11-2003, 11:40   #6 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
hi,

das kartenspiel mit "magentischen"karten, kann unter
http://www.castra.de/download.htm
heruntergeladen werden.

anmerkung:
das ganze spielt sich jeweils in in den karten-mc´s ab.
die schleife wird nur gebraucht, damit die magnet-funktion, bei jeder karte auch für jedes feld funzt.
mc-magenet, befindet sich in der 2 ebende des mc-feld und wird in der hitTest-Methode angesprochen.

on (release) {
stopDrag();
//for-schleife und if-Abfrage für "magnetismus"
//1. "fb_" --> felderbuchstaben 1 bis 10
for(i=1; i<=_root["fb_"+i]; i++){
if (this.hitTest(_root["fb_"+i].magnet)) {
_x = _parent["fb_"+i]._x;
_y = _parent["fb_"+i]._y;
}
}

gruss xlive
xlive ist offline   Mit Zitat antworten
Alt 12-11-2003, 12:29   #7 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
-schau dir mal das an; müsste man dann nur noch für deinen Fall umschreiben.....
Angehängte Dateien
Dateityp: zip hittest.zip (2,8 KB, 31x aufgerufen)
johanness ist offline   Mit Zitat antworten
Alt 13-11-2003, 20:25   #8 (permalink)
Schrottkunst
 
Benutzerbild von angelikab
 
Registriert seit: Jun 2001
Ort: südlicher
Beiträge: 898
@warrantmaster, ich versuche dein script zu verstehen, bin mir aber nicht sicher, bitte könntest du mir noch schritt für schritt kommentare einfügen? das taugt wohl nicht für flash5, oder? und wenn ich anstatt einem mc einen button möchte, geht das auch? in flash5 kann ich dem button ja noch keinen instanznamen geben.




angelikab ist offline   Mit Zitat antworten
Alt 13-11-2003, 20:49   #9 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@angelikab

hmm....ich hab nullinger ahnung von f5, ist aber sicher umzufriemeln..

ActionScript:
  1. arrx = [50, 100, 150, 200, 250];//<-------sind die x-koordinaten, auf denen der mc einrasten soll
  2. MovieClip.prototype.pos = function(p) {
  3.         arrg = [];//<----array für die werte, die nach loslassen des mc kleiner sind als mc._x
  4.         arrk = [];//<------dito, nur für die, die größer sind als mc._x
  5.         z = arrx.length;//<------var , in der die länge von unserem koordinaten-array gespeichert wird
  6.         for (var i = 0; i<z; i++) {
  7. //  hier wird verglichen, welche werte aus unserem array kleiner
  8. //  oder größer sind als mc._x beim stopdrag und in das
  9.  //   eine oder andere array gepusht
  10.                 arrx[i]<p ? arrk.push(arrx[i]) : arrg.push(arrx[i]);
  11.         }
  12. //  die distanzen der jeweiligen werte zu mc._x werden verglichen
  13. //  und der mc wird auf die ihm nähere position gesetzt
  14. //  bei gleichheit der distanzen wird auf rechts gesetzt
  15.         disk = p-arrk[arrk.length-1];
  16.         disg = arrg[0]-p;
  17.         disk == disg ? this._x=arrk[arrk.length-1] : 0;
  18.         disk<disg ? this._x=arrk[arrk.length-1] : this._x=arrg[0];
  19. };
  20. mc.onPress = function() {
  21.         startDrag(this);
  22. };
  23. mc.onRelease = function() {
  24.         this.stopDrag();
  25.         this.pos(Math.round(this._x));
  26. };
warrantmaster ist offline   Mit Zitat antworten
Alt 14-11-2003, 06:21   #10 (permalink)
Schrottkunst
 
Benutzerbild von angelikab
 
Registriert seit: Jun 2001
Ort: südlicher
Beiträge: 898
muss ich mir mal in ruhe zu gemüte führen
jedenfalls, besten dank, es kann durchaus sein, dass ich mich nochmal melde
angelikab ist offline   Mit Zitat antworten
Alt 18-11-2003, 13:01   #11 (permalink)
Schrottkunst
 
Benutzerbild von angelikab
 
Registriert seit: Jun 2001
Ort: südlicher
Beiträge: 898
@warrantmaster

es hat in x-richtung einigermaßen funktioniert, mal mehr mal weniger.

jetzt habe ich versucht, das script auf die y-koordinate zu übertragen, nun geht aber der x-magnet auch nicht mehr

könntest du bitte ein auge drauf werfen?

hier
Angehängte Dateien
Dateityp: zip schieber.zip (3,4 KB, 11x aufgerufen)
angelikab ist offline   Mit Zitat antworten
Alt 18-11-2003, 20:29   #12 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
hi,
so recht verstehe ich deine frage nicht,
willst du die y-achse vom schieber fixieren ?

wenn, dann:

ActionScript:
  1. mc1.onPress = function() {
  2.         startDrag(this,true,arrx[0],this._y,arrx[arrx.length-1],this._y)
  3. };

wenn nicht, dann meld dich noch mal
warrantmaster ist offline   Mit Zitat antworten
Alt 19-11-2003, 07:31   #13 (permalink)
Schrottkunst
 
Benutzerbild von angelikab
 
Registriert seit: Jun 2001
Ort: südlicher
Beiträge: 898
Zitat:
willst du die y-achse vom schieber fixieren ?
ja, genau und so gehts auch wie ich gesehen habe, aber der schieber rastet an den markierungen nicht mehr ein!
angelikab ist offline   Mit Zitat antworten
Alt 19-11-2003, 07:34   #14 (permalink)
Schrottkunst
 
Benutzerbild von angelikab
 
Registriert seit: Jun 2001
Ort: südlicher
Beiträge: 898
oh, es hat sich erledigt.
danke schön, warrantmaster
angelikab 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 19:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele