Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-11-2003, 12:57   #1 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
_xmouse. _visible = 1

hi,
habe auf meine karten eine drag-function gelegt.
jetzt möchte ich meine karten _visible =0 machen. nur wernn sie grösser als der x-wert 400 sind sollen sie sichtbar bleiben. dazu habe ich das as geschrieben und auf den button gelegt.
meine bühne ist 800 breit.

for(i=1; i<=_root["b_"+i]; i++){
_root["b_"+i]._visible = 0;
}

//if charackter grösser als 400
for(j=1; j<=_root["b_"+j]; j++){
if (_root["b_"+j]._xmouse > 400){
_root["b_"+j]._visible = 1;
}
}

nur es haut nicht hin, die karten werden trotz das sie auf dem bühnen x-wert von 410 liegen ausgeblendet.
wenn ich es richtig verstehe beziehen sich die koordinaten x/y = 0/0 bei der bühne auf den bühnenmittelpunkt, bei einem mc auf die linke obere ecke.

gruss xlive
xlive ist offline   Mit Zitat antworten
Alt 17-11-2003, 13:26   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

bin mir nicht sicher, was du willst.
Meinst du mit "größer" die Breite der Karten oder eher die Position? Ich nehme an, es handelt sich um die Position...

Du kannst es auf zwei Arten ermitteln. Entweder, du fragst du Mausposition ab oder direkt die Position der Karte.

1.
ActionScript:
  1. if (_root["b_"+j]._x > 400){
  2.     _root["b_"+j]._visible = 1;
  3. }

2.
ActionScript:
  1. if (_root._xmouse > 400){
  2.     _root["b_"+j]._visible = 1;
  3. }

Letzteres funktioniert allerdings nur dann wie gewollt, wenn du die Abfrage nur dann machst, wenn auch diese Karte gezogen wird. Ansonsten verschwinden immer alle Karten, wenn die Maus zu weit rechts steht.

Vielleicht wäre es ohnehin besser, du verwendest onEnterFrames auf den Karten, um nicht immer alle Karten abfragen zu müssen (wenn eine Karte liegt, ist es doch klar, dass sie nicht verschwinden muss...)

ActionScript:
  1. onClipEvent(mouseDown) {
  2.     if(this.hitTest(_root._xmouse,_root._ymouse)) {
  3.         this.startDrag(true);
  4.         this.isMoving = true;
  5.     }
  6. }
  7.  
  8. onClipEvent(mouseUp) {
  9.     this.stopDrag();
  10.     this.isMoving = false;
  11. }
  12.  
  13. onClipEvent(enterFrame) {
  14.     if(this.isMoving) {
  15.         if(this._x > 400) this._visible = false; else this._visible = true;
  16.     }
  17. }

Ich hoffe, das hilft

Grüße
Sascha

PS: root["b_"+j]._xmouse ermittelt die X-Position der Maus über dem Objekt, nicht über der Bühne...
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 17-11-2003, 13:51   #3 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
hi,


wie kann ich die x_postiton meines mc abfragen??

habe einen dummy unter http://www.castra.de/download.htm liegen.
im mc reiter_buchstaben, liegtu auf dem button zahlen
ab zeile 11 folgendes schript:


//if charackter kleiner als y 250
for(j=1; j<=_root["b_"+j]; j++){
if (_root["b_"+j]._xmouse > 250){
_root["b_"+j]._visible = 1;
//trace ("Buchstaben");
}

jetzt baue gerade ein neues spiel, und da liegen die kartei karten auf der rechte seite. wenn der user die karten nach links verschiebt, also über den x-wert 400 sollen die karten, genauso wie in meinem dummy noch sicht bar sein.
nur haut es da im gegensatz zu deinem dummy nicht hin???

gruss xlive
xlive ist offline   Mit Zitat antworten
Alt 17-11-2003, 13:57   #4 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
hi,

danke.
habe den fehler gefunden:

fehler:
:
if (_root["b_"+j]._xmouse > 400){


richtig:
:
if (_root["b_"+j]._x > 400){


gruss
xlive ist offline   Mit Zitat antworten
Alt 17-11-2003, 14:10   #5 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ich war davon ausgegangen, dass du beim Verschieben prüfen willst, ob eine Karte den Anzeigebereich verlässt.
Insofern ist meine onEnterFrame-Lösung hinfällig.

Die _x-Position fragst du ganz einfach mit _root["b_"+j]._x ab.
Das ist jedenfalls _root["b_"+j]._xmouse vorzuziehen, da beim letzteren die Position des Mauszeigers Einfluss nimmt.

Noch einfacher ist es allerdings, du speicherst den Zustand deiner Karte in einer separaten Variablen, z.B. snapped = true;

Wenn die Karte gedragt wird, setzt du diese Variable auf false.
Beim loslassen checkst du ja die Entfernung zu einem "Magnet-Punkt" und rastest die Karte dort ggf. ein. Dann setzt du die Var snapped auf true.

Später brauchst du dann nur noch abzufragen, ob eine Karte snapped true oder false hat...

Grüße
Sascha
__________________
12:15, press return
ludabruda 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 02:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele