Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-08-2005, 09:57   #1 (permalink)
Neuer User
 
Benutzerbild von DeepBlue
 
Registriert seit: Jun 2005
Ort: Emden
Beiträge: 12
rollOver und Checkboxen

Hio alle

Mein erster Post hier und ich habe ein Problem an dem ich gerade absolut verzweifel. Ich arbeite noch nicht allzulange mit Flash und ActionScript, arbeite allerdings gerade an einem größeren Projekt mit.

Mein Problem sieht folgendermaßen aus:
Ich habe 10 Checkboxen auf einem Bestellformular und wenn man mit der Maus über diese Checkboxen fährt, soll ein kleines Bild des Produkts eingeblendet werden. Ich habe das nun so gelöst, dass ich die kleinen Bilder in einen MC gepackt habe und zu jeder Checkbox folgenden AS Code geschrieben haben:

on(rollOver)
{
attachMovie("mc_schutz_klar", "mc_schutz_klar",0);
mc_schutz_klar._x = 220;
mc_schutz_klar._y = 51;
}
on(rollOut)
{
mc_schutz_klar.removeMovieClip()
}

Das irre an der Sache ist, dass die nur bei den letzten 7 der 10 Checkboxen funktionieren und die ersten 3 sich weigern, das Bild zu zeigen Wenn ich einer der ersten drei Checkboxen einen MC der unteren zuweise, so zeigt er auch diese. Soll er jedoch seinen MC zeigen weigert er sich wieder.
Komischerweise, kann ich die MCs der funktionierenden Checkboxen sogar löschen und der zeigt die weiterhin an ?!?
Irgendwie habe ich keine Ahnung was ich noch machen soll. liegt das vllt an bestimmten Eigenschaften von attachMovie(), die ich net kenne ?

Wäre klasse wenn mir jmd helfen könnte.

mfg DeeP
DeepBlue ist offline   Mit Zitat antworten
Alt 04-08-2005, 11:48   #2 (permalink)
Co&Bold
 
Benutzerbild von Cysign
 
Registriert seit: Nov 2004
Ort: Troisdorf (bei Köln)
Beiträge: 170
poste vielleicht mal mehr AS oder die fla, dann kann man sehn, ob es evtl. wo anders dran liegt
__________________
Friede!
Cysign ist offline   Mit Zitat antworten
Alt 04-08-2005, 11:57   #3 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
aloha!

generell:

ACTIONSCRIPT IMMER IN DIE HAUPTZEITLEISTE DES FILMES SCHREIBEN!!!!!!!!!!!!

ist übersichtlicher und strukturierter;
stell dir mal vor, du hast 20-30 mc's auf der bühne und alle haben as drauf; da suchst du dir einen wolf..............
also das in die hauptzeitleiste:
ActionScript:
  1. var checkRollover = [["checkbox1_mc", "bild1"], ["checkbox2_mc", "bild2"], ["checkbox3_mc", "bild3"]];
  2. MovieClip.prototype.checkInfo = function(bildname) {
  3.     this.onRollOver = function() {
  4.         _root.attachMovie(bildname, "bildname_mc", 50, {_x:this._x, _y:this._y-100});
  5.     };
  6.     this.onRollOut = function() {
  7.         bildname_mc.removeMovieClip();
  8.     };
  9. };
  10. for (i=0; i<checkRollover.length; i++) {
  11.     var a = checkRollover[i];
  12.     var clip = a[0];
  13.     var bild = a[1];
  14.     _root[clip].checkInfo(bild);
  15.    
  16. }
ich habe es mal mit 3 checkboxes gemacht;
erstens ein array schreiben:in dieses array schreibst du 10 arrays mit instanznamen des checkbox-mc's und mit verknüpfungsnamen;
dann schreibst du eine prototype funktion für das rollOver,RollOut, und später onPress(?);
attachMovie erhält so, wie ich das geschrieben habe, gleich die koordinaten mit;
in der forschleife wertest du dann den inhalt aus und rufst die funktion auf:
ActionScript:
  1. //schleifen beginnt man am besten immer bei null, ein array beginnt auch immer bei null;
  2. // also: i= null, i ist kleiner als die arrayanzahl im hauptarray;
  3. // var a = der bezeichner zum auslesen der internen arrays;
  4. // var clip = der erste inhalt im jeweiligen internen array;
  5. // var bild = der zweite inhalt im jeweiligen array;
  6. // in der zweiten schleife, die sich in der erstenschleife befindet( sons wirken die variablennamen nimmer) wird dann mit den ausgelesenen array-inhalten die prototype funktion aufgerufen;
  7. for (i=0; i<checkRollover.length; i++) {
  8.     var a = checkRollover[i];
  9.     var clip = a[0];
  10.     var bild = a[1];
  11.     for (l=0; l<4; l++) {
  12.         _root[clip].checkInfo(bild);
  13.     }
  14. }
by the way: eventuell sind die ersten drei bilder "progressiv" abgespeichert? das mag flash nicht;
Angehängte Dateien
Dateityp: rar array_prototype_rollover.rar (4,3 KB, 9x aufgerufen)
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (04-08-2005 um 20:33 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 04-08-2005, 13:29   #4 (permalink)
Neuer User
 
Benutzerbild von DeepBlue
 
Registriert seit: Jun 2005
Ort: Emden
Beiträge: 12
Hio

Riesen Dankeschön erstmal für die Antwort. Habe das soweit umgebastelt, dass es mit dem prototype läuft. Hast natürlich recht; es ist wesentlich übersichtlicher, aber wie bereits erwähnt, arbeite ich noch nicht solange mit AS und da war die andere Lösung naheliegender

Leider hat das ganze mein Problem dennoch nicht behoben, die ersten 3 Checkboxen weigern sich weiterhin zu funktionieren.
Es ist auch egal welches Bild ich bei ihnen anzeigen lassen möchte, sie zeigen nur die bereits angelegten 7 MCs an, die von den anderen auch gezeigt werden. Mit jeden weiteren MC, den ich neu anlege funktioniert das ganze nicht :/ Mein AS sieht nu folgendermaßen aus:
ActionScript:
  1. MovieClip.prototype.checkInfo = function(bildname)
  2. {
  3.     this.onRollOver = function()
  4.     {
  5.         attachMovie(bildname, "bildname_mc", 50, {_x:this._x+220, _y:this._y+51});
  6.     };
  7.     this.onRollOut = function()
  8.     {
  9.         bildname_mc.removeMovieClip();
  10.     };
  11.     this.onPress = function(eventObj)
  12.     {
  13.         var sourcename = this._name;
  14.         var btn_name = "mc_z_"+sourcename;
  15.         if ( !this.selected )
  16.         {
  17.             _root.zubehoer_rein(sourcename);
  18.         }
  19.         else
  20.         {
  21.             _root.zubehoer_aus_bestellliste(btn_name);
  22.         }
  23.     }
  24. };
  25.  
  26. var checkRollover = [["klar", "mc_schutz_klar"],
  27.                      ["weiss", "mc_schutz_weiss"],
  28.                      ["gruen", "mc_schutz_gruen"],
  29.                      ["schutzgitter", "mc_schutzgitter"],
  30.                      ["schutzplatte", "mc_schutzplatte"],
  31.                      ["fusskissen", "mc_fusskissen"],
  32.                      ["nadeltisch", "mc_nadeltisch"],
  33.                      ["teaktisch", "mc_teaktisch"],
  34.                      ["rollen", "mc_rollen"],
  35.                      ["rollwagen", "mc_rollwagen"]];
  36.  
  37. for (i=0; i < checkRollover.length; i++)
  38. {
  39.     var a = checkRollover[i];
  40.     var clip = a[0];
  41.     var bild = a[1];
  42.     for (l=0; l<4; l++) {
  43.         _root.druckvorschau_bestellung[clip].checkInfo(bild);
  44.     }
  45. }

Glaube somit nicht, dass ess an den Bildern direkt liegt :/

mfg DeeP

Geändert von DeepBlue (04-08-2005 um 13:41 Uhr)
DeepBlue ist offline   Mit Zitat antworten
Alt 04-08-2005, 14:33   #5 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
kannst du bitte mal die .fla hochladen?!?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 04-08-2005, 14:38   #6 (permalink)
Neuer User
 
Benutzerbild von DeepBlue
 
Registriert seit: Jun 2005
Ort: Emden
Beiträge: 12
Würd ich gerne, darf ich aber wohl nicht Außerdem ist die ganze fla Datei über 6 MB groß ...
DeepBlue ist offline   Mit Zitat antworten
Alt 04-08-2005, 18:14   #7 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
schau, des geht doch recht einfach:

du machst ne neue fla auf, kopierst die checkoboxes und das nötige script, fügst die bilder(oder andere 10 bilder(geheimhaltung!!!!!!!pst..... :-) ) )bei und ladest das dann hoch;

hier wollen alle helfen, aber der patient muss a bisserle mitmachen;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 04-08-2005, 18:44   #8 (permalink)
Neuer User
 
Benutzerbild von DeepBlue
 
Registriert seit: Jun 2005
Ort: Emden
Beiträge: 12
Hehe, alles klar Chef
Hab ich jetzt mal gemacht und zu meinem großen Verblüffen funktioniert es jetzt gar nicht mehr :/ Hoffe mal, dass ich nichts vergessen habe. Den onPress Teil habe ich weggelassen, da er ja nicht weiter von Bedeutung ist.

Geändert von DeepBlue (04-08-2005 um 20:07 Uhr)
DeepBlue ist offline   Mit Zitat antworten
Alt 04-08-2005, 20:04   #9 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
ich sehe nicht unseren array-code, ich sehe keine bilder im anhang......

da ist lediglich eine check-box-komponente und ein label.........

desweiteren: komponenten verwenden nur wenige, die mit flash arbeiten;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 04-08-2005, 20:09   #10 (permalink)
Neuer User
 
Benutzerbild von DeepBlue
 
Registriert seit: Jun 2005
Ort: Emden
Beiträge: 12
Oh Gott, ich glaube ich bin schon zu müde. Das war natürlich die falsche Flash Datei.

Hier ist nun die richtige:
http://www.BroodBerets.de/privat/cbrollover.rar
DeepBlue ist offline   Mit Zitat antworten
Alt 04-08-2005, 20:32   #11 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
sodale:

verknüpfungsnamen vergeben bei den mc's in der bibliothek!!!!

ActionScript:
  1. var checkRollover = [["klar", "mc_schutz_klar"], ["weiss", "mc_schutz_weiss"], ["gruen", "mc_schutz_gruen"], ["schutzgitter", "mc_schutzgitter"], ["schutzplatte", "mc_schutzplatte"], ["fusskissen", "mc_fusskissen"], ["nadeltisch", "mc_nadeltisch"], ["teaktisch", "mc_teaktisch"], ["rollen", "mc_rollen"], ["rollwagen", "mc_rollwagen"]];
  2. MovieClip.prototype.checkInfo = function(bildname) {
  3.     this.onRollOver = function() {
  4.         _root.attachMovie(bildname, "bildname_mc", 50, {_x:this._x-200, _y:_root.klar._y});
  5.     };
  6.     this.onRollOut = function() {
  7.         bildname_mc.removeMovieClip();
  8.     };
  9. };
  10. for (i=0; i<checkRollover.length; i++) {
  11.     var a = checkRollover[i];
  12.     var clip = a[0];
  13.     var bild = a[1];
  14.     _root[clip].checkInfo(bild);
  15. }

DOWNLOAD
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 04-08-2005, 21:00   #12 (permalink)
Neuer User
 
Benutzerbild von DeepBlue
 
Registriert seit: Jun 2005
Ort: Emden
Beiträge: 12
Wow, danke danke danke danke ... danke

Da wäre ich alleine nie drauf gekommen. Aber woran lag es eigentlich genau ? Bzw wozu muss man die Verknüpfungen setzen ? Und warum gingen 7 und nur die 3 nicht ? Sorry, aber ich verdammt neugierig.

Trotzdem nochmal riesengroßes Dankeschön für die Hilfe !
DeepBlue ist offline   Mit Zitat antworten
Alt 04-08-2005, 21:14   #13 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Zitat:
Zitat von DeepBlue
Wow, danke danke danke danke ... danke

Da wäre ich alleine nie drauf gekommen. Aber woran lag es eigentlich genau ? Bzw wozu muss man die Verknüpfungen setzen ? Und warum gingen 7 und nur die 3 nicht ? Sorry, aber ich verdammt neugierig.

Trotzdem nochmal riesengroßes Dankeschön für die Hilfe !
wenn ich neue dinge in flash probiere, zb attachMovie, dann mach' ich das so:

ich schreibe "attachMovie" in das actionscriptfeld, gehe mit dem cursor in das wort und klicke die "F1"-Taste, dann öffnet sich die flashhilfe und es steht eine menge drüber drin;flash ist halt so gemacht, dass man zb, wenn man clips attachen möchte, einen verknüpfungsnamen vergeben muss;

warum das überhaupt bei den 7 anderen checkboxes funktioniert hat, weiß ich nicht....
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 04-08-2005, 22:02   #14 (permalink)
Neuer User
 
Benutzerbild von DeepBlue
 
Registriert seit: Jun 2005
Ort: Emden
Beiträge: 12
Hehe, danke nochmal. Ich muss scheinbar noch einiges lernen Aber es ist moment auch echt schwierig alles. Bin komplett neu in der Materie und dann steht gleich so ein riesen Berg Actionscript vor mir :/ Das ganze Projekt fasst über 3000 Zeilen ...
Was mich an der Sache jetzt speziell so verzweifeln hat lassen, war der Fakt, dass 7 funktiomnierten und 3 nicht. Das war total unlogisch und ich habe bis jetzt nicht begriffen warum das so war.
Aber nun funktioniert es ja

Viel Dank nochmal
DeepBlue 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:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele