Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-09-2003, 13:23   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: basel
Beiträge: 151
Question dauerfeuer verbieten

ich habe einen button, mit dem erlaube ich dem benutzer sozusagen zu schiessen. ich möchte aber, dass der benutzer nicht dauerfeuer machen kann, sonder nur alle paar sekunden einen schuss abgeben darf. wie könnte ich das simple steuern? sozusagen eine kleine pause einbauen, dass der button eine sekunde nicht schiesst?
marcepan ist offline   Mit Zitat antworten
Alt 03-09-2003, 13:27   #2 (permalink)
i++
snafu
 
Benutzerbild von i++
 
Registriert seit: Feb 2003
Ort: 5 feet over ground
Beiträge: 214
hi marcepan,

so würde es gehen.
ActionScript:
  1. on(release){
  2.   if(getTimer() - lastClick > 1000){
  3. lastClick = getTimer();
  4. // hier die weiteren aktionen rein
  5. }
  6. }

i++
i++ ist offline   Mit Zitat antworten
Alt 03-09-2003, 13:28   #3 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
@ i++ :
Ich check dein Script nicht ganz.
Dass getTimer - lastClick > 100 ist, kommt doch gar nie vor, da lastClick es dann noch gar nicht gibt

Geändert von MacEvil (03-09-2003 um 13:34 Uhr)
MacEvil ist offline   Mit Zitat antworten
Alt 03-09-2003, 14:20   #4 (permalink)
Mit ohne "F"
 
Benutzerbild von slashmaster
 
Registriert seit: Nov 2002
Ort: Dresden
Beiträge: 1.051
würde ja ansich heißen.. da

lastClick = getTimer()


ActionScript:
  1. on(release){
  2.         if(getTimer() - getTimer > 1000){
  3.                 // hier die weiteren aktionen rein
  4.         }
  5. }

`??????`

absicht??
__________________
Gruß Markus!

ActionScript:
  1. /*Kreativität entsteht durch
  2. Bewegung, Zerlegung alter Regeln
  3. und neuen Überlegungen*/
slashmaster ist offline   Mit Zitat antworten
Alt 03-09-2003, 14:36   #5 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
@MacEvil & slashmaster:
Na ja Kritik ist ja schön und gut aber ne Lösung anschließend dranzuhängen währe natürlich besser

@marcepan:
Im Grund muss du [i++] Ansatz nur durch eine Abfrage !lastClick erweitern und dann funzt es:

ActionScript:
  1. // this.fire_btn ist die Schaltflächen-Instanz zum Feuern
  2. this.fire_btn.onPress = function () {
  3. // der Wert 1000 enspricht eine Sekunde und genau so lange muss gewartet werden bis der nächste Schuß erlaubt ist ....
  4.     if(getTimer()-lastClick>1000 || !lastClick){
  5.             lastClick = getTimer();
  6.             trace("attacke....");
  7.             // hier die weiteren aktionen rein
  8.     }
  9. }

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 03-09-2003, 15:24   #6 (permalink)
i++
snafu
 
Benutzerbild von i++
 
Registriert seit: Feb 2003
Ort: 5 feet over ground
Beiträge: 214
hi@all,

also mein erster ansatz funktioniert doch einwandfrei

ActionScript:
  1. on(release){
  2.         if(getTimer() - lastClick > 1000){
  3.                 lastClick = getTimer();
  4.                 // hier die weiteren aktionen rein
  5.         }
  6. }

auch ein !lastClick tut hier nicht not, da zwar beim ersten click lastClick = undefined ist, aber getTimer() - undefined = getTimer() ist. sollte der film also schon über einer sekunde laufen - was sehr wahrscheinlich ist durch preloaden, aufbau des grafischen interfaces,... - ist getTimer() - lastClick > 1000 = true und lastClick wird gesetzt.



i++
i++ ist offline   Mit Zitat antworten
Alt 03-09-2003, 15:29   #7 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
Ich erhalte bei:
ActionScript:
  1. trace(getTimer()-lastTimer);
NaN

und bei
ActionScript:
  1. trace(getTimer()-lastTimer>1000);
undefined...

Seltsam das du da ein "funktionierendes" Ergenis bekommst - wenn doch ist das um so schöner - wenn auch unlogisch ("unsauber");

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 03-09-2003, 15:40   #8 (permalink)
i++
snafu
 
Benutzerbild von i++
 
Registriert seit: Feb 2003
Ort: 5 feet over ground
Beiträge: 214
hm,

komische sache

ActionScript:
  1. on (release) {
  2.     trace("getTimer() - lastClick = " + (getTimer() - lastClick));
  3.     trace("(getTimer() - lastClick > 5000) = " + (getTimer() - lastClick > 5000));
  4.     if (getTimer() - lastClick > 5000) {
  5.         lastClick = getTimer();
  6.         // hier die weiteren aktionen rein
  7.     }
  8. }

Ausgabe:

getTimer() - lastClick = 1156
(getTimer() - lastClick > 5000) = false

getTimer() - lastClick = 1924
(getTimer() - lastClick > 5000) = false

getTimer() - lastClick = 2756
(getTimer() - lastClick > 5000) = false

getTimer() - lastClick = 3692
(getTimer() - lastClick > 5000) = false

getTimer() - lastClick = 4876
(getTimer() - lastClick > 5000) = false

getTimer() - lastClick = 5868
(getTimer() - lastClick > 5000) = true

getTimer() - lastClick = 1040
(getTimer() - lastClick > 5000) = false

getTimer() - lastClick = 2096
(getTimer() - lastClick > 5000) = false



bei mir wird weder NaN, noch undefined getraced

i++
i++ ist offline   Mit Zitat antworten
Alt 03-09-2003, 15:49   #9 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
Das mag daran liegen das ich das schnell mit einer anderen Flash Version getestet habe...

Das zeigt aber, dass AS vielleicht in eine Richtung geht wo man mehr auf solche Kleinigkeiten achten muss und wo ein "sauberer" Code wichtiger wird. Was aber nicht bedeutet, dass es unter MX nicht läuft - wie du bewiesen hast

Also wird es ab jetzt Philosophisch....

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 03-09-2003, 15:56   #10 (permalink)
i++
snafu
 
Benutzerbild von i++
 
Registriert seit: Feb 2003
Ort: 5 feet over ground
Beiträge: 214
oh stimmt.
geht nur noch unter mx.
da ist doch an mehreren stellen ein umdenken angesagt, aber das hält ja das hirn wach

aber sauberer ist es ohnehin ein variable erst zu setzen.

i++

Geändert von i++ (03-09-2003 um 15:57 Uhr)
i++ ist offline   Mit Zitat antworten
Alt 03-09-2003, 16:04   #11 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: basel
Beiträge: 151
Thumbs up vielen dank an alle.

es klappt wunderbar.
marcepan ist offline   Mit Zitat antworten
Alt 04-09-2003, 08:51   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: basel
Beiträge: 151
Question pause brechen

sagen wir mal, dass es in einem fall mal vorkommen soll, so eine pause durch eine andere aktion zu durchbrechen, sprich sie wieder vorzeitig zu beenden, um einen einzelnen neuen klick wieder zu erlauben? die pause darf dann aber wieder ganz normal sein so wie vorher??? geht das?
marcepan ist offline   Mit Zitat antworten
Alt 04-09-2003, 10:49   #13 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
den Wert 1000 nicht als Zahl verwenden sondern als Parameterwert und sobald du die Pasuse nicht mehr brauchst muss du den Parameter nur modifizieren und fertig...

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek 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 03:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele