Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-11-2003, 20:40   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 46
Verschieben mehrerer Objekte

N' abend,
also, fangen wir mal wieder mit dem Prob an:
Habe mehrere MC´s an einen MC attached. Wenn ich diese MC´s mit einem Doppelklick "bearbeite" haben diese den Zustand
markiert=1 und sie ändern ihr Aussehen;
Wenn ich jetzt ein Objekt, das markiert ist, per Drag verschieben will, sollen alle Objekte (MC´s), die ebenfalls den Zustand markiert=1 haben, mitbewegt werden und zwar genau um die Koordinaten die der "Leader MC" (=der MC´den ich Dragge) zurücklegt. Alle MC´die auf der Bühen attached wurden, sind in einem Array gespeichert.

Mal im Pseudocode ausgedrückt:

MC.onPress=function()
{
//this.beginMove()
}
zugehörigeKlasse.prototype.beginMove=function()
{
this.markiert=1;
startDrag(this)
this.bewege_alle_anderen_die_markiert_sind()
}
zugehörigeKlasse.prototype.bewege_alle_anderen_die _markiert_sind=function()
{
//StartPosition X-Wert des Leaders
startX=this._x
//StartPosition Y-Wert des Leaders
startY=this._y
// Ich muss ja beim herumziehen des "Leaders" ständig seine
//Position im Verhältnis zu seiner Startposition abfragen abfragen
this.onMouseMove=function()
{
//DeltaX und DeltaY in Bezug auf den Startpunkt
dX=this._x-startX
dY=this._y-StartY

for(i=0; i<="Anzahl der Objekte auf der Bühne".length;i++)
{
//also wenn ein Objekt als markiert gekennzeichnet wurde, dann
//verschiebe es.
// an Stelle [0] ist das Objekt auf der Bühne gespeichert
//z.B. _level0.rahmen.symbol1
//rahmen ist der MC an den die anderen attached werden
//Anzahl der Objekte auf der Bühne ist mein Array in dem die
//Objekte auf der Bühne gespeichert werden
if("Anzahl der Objekte auf der Bühne"[0].markiert==1)
{
// um welche X bzw. Y-Wert muss ich jetzt die markierten Objekte
//verschieben??
"Anzahl der Objekte auf der Bühne"[0]._x=??
"Anzahl der Objekte auf der Bühne"[0]._y=??
}

}
Um es nochmal auf den punkt zu bringen:
In Flash oder Illustrator hab ich ja auch die Möglichkeit mehrere Objekte zu markieren (entweder durch Doppelklick oder durch Shift gedrückt halten und Rahmen um die Objekte ziehen). Wenn ich jetzt ein Objekt verschiebe, verscheiben sich alle Objekte ebenfalls. Nichts anderes willi machen.

Sorry, das es so lang geworden ist, aber ich will mein Problem so gut wie möglich beschreiben (das hoffe ich zumindest).

Vielleicht hat ja jemand eine Idee.

In diesem Sinne...

Thx,
_______________________________________
ElectroCunt, neva get a real one
_______________________________________
ElectroCunt ist offline   Mit Zitat antworten
Alt 28-11-2003, 07:48   #2 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
du must einfach von den zu verschiebenden mc die x und y werte
speichern und von da rechnen mit dem DX.
hier mal ein beispiel.
ActionScript:
  1. MovieClip.prototype.beginMove = function() {
  2.     this.markiert = true;
  3.     startDrag(this);
  4.     startX = this._x;
  5.     startY = this._y;
  6.     for (i=1; i<20; i++) {
  7.         if (_root["mc_"+i].markiert == true) {
  8.             _root["mc_"+i].dx = _root["mc_"+i]._x;
  9.             _root["mc_"+i].dy = _root["mc_"+i]._y;
  10.         }
  11.     }
  12.     this.onEnterFrame = function() {
  13.         dx = this._x-startX;
  14.         dy = this._y-StartY;
  15.         for (i=1; i<20; i++) {
  16.             if (_root["mc_"+i].markiert == true) {
  17.                 _root["mc_"+i]._x = _root["mc_"+i].dx+dx;
  18.                 _root["mc_"+i]._y = _root["mc_"+i].dy+dy;
  19.             }
  20.         }
  21.     };
  22. };
  23. for (i=1; i<20; i++) {
  24.     mc_0.duplicateMovieClip("mc_"+i, i);
  25.     this["mc_"+i]._y = i*16;
  26.     this["mc_"+i].markiert = false;
  27.     this["mc_"+i].onPress = function() {
  28.         this.beginMove();
  29.     };
  30.     this["mc_"+i].onRelease = function() {
  31.         delete this.onEnterFrame;
  32.         stopDrag();
  33.     };
  34. }
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 28-11-2003, 11:04   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 46
Super danke, hat mir sehr geholfen.

_______________________________________
ElectroCunt
_______________________________________
ElectroCunt 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 14:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele