Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-10-2003, 16:36   #1 (permalink)
Untitled User
 
Registriert seit: Dec 2001
Beiträge: 71
Flash E-Card System (dragging)

Grüß euch!

Ich bastel gerade an einem interaktiven Flash E-Card System d.h. der User kann vordefinierte Symbole (bzw. MovieClips) nach belieben auf einen Hintergrund ziehen und das Ergebnis dann per E-Mail verschicken.

Momentan kann man auf Frame 1 die Symbole auswählen, welche dann per Array.push in ein Array gespeichert werden.
Auf Frame 2 liegt folgender Code:

ActionScript:
  1. // 'items' ist das Array
  2. for (j=0; j<items.length; j++) {
  3.     name = items[j]+j
  4.     _root.attachMovie(items[j], name, j+1);
  5.    
  6.     _root[name].onMouseDown = function() {
  7.        
  8.         if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  9.             this.startDrag(false, 40, 40, 410, 380);
  10.             this.swapDepths(++_root.depth);
  11.         }
  12.     };
  13.    
  14.     _root[name].onMouseUp = function() {
  15.     stopDrag();
  16.         if (this._droptarget == "/papierkorb") {
  17.             _root.dropItem("vogel");
  18.             this.removeMovieClip();
  19.         }
  20.     };
  21.    
  22.     _root[name]._x = (j+1)+100;
  23.     _root[name]._y = (j+1)+100;
  24.     _root[name+"x"] = _root[name]._x
  25.     _root[name+"y"] = _root[name]._y
  26. }

Hier werden also die vorher hinzugefügten Array-Elemente auf _root attached. Nun sollte es aber möglich sein, die Symbole (MovieClips) direkt "auf die Bühne zu ziehen" (also ohne diesen Zwischenschritt auf Frame 1). Man hat also zB. links die verfügbaren Symbole und zieht sie einfach auf die Bühne.

Mein Problem dabei ist, dass ich nicht weiß wie man das am besten anstellt. Also irgendwie müsste man das Symbol klonen und gleich "draggable" machen - hab' aber leider keine Ahnung wie das gehen soll.


Ich hoffe ich hab' mein Problem halbwegs verständlich formuliert und bedanke mich im Voraus für eure Lösungsvorschläge!
__________________
lumi.at
illumitie ist offline   Mit Zitat antworten
Alt 14-10-2003, 20:26   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Mit MovieClip.duplicateMovieClip kannst du eine MovieClip duplizieren.

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 15-10-2003, 07:07   #3 (permalink)
Untitled User
 
Registriert seit: Dec 2001
Beiträge: 71
Hi bokel!

Danke, die Funktion MovieClip.duplicateMovieClip hab' ich doch glatt übersehen

Grüße lumi
__________________
lumi.at
illumitie ist offline   Mit Zitat antworten
Alt 15-10-2003, 09:24   #4 (permalink)
Untitled User
 
Registriert seit: Dec 2001
Beiträge: 71
Array Problem

Okay, das mit dem Duplizieren & Draggen ist nun gelöst, danke nochmals an bokel


Allerdings hat sich nun ein anderes Problemchen aufgetan:
Folgender Code liegt auf einem Button in dem zu duplizierenden MovieClip

ActionScript:
  1. on (press) {
  2.     _root.i += 1;
  3.     if (this._name == "auswahl_vogel") {
  4.         duplicateMovieClip (_root.auswahl_vogel, "buehne_vogel"+_root.i, _root.i);
  5.         _root.items.push("vogel");
  6.         //trace(_root.items);
  7.     }
  8.     startDrag (_root["buehne_vogel"+_root.i], true, 40, 40, 410, 380);
  9.     this.swapDepths(++_root.depth);
  10. }
  11.  
  12. on (release, releaseOutside) {
  13.     if (this._droptarget == "/papierkorb") {
  14.         _root.dropItem("vogel");
  15.         //trace(_root.items);
  16.         this.removeMovieClip();
  17.     }
  18.     stopDrag ();
  19. }
Die Funktion dropItem() schaut folgendermaßen aus:

ActionScript:
  1. function dropItem (item) {
  2.     for (j=0; j<=items.length; j++) {
  3.         if (items[j] == item) {
  4.             fst = items.slice(0, j);
  5.             snd = items.slice(j+1, items.length);
  6.             items = fst.concat(snd);
  7.         }
  8.     }
  9. }
Folgendes Problem nun: Wenn man mehr als 2 MCs dupliziert, funktioniert die Funktion dropItem nicht mehr richtig, sie löscht jeweils ein Array-Element zu viel, d.h. sind 3 Symbole dupliziert worden, ist nur mehr ein entsprechendes Element im Array vorhanden.
Allerdings benötige ich für jedes duplizierte Symbol ein entsprechendes Array-Element um die Position des Elements an mein PHP-Skript weiterzugeben.

Wie ihr wahrscheinlich schon bemerkt habt, bin ich nicht so der Held bzgl. ActionScript, dafür bin ich euch sehr dankbar für eure Hilfe!
__________________
lumi.at
illumitie ist offline   Mit Zitat antworten
Alt 15-10-2003, 14:52   #5 (permalink)
Untitled User
 
Registriert seit: Dec 2001
Beiträge: 71
Langsam bin ich echt fast am Rande des Nervenzusammenbruchs

Im Anhang befindet sich meine derzeitige .fla Datei, ich hoffe jemand erbarmt sich meiner und wirft mal einen kurzen Blick rein. Problembeschreibung einen Post drüber)

Ist der mein Ansatz grundsätzlich falsch, oder ist's nur eine Kleinigkeit?

Danke im Voraus für jede Antwort!
Angehängte Dateien
Dateityp: zip ecard_writer.zip (8,3 KB, 31x aufgerufen)
__________________
lumi.at
illumitie 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 10:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele