Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-09-2006, 11:18   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Karlsruhe
Beiträge: 89
Doppelte Verneinung (Logik)

Hallo,
ich habe ein kleines Problem. In folgendem Code steckt ein kleiner Logikfehler der mit negativer Verneinung zu tun hat- Glaube ich jedenfalls.

Code:
stop();
// Variablen:
_global.AutomaticStatus = true; // Prüfvariable für automatische Filmsteuerung
/* Pause ------------------------------ */
// Automatic
function follow(NextScene){
	gotoAndStop(NextScene);
	clearInterval(intervalId); 
}
// Manuell
function follow2(mc){
	mc.play(1);
	clearInterval(intervalId); 
}
/* ------------------------------------ */
function Control(CurScene, NextScene, mc){
	if(AutomaticStatus){
		mc.stop();
		intervalId = setInterval(this, "follow", 3000, NextScene); //3000 MS Pause
	}else{
		mc.stop();
		intervalId = setInterval(this, "follow2", 3000, mc); //3000 MS Pause
	}
}
listener = new Object();
listener.click = function(){
	if(AutomaticStatus){
			AutomaticStatus = false;
			checkBox.selected = false;
	}else{
			AutomaticStatus = true;
			checkBox.selected = true;
	}
}
// Checkbox
checkBox.addEventListener("click",listener);

this.onMouseDown = function()
{
		AutomaticStatus = false;
		checkBox.selected = false;
}
Problem ist, dass sich die Checkbox nicht mehr deaktivieren lässt mit
einem Klick auf die Checkbox selbst. Hat jemand eine Idee?
Jo3000 ist offline   Mit Zitat antworten
Alt 22-09-2006, 11:20   #2 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
wozu brauchst du denn noch onMouseDown
wenn die checkbox ehe einen klick-Listener hat?

?
pwd
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Alt 22-09-2006, 12:09   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Karlsruhe
Beiträge: 89
die Checkbox soll auch dann deaktiviert werden, wenn der Benutzer irgendwo im Film clickt.
Jo3000 ist offline   Mit Zitat antworten
Alt 22-09-2006, 12:20   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Die Maus feuert ja die events.
Da du einen mouseListener hast und einen checkboxListener, bekommen also alle 2 Kandidaten die Nachricht.
Aber der MouseListener als erstes!
Somit setzt er immer deinen status auf false.
Dann bekommt dein checkboxListener die Nachricht und prüft was für einen status die Variable "AutomaticStatus" hat (dank dem MouseListener ist sie auf false gesetzt) und handelt dem entsprechend.

edit:
Einfachste Lösung wäre doch wenn die checkbox angeklickt wird sie selected zu setzen und wenn der mouseListener aufgerufen wird sie auf nicht selected zu setzen. Oder?
__________________
ERROR: Signature is too large

Geändert von rendner[i] (22-09-2006 um 12:33 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 22-09-2006, 12:37   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Karlsruhe
Beiträge: 89
Im Prinzip richtig, allerdings könnte es ja auch sein das der Benutzer versucht den Automatikmodus nur über die Checkbox zu steuern.

Das ganze soll als Steuerung innerhalb einer Präsentation dienen. Der Benutzer soll zwischen manuellem und Automatikodus wählen können
(über die Checkbox). Außerdem soll bei einem Klick (egal wo im Film)
der Automatikmodus deaktiviert werden...

Geändert von Jo3000 (22-09-2006 um 12:39 Uhr)
Jo3000 ist offline   Mit Zitat antworten
Alt 22-09-2006, 13:01   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Mach's doch mit MouseUp() und dann halt noch den Status der CheckBox überprüfen. So ungefähr:
PHP-Code:
listener = new Object();
listener.click = function(obj) {
    
trace("Automatikmodus ist "+obj.target.selected);
};
checkBox.addEventListener("click"listener);
this.onMouseUp = function() {
    
temp checkBox.selected;
    
this.onEnterFrame = function() {
        
delete this.onEnterFrame;
        if (
checkBox.selected == temp) {
            
checkBox.selected false;
            
trace("Automatikmodus ist "+checkBox.selected);
        }
    };
}; 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 22-09-2006, 14:55   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Karlsruhe
Beiträge: 89
Das ist gut. Vielen Dank!
Jo3000 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:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele