Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-07-2004, 11:58   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 17
duplicateMovieClip Name ???

folgendes Problem,
ich habe einen button den ich verdoppeln möchte
dies mache ich mit
Code:
on (release) {	
		duplicateMovieClip(_root.k1,"xx3", 1);
		setProperty ("xx3", _x, 500);
		setProperty ("xx3", _y, 100);
}
das klappt auch wunderbar.

dazu hab ich eine Funktion die mir die Namen der einzelnen Movies anzeigt wenn ich Sie anklicke.
klicke ich auf den das original bekomme ich auch den Namen k1 angezeigt.
wenn ich jedoch auf die Kopie klicke die ja eigentlich xx3 heißen sollte bekomme ich auch wieder den namen k1 angezeigt.

wie also kann ich etwas dublizieren und die Kopie dann mit neuen Namen ansprechen...
Metaman ist offline   Mit Zitat antworten
Alt 18-07-2004, 12:01   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
*nach oben schiel*

du hast oben angegeben, dass es sich hier um flashMX handelt...

was hat dann hier : setproperty (flash 4 syntax) verloren...?


greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 12:02   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 17
weiß ich nicht,
denn ich bin auf diesem Gebiet fast totaler Anfänger....
Metaman ist offline   Mit Zitat antworten
Alt 18-07-2004, 12:10   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
zeig mal den ganzen code her...


greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 12:42   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 17
da gibt es eigentlich nicht viel mehr
diesem
Code:
 mcArr =['xx1','xx2', 'xx3', 'k2', 'k1'];
// und dann in einer schleife dynamisch
for(var i = 0; i< mcArr.length; i++){
    var mc = mcArr[i];
    _root[mc].onRelease = function(){
     _root.bildname=this._name
   }
}
und einem Textfeld wo der aktuelle bildname gezeigt wird.
Metaman ist offline   Mit Zitat antworten
Alt 18-07-2004, 13:10   #6 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. on (release) { 
  2.     var mc = duplicateMovieClip(_root.k1,"xx3", 1);
  3.     mc._x = 500;
  4.     mc._y = 100;
  5. }


und das hier funktioniert erst dann, wenn die verschiedenen mc´s/buttons auch erstellt sind...

ActionScript:
  1. mcArr =['xx1','xx2', 'xx3', 'k2', 'k1'];
  2. // und dann in einer schleife dynamisch
  3. for(var i = 0; i< mcArr.length; i++){
  4.     var mc = mcArr[i];
  5.     _root[mc].onRelease = function(){
  6.      _root.bildname=this._name
  7.    }
  8. }

geht also erst NACHDEM du die objekte auch erstellt hast, also oben den button geklickt hattest, der z.bsp. 'xx1' erstellt...


greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 13:58   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 17
es mir schon klar das ich erst auf etwas zugreifen kann, wenn es vorhanden ist....
also xx1 und xx2 wurden hab ich manuel auf der Bühne erstellt

k1 ist auch auf der drauf und soll ja verdoppelt werden und das dublikat soll den namen xx3 bekommen.

so dein Code klappt erstmal nur teilweise.
denn mit
mc._x = 500;
mc._y = 100;
passiert bei mir nichts
wenn ich jedoch mc. weglasse geht´s (ja ich habe Flash MX !!)

also wenn ich k1 anklicke wird dieser auch dubliziert.
und im Textfeld erscheint als name k1
klicke ich jetzt das dublikat an, steht im Textfeld noch immer k1 , und das was vorher das original verschwindet, oder besser gesagt wird kopiert....

ich verstehs nicht...
aber ich hab das ganze mal mit angehängt....
Angehängte Dateien
Dateityp: zip scale_move_image2.zip (7,4 KB, 4x aufgerufen)
Metaman ist offline   Mit Zitat antworten
Alt 18-07-2004, 14:18   #8 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
sodele...aml die ein oder andere änderung...

1. lass mal diese

on(release) - <--- clip events... die sind veraltet und unübersichtlich und arbeiten auch anders...

anstatt mach das hier:

ActionScript:
  1. wert=5 // grundwert für die änderungen
  2.  
  3.  mcArr =['xx1','xx2', 'xx3', 'k2', 'k1'];
  4. // und dann in einer schleife dynamisch
  5. for(var i = 0; i< mcArr.length; i++){
  6.     var mc = mcArr[i];
  7.     _root[mc].onRelease = function(){
  8.      _root.bildname=this._name;
  9.    }
  10. }
  11.  
  12.  
  13. // hier in der hauptzeitleiste auf´s frame definierst du deinen event für die verschiedenen mc´s...
  14.  
  15. k1.onRelease=function(){   
  16.     duplicateMovieClip(_root.k1,"xx3", 1);
  17.     var mc = _root['xx3'];
  18.     mc._x = 200;
  19.     mc._y = 200;
  20. }

dann: überall, wo du textfelder hast und 'variablennamen' vergeben hast, entferne diese und vergib anstelle einen instanznamen, der genauso heißt wie deine bisherigen variablen...verstanden?

dann sprich die textfelder nicht mehr mit:

ActionScript:
  1. _root.bildname = 'bla';

sondern mit:

ActionScript:
  1. _root.bildname.text = 'bla';

denn mit instanzname kannst du die textfelder als 'objekt' ansprechen mit all seinen vorzügen...also auch _x _y , skalierung, andere fonts, etc etc...einfach alles, was das textfeld-objekt beherrscht...

alle geplanten clip-events erstellst du so, wie ich es am bsp von 'k1' demonstriert habe...dann sollte das schon wesentlich übersichtlicher und leichter handle-bar sein...

greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 14:57   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 17
danke das leuchtet ein...

aber...
wenn das dublizierte Bild jetzt den bezeichnung xx3 hat,
müste ich es doch mit auch mit dieser Bezeichnung erreichen können

denn xx3 steht ja mit in dem Array....

ich habe mir jedoch zum Test mal einen Button erstellt mir dem ich xx3 verschiebe
test.onRelease=function(){
_root.xx3._x = 200;
_root.xx3._y = 200;
}
und das funktioniert ????
Metaman ist offline   Mit Zitat antworten
Alt 18-07-2004, 15:41   #10 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ja, das sollte funktionieren...

aber es würde auch:
ActionScript:
  1. _root['xx3']._x = 200;


gehen...


greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 15:44   #11 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 17
ähm sorry aber ich glaub Du hast mich falsch verstanden.
es geht nicht um diesen Test button.

Sondern um die Funktion
Code:
mcArr =['xx1','xx2', 'xx3', 'k2', 'k1'];
// und dann in einer schleife dynamisch
for(var i = 0; i< mcArr.length; i++){
    var mc = mcArr[i];
    _root[mc].onRelease = function(){
     _root.bildname=this._name;
   }
}
denn diese Kopie heißt ja xx3
und müste somit auch über diese Funktion angesprochen werden..
Metaman ist offline   Mit Zitat antworten
Alt 19-07-2004, 08:09   #12 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 17
also den Ansatz hab ich jetzt selber hinbekommen
und zwar muß ich die funktion nach dem erstellen von xx3 aufrufen.
zum test hab ich es so gemacht...

k1.onRelease=function(){
//createEmptyMovieClip("xx3", 0);
attachMovie("k2", "xx3", 0);
xx3._x = 200;
xx3._y = 200;
xx3.onRelease=function(){
_root.bildname=this._name
}
}
und das geht...
Metaman ist offline   Mit Zitat antworten
Alt 19-07-2004, 13:20   #13 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
jaja...genau das meinte ich doch...die funktion kann erst gehen, wenn der mc bereits vollständig existiert...


greetz

kelor
kelor 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 04:47 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele