Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-01-2006, 08:59   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
Sekundenzähler ok. aber will nicht den hitTest

Hallo Leutz

Hab was versucht. Läuft eigentlich fast alles. Hat nur
einen kleinen Fehler und ich weiss nicht, wie ich
dies bewerkstelligen kann. Habe diverses versucht,
doch richtig wird das Ganze nicht.

Worum gehts. (Habe eine .fla beigelegt.)
Ich habe einen Sekundenzähler gebastelt und bei
Klick auf einen MC beginnt dieser zu laufen. Wunderbar soweit.
Nun wollte ich, wenn jemand einen MC auf einen Bereich zieht,
die Uhr angehalten wird. Klappt auch, nur möchte ich (wäre besser)
die Uhr erst stoppen, wennn hitTest erfüllt und der User
die Maustaste auf dem Bereich loslässt.

Und da stehe ich total an. Kann mir jemand behilflich sein?

Hier der Code und auch die .fla

Code:
 stop();
 
 // sekunden
 starten.onRelease = function() {
	 id = setInterval(zahl, 1000);
 var akkZeit = 0;
 function zahl(){
 akkZeit++;
 _root.ausgabe.text = akkZeit + " " + "Sekunden";
 }
 zahl();
 }
 
 k1.onPress = function() {
	 startDrag(k1,false);
 }
 
 k1.onRelease = function() {
	 stopDrag();
	 
 }
 

 // hier sollte doch noch was rein????????
 onEnterFrame = function() {
	if (_root.k1.hitTest(_root.b1)) {
		clearInterval(id);
	}
}

Danke schon mal

//flashversuch
Angehängte Dateien
Dateityp: zip sekunden.zip (6,1 KB, 6x aufgerufen)
flashversuch ist offline   Mit Zitat antworten
Alt 13-01-2006, 11:38   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wozu der onEnterFrame-Event, wenn du schon eine setInterval-Schleife am Laufen hast? Ist irgendwie "doppeltgemoppelt"...

Du kannst nach dem stopDrag doch auch überprüfen, wo du gelandet bist, z.B. mit der _dropTarget-Eigenschaft oder einer Überprüfung der Zielkoordinaten.

Oder soll ständig überprüft werden, ob der Mauszeiger über dem Objekt steht?
  Mit Zitat antworten
Alt 13-01-2006, 12:19   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
wozu der onEnterFrame?
Tja, weiss eigentlich auch nicht. Hat gefunzelt. Aber hast schon recht, ist doppelt gemoppelt. Aus Fehlern und mit Flashforum lernt man....

Jetzt klappts: Das ist der Code...

DANKE SEHR

Code:
 stop();
 
 // sekunden
 starten.onRelease = function() {
	 id = setInterval(zahl, 1000);
 var akkZeit = 0;
 function zahl(){
 akkZeit++;
 _root.ausgabe.text = akkZeit + " " + "Sekunden";
 }
 zahl();
 }
 
 k1.onPress = function() {
	 startDrag(k1,false);
 }
 
 k1.onRelease = function() {
	 stopDrag();
	 		if(_root.k1.hitTest(_root.b1))
					clearInterval(id);


 }
// ein flashversuch
flashversuch ist offline   Mit Zitat antworten
Alt 16-01-2006, 13:13   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
Leider muss ich dieses Thema nochmals aufgreifen.
Mit dem _dropTarget blick ich nicht durch....
Wollte dann das mit den Ziel-Koordinaten überprüfen...

aber da komme ich auch nicht weiter....

Könnte mir bitte jemand mal in die Fla gucken
und Codemässig mal hantieren? Wäre mega lieb...

Erläuterung zu Fla
- Klick auf Grün startet die Sekungenanzeige
- rechtes Rot auf linkes rot (Drag)
- rechtes Blau auf linkes blau (Drag)
- erst wenn beide Objekte mit den neuen x-Koordinaten
aufeinander liegen, soll die Zeit gestoppt werden...

Jetzt ist es so, dass die Objekte zwar auf die richtige
Position springen, aber die Zeit nicht gestoppt wird.
Ich habe mit meinem Wissen alles versucht, habe
dann noch so eine Schleife eingebaut..... nutzte alles nichts

Ziel wäre, wenn der User den letzten MC auf dem
Bereich loslässt, die Zeit gestoppt wird.... Ich muss
doch irgendwie dauernd abfragen, ob die MC nun
auf den gewünschten Koordinaten liegen....

Anbei die Fla.... Danke Euch

Völlig am Berg stehend
// flashversuch...
Angehängte Dateien
Dateityp: zip sekunden2.zip (6,8 KB, 1x aufgerufen)
flashversuch ist offline   Mit Zitat antworten
Alt 16-01-2006, 13:26   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Exclamation

Tag!
Ist doch ganz einfach:
PHP-Code:
stop();
var 
count 0;
// positionen
k1._x 300;
k1._y 250;
k2._x 300;
k2._y 290;
b1._x 150;
b1._y 250;
b2._x 150;
b2._y 290;
// sekunden
starten.onRelease = function() {
    
id setInterval(zahl1000);
    var 
akkZeit 0;
    function 
zahl() {
        
akkZeit++;
        
_root.ausgabe.text akkZeit+" "+"Sekunden";
    }
    
zahl();
};
k1.onPress = function() {
    
startDrag(k1);
};
k1.onRelease = function() {
    if (
_root.k1.hitTest(_root.b1)) {
        
delete _root.k1.onPress;
        
delete _root.k1.onRelease;
        
k1._x 150;
        
stopDrag();
        if (++
count == 2) {
            
clearInterval(id);
        }
    }
};
k2.onPress = function() {
    
startDrag(k2);
};
k2.onRelease = function() {
    if (
_root.k2.hitTest(_root.b2)) {
        
delete _root.k2.onPress;
        
delete _root.k2.onRelease;
        
k2._x 150;
        
k2._y 290;
        
stopDrag();
        if (++
count == 2) {
            
clearInterval(id);
        }
    }
}; 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 16-01-2006, 13:43   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
@der Frager

... ist doch ganz einfach

???

Glaub ich Dir, wenn man weiss wie...
Bin eben in der Lernphase und von der einen
Lösung gehst zum nächsten Problem

Hab mal Deinen Code genommen und versucht...
Muss ich da noch was anpassen???

Fehlermeldung im Fla

**Fehler** Szene=Szene 1, Ebene=Ebene 3, Bild=1:Zeile 2: Bezeichner erwartet
var*count*=*0;

Anzahl der ActionScript-Fehler: 1 Gemeldete Fehler: 1


Verstehe ich das jetzt richtig.
Da ist eine Varbiable (count). Durch ziehen der
MC und loslassen auf dem Bereich, geht die var count 1 höher.
Ist var count 2 dann stoppts die Zeit?


... und sehe da viele hitTest
Ich möchte ja nicht wenn hitTest erfüllt, dass
die Zeit gestoppt wird, sondern, wenn hitTest erfüllt
und die Maustaste losgelassen wird, dass erst
dann die Zeit gestoppt wird...


// flashversuch

Geändert von flashversuch (16-01-2006 um 13:45 Uhr)
flashversuch ist offline   Mit Zitat antworten
Alt 16-01-2006, 13:48   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...da muss nix angepasst werden. Vielleicht ist beim Kopieren was schief gelaufen. Und die Zeit wird erst dann gestoppt, wenn beide hitTest-Abfragen erfüllt sind.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 16-01-2006, 13:54   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
Komisch....
Habs einige Male kopiert und eingefügt.
Komisch ist auch, dass z.B. die Koordinaten
(das ._x und das ._y bei mir nicht hervorgehoben werden)

Darf ich Dich noch fragen, Frager
ich möchte ja nicht, wenn beide hitTest erfüllt, dass
dann die Zeit angehalten wird, ich versuche,
wenn beide hitTest erfüllt UND DIE MAUSTASTE
losgelassen wird (beim letzten MC), dass erst dann die Zeit gestoppt
wird....

Könntest Du mir nicht bitte eine Fla machen wo ich
weiter hantieren kann?

Fragen über Fragen

Danke Dir....
// flashversuch...
flashversuch ist offline   Mit Zitat antworten
Alt 16-01-2006, 14:01   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Da der hitTest im Release steht, ist doch alles so, wie's sein soll???
Angehängte Dateien
Dateityp: rar sekunden.rar (8,1 KB, 3x aufgerufen)
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 16-01-2006, 14:09   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
Danke Dir Frager.
Jetzt funzelt es? Ist alles so wie es soll,
nur hab ich jetzt noch eine Verständnisfrage

da ist die variable "count", diese wird um 1 erhöht,
sobald hitTest erfüllt und Maustaste losgelassen wird.

Sobald die 2 MC's aufeinander liegen ist
var count = 2 und deshalb stoppts?

Möchte dies einfach wissen, damit der Code
für mich (Anfänger) verständlich ist. Weil nur
kopieren ist ja auch nicht so das wahre

Auf jeden Fall ein grosses DANKE und echt,
ist mega von Dir. Hast mir echt geholfen


// flashversuch
flashversuch ist offline   Mit Zitat antworten
Alt 16-01-2006, 14:11   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Kein Thema . Ist so, wie du es sagst:
PHP-Code:
if (++count == 2) {//wenn count++ (also count + 1) 2 ist 
            
clearInterval(id); //Intervall löschen und somit Uhr anhalten
        

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 16-01-2006, 14:24   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
Danke Dir...

Versuche das Teil nun auszuweiten auf ca 30 MC's....
Von der Lösung zum nächsten Problem? Hoffe nicht.

THX a lot

// flashversuch
flashversuch ist offline   Mit Zitat antworten
Alt 16-01-2006, 14:28   #13 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nur mal so als Tipp: Bei 30 MCs solltest du mit einer Schleife arbeiten und die Positionen in einem Array speichern.

Viel Erfolg...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 16-01-2006, 14:35   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 126
Oh mann, s***...

Schleife ? Ja kalt ists draussen schon
Array? Auch schon gehört.

Wie ich das handhabe? Keine Ahnung....
Von der einen Lösung zum nächsten Problem


// flashversuch
flashversuch 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 06:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele