| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
| targetfelder auswerten
hi, ich habe der mc´s (chip_1, chip_2, chip_3), die auf drei target-felder verteilte werden sollen. die chips haben unterschiedlichen längen (100, 130, 165). wenn jetzt die chips auf die felder gezogen worden sind, soll eine auswertung gemacht werden (buttonklick), ob sie auch alle richig verteilt wurden. entsprechend erscheint dann ein grüner rand bzw. ein roter um die felder. der rote rand soll sich nun in der länge skalieren, abhängig welcher von den chip´s auf dem targetfeld liegt. leider wird die variable (_global["laenge_"+this]) für den roten rand immer nur einmal gesetzt und übernimmt diese skalierung dann für "alle" roten ränder. Erklärung zum script: hier wird dem target-feld mitgeit wie lange der chip ist *chip_1 ---> 100: _global["laenge_"+this] = "1"; *chip_2 ---> 130: _global["laenge_"+this] = "2"; *chip_3 ---> 165: _global["laenge_"+this] = "3"; chip_2: --------- on (release) { stopDrag(); //-->Anfang //Abfrage wenn ein hitTest mit einem target-Feld stattfindet for (i = 1; i <=10; i++) { if (this.hitTest(_root["target_"+i].magnet)) { _global["laenge_"+this] = "2";//*siehe Erklärung zum script _x = _parent["target_"+i]._x; _y = _parent["target_"+i]._y; this.grau._visible = 1; break; } }//Ende for-Schleife target-feld: ------------ onClipEvent (enterFrame) { if (this.hitTest(_root.chip_2)){ _root.gruen_2._visible = 1; }else { for (i=1; i<=3; i++){ if (_global["laenge_"+i] == "1"){ _root.rot_2._xscale = 100; }else if (_global["laenge_"+i] == "2"){ _root.rot_2._xscale= 130; }else if (_global["laenge_"+i] == "3"){ _root.rot_2._xscale= 165; }else { _root.rot_2._xscale= 165; } } _root.rot_2._visible = 1; //trace ("target_2: "+_global["laenge_"+i]); } } gruss sven |
| | |
| | #2 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
|
hi, habe mal zum besseren verständnis einen kleinen dummy gebastelt. lego.zip liegt unter: http://www.castra.de/download.htm gruss sven |
| | |
| | #3 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
|
hi, bin die ganze sache mal angegangen und habe eigentlich "fast" alles gelöst. leider habe ich jetzt zum schluss noch ein fehler. wenn der user versucht ein feld doppelt zu besetzen, kommt eine fehlermeldung und der chip wird an seine ausgangsposition gesetzt. das klappt. wenn aber nun, diese ausganspos. ein targetfeld war, wird der chip zwar darauf gesetzt, aber, nach einem button-weiter-klick, wird der rote rand nicht mehr abhängig von dem chip skaliert dafür aber das targetfeld mit der hittest stattfand. habe mal zwei verisonen gebastelt. bei lego_dummy_xx habe ich besetzt = 1 zugewiesen. das haut aber gar nicht hin....? lego.zip liegt unter: http://www.castra.de/download.htm gruss sven |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Aug 2001 Ort: Austria/Vienna
Beiträge: 225
|
Speichere doch einfach in einer Variable auf den Targets das richtige element (target.rightElement) und vergleiche es mit dem das drauf liegt (target.occupiedBy). in etwa so ActionScript:
lg tf |
| | |
| | #5 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
|
hi, denke habe nun eine halbwegs akzeptable lösung gefunden. danke nochmals an nemo für die sinnvolle idee, nicht wie in meiner ersten version die targets, sondern die chips zu high-lighten (rot-/grün). die nun funztende aktuelle lego.zip liegt unter: http://www.castra.de/download.htm noch eine frage am rande. auf meinem auswerten-button liegt folgendes script: wie kann ich dieses lange elend "kürzer" schreiben? on (release) { if (_global.pos_1 != 1){ _root.chip_1.rot._visible = 1; } if (_global.pos_2 != 1){ _root.chip_2.rot._visible = 1; } if (_global.pos_3 != 1){ _root.chip_3.rot._visible = 1; } if (_global.pos_4 != 1){ _root.chip_4.rot._visible = 1; } if (_global.pos_5 != 1){ _root.chip_5.rot._visible = 1; } if (_global.pos_6 != 1){ _root.chip_6.rot._visible = 1; } gotoAndStop(2); } gruss sven |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |