Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-09-2003, 10:32   #1 (permalink)
the matrix has you
 
Registriert seit: Nov 2001
Ort: Psion
Beiträge: 832
nur ein Bild auswählen erlauben: knifflige Logik...

hi leuts,

ich habe 4 bilder in meiner fla. es soll dem user allerdings immer nur möglich sein, eines auszuwählen.

jedes bild liegt in einem mc mit einer unsichtbaren schaltfläche. klickt der user drauf, dann springt flash im mc auf das zweite bild (ausgewählt). die instanzen davon liegen natürlich auf der bühne.

was ich erreichen will: wenn er eines ausgewählt hat, dann soll es nicht mehr möglich sein, ein anderes bild anzuklicken. wenn er das ausgewählte allerdings ein weiteres mal anklickt (flash springt dann im mc wieder auf bild1 [ausgangsposition] zurück), dann soll es wieder möglich sein, eines der vier bilder anzuklicken.

wie kann ich diese funktionalität am besten mit AS verwirklichen? ich denke an boolsche variablen wo ich mit true/false den aktuellen zustand abfrage. aber irgendwie komm ich nicht zu einem ansatz.

bitte um rat

achja nochwas: hinter jedem bild liegt eine variable die gesetzt wird wenn er es ausgewählt hat. diese var schicke ich dann auch an php weiter denn bei jedem bild gibt's was anderes im php-script zu tun. in php frage ich die var von flash dann per if ab. ist diese vorgangsweise so ok od. kann's da zu problemen kommen?
__________________
!NO RISK - NO FUN!

Geändert von neohacker (03-09-2003 um 10:36 Uhr)
neohacker ist offline   Mit Zitat antworten
Alt 03-09-2003, 10:39   #2 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
...

hoffe ist verstänlich ... :-)

if (_root.active == true){
... hier darf ich nicht klicken, es sei denn ....
if (_root.active_name == "diese bild"){
... jetzt darf ich wieder klicken
_root.active =false}
}else{
_root.active_name = "diese bild"
_root.active = true
.... hier darf ich klicken
}

gruß makese
makese ist offline   Mit Zitat antworten
Alt 03-09-2003, 10:43   #3 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
also setze eine Variable am Anfang von deinem Flash:


_root.gewaehltesbild = 0;

Wenn Du auf ein Bild klickst, setzt Du:

aktuellenummer = 1; //oder 2 oder 3 ....

if (_root.geaehltesbild == 0)
{
_root.gewaehltesbild = aktuellenummer ;
//dein Script beim Aufruf.
}


if (_root.geaehltesbild == aktuellenummer)
{
_root.gewaehltesbild = 0;
//dein Script zum verschwinden oder so.
}

Das machst Du für jesed Bild
dburucu ist offline   Mit Zitat antworten
Alt 03-09-2003, 10:44   #4 (permalink)
the matrix has you
 
Registriert seit: Nov 2001
Ort: Psion
Beiträge: 832
@makese:
sorry, aber es ist mir nicht klar wie du das meinst.
du setzt die var _root.active auf true wenn er auf ein bild klickt. wenn er nochmal auf dasselbe bild klickt, ist active wieder false weil ja dann keines ausgewählt ist.
OK, soweit verständlich.

aber die else check ich nix

@dburucu:
was meinst du mit dem scriptaufrufen in deinen if's und wo ist der check, dass immer nur ein bild ausgewählt sein darf?
__________________
!NO RISK - NO FUN!

Geändert von neohacker (03-09-2003 um 10:48 Uhr)
neohacker ist offline   Mit Zitat antworten
Alt 03-09-2003, 10:59   #5 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
also wo dein Script steht, soll der Script hin, den Du gerade hast.

die if's garantieren, daß nur ein Bild gewählt werden kann und ein anderes Bild nicht gewählt werden darf, bevor das gerade gewählte Bild abgewählt wurde.

kannst ja mal dein fla posten
dburucu ist offline   Mit Zitat antworten
Alt 03-09-2003, 11:13   #6 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
if (_root.active == true){
... hier darf ich nicht klicken, es sei denn ....
if (_root.active_name == "diese bild zb 3"){
... jetzt darf ich wieder klicken
_root.active =false}
}else{
_root.active_name = "diese bild zb 3"
_root.active = true
.... hier darf ich klicken
}


wenn kein bild gewählt daher active = flase greift die else sache

active wird true, es ist ein bild gewählt und zwar active_name zb bild 3

wenn man jetzt klickt ist active ja true, der obere bereich des scripte greift es passiert nichts es sei denn der active_name = dieses bild zb 3 dann wird active wieder false und alles beginnt von vorn



-------------------------------------------------
das hier ist natürlich besser ..


_root.gewaehltesbild = 0; // heißt kein bild ausgwählt


buttonscript:
aktuellenummer = 1 // für button1 = 1 , button2 = 2

if (_root.gewaehltesbild == 0){// kein bild gewählt
_root.gewaehltesbild = aktuellenummer ;
//dein Script beim Aufruf.
}


if (_root.gewaehltesbild == aktuellenummer){// auf bild geklickt welches active ist
_root.gewaehltesbild = 0;
//dein Script zum verschwinden oder so.
}

makese

Geändert von makese (03-09-2003 um 11:18 Uhr)
makese ist offline   Mit Zitat antworten
Alt 03-09-2003, 11:20   #7 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hi,
einfach das script was du eh schon auf dem button hast in eine ifabfrage setzen:
ActionScript:
  1. on(press){
  2. if(_root.gewaehltesbild != 1){ //die eins für das entsprechende bild angleichen
  3. _root.gewaehltesbild=1;//    "
  4. //hier deine aktionen rein
  5. }
und das auf jedem bildbutton. das wärs
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 03-09-2003, 11:24   #8 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
...

armer neohacker siehst du den wald vor bäume noch :-) bei so viel info ...


@smirgel:
erfüllt aber nicht neohackers wünsche ... oder versteh ich was falsch

makese

Geändert von makese (03-09-2003 um 11:26 Uhr)
makese ist offline   Mit Zitat antworten
Alt 03-09-2003, 11:40   #9 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hasse räsch
hatte wohl noch den schlafkniest in den augen. aber ich mach mal ein beispiel
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 03-09-2003, 11:47   #10 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
also mein script dafür würde wohl so aussehen:
ActionScript:
  1. on (press) {
  2.     if (!_root.gewaehltesbild or _root.gewaehltesbild==1) { //1 für bild1
  3.         if (!bild) {
  4.             this.gotoAndStop(2);
  5.             _root.gewaehltesbild = 1;//1 für bild1
  6.         } else {
  7.             this.gotoAndStop(1);
  8.             _root.gewaehltesbild = 0;
  9.         }
  10.         bild = !bild;
  11.     }
  12. }
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 03-09-2003, 11:49   #11 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
...

mal ne blöde fragen: bitte keine blöde antwort :-)

wie färbt man den code so schick ein

makese

habs raus ... :-)

ActionScript:
  1. if (a==b){
  2. trace(a+ " sieht so aus wie " +b);
  3. }
makese ist offline   Mit Zitat antworten
Alt 03-09-2003, 11:53   #12 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
PHP-Code:
und damit es auch  dburucu weis und andere die es lesen
des macht man mit:

(as) <- () als [] schreiben.
trace("hier commt der code rein");
(/as) <- () als [] schreiben.

__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 03-09-2003, 12:19   #13 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
ich würde es so machen.wobei die schaltflächen die mc's selber sind.
ActionScript:
  1. MovieClip.prototype.testen=function(){
  2.         this.flag=true
  3.         this.onPress = function() {
  4.             if(this.flag){
  5.                     this.gotoAndStop(2)
  6. for(i=1;i<5;i++){
  7. delete _root["mc"+i].onPress
  8. }
  9. this.testen()
  10.  
  11.                     this.flag = !this.flag
  12.             }else{
  13.                     this.flag = !this.flag
  14.                     this.gotoAndStop(1)
  15.                     for(i=1;i<5;i++){
  16.                     _root["mc"+i].testen()
  17.                     }
  18.                     }
  19.         }
  20. }
  21. mc1.testen()
  22. mc2.testen()
  23. mc3.testen()
  24. mc4.testen()
und _root mit dem pfad ersetzten
__________________
gruß Harry

Geändert von HAY (03-09-2003 um 12:31 Uhr)
HAY ist offline   Mit Zitat antworten
Alt 03-09-2003, 13:16   #14 (permalink)
the matrix has you
 
Registriert seit: Nov 2001
Ort: Psion
Beiträge: 832
danke danke für die vielen guten tipps.
mein feedback:

@HAY
leider bin ich nicht so gut in AS und blicke bei deinem recht komplexen beispiel nicht wirklich durch.

@Makese
was meinst du mit "Das hier ist natürlich besser"??? Deine Version oder die von dburucu??

Bitte nicht böse sein, es liegt an mir und nicht an euch!

@Smirgel
Ich habe dein letztes script jetzt jeweils in den ersten frame von Bild01-04 kopiert (im mc auf den invisible-button) und bei "_root.gewaehltesbild" 1 bis 4 eingesetzt. im zweiten frame vom mc steht nach wie vor
on (release) {
gotoAndStop (1);
}
drinnen.

das problem:
es läßt sich jetzt allerdings nur ein bild auswählen. wenn ich die auswahl zurücknehme (nochmal anklicken) dann kann ich kein anderes bild mehr anklicken.
noch was: beim auswählen muss ich manchmal zwei bis dreimal klicken ehe funtzt. dürfte irgendwie mit der if/else zusammenhängen. kannst du das nochmal checken und mir auch ein bißchen den code bzw. die logik kommentieren damit ich dabei was lerne?!?!
__________________
!NO RISK - NO FUN!

Geändert von neohacker (03-09-2003 um 13:21 Uhr)
neohacker ist offline   Mit Zitat antworten
Alt 03-09-2003, 13:20   #15 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hier haste mal ein kleines anwendungbeispiel.
bei fragen fragen
Angehängte Dateien
Dateityp: zip quaderklicken.zip (2,7 KB, 5x aufgerufen)
__________________
bei fragen, fragen.
Smirgel 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:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele