Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-10-2003, 16:07   #1 (permalink)
KEINE AHNUNG
 
Benutzerbild von MalcomX
 
Registriert seit: Jun 2001
Ort: Germany
Beiträge: 967
ich bekomms einfach net gepacken ! ! !

Hi Hi ! ! !

folgendes Script:

es geht darum egal wieviel dupl. MC's mittig zu plazieren, und dat geht auch insoweit.
Doch nun möchte ich wenn zu viel MC's in einer Reihe sind, das er 1. ne neue Reihe anfängt (wo auch nicht gerade ein Probl. darstellt) nur 2. sollten diese MC's auch mittig dargestellt werden und genau da komme ich nich mehr weiter. Da muß ich doch dann erst ma ermitteln wieviele MC's noch übrig sind oder?

Oder bin ich die ganze Sache von Grund auf falsch angegangen?

ActionScript:
  1. function anzeige(){
  2. line=50;//_Y Startwert
  3. anzahl=19;//Anzahl der zu duplizierenden MC'S
  4. filmhoch=400;//Buehnenhoehe
  5. filmbreit=400;//Buehnenbreite
  6. mcbreit=20;
  7. startpos=((filmbreit/2)-(mcbreit*anzahl/2));
  8.     for(i=0;i<anzahl;i++){
  9.         test.duplicateMovieClip("mc"+i,i);
  10.         if(i==0){
  11.         this["mc"+i]._y=line;
  12.         this["mc"+i]._x=startpos+mcbreit/2;
  13.         xpos=this["mc"+i]._x;
  14.         }else{
  15.             this["mc"+i]._y=line;
  16.         this["mc"+i]._x=xpos+=mcbreit;
  17.         }
  18.     }
  19. }
  20. anzeige();
  21. trace(startpos);

Gruß und Danke schon mal im voraus
Malcom
MalcomX ist offline   Mit Zitat antworten
Alt 06-10-2003, 16:47   #2 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
kannst du mal ne fla hoch laden oder genau sagen wo die mcs verschoben sind...?

also sind sie alle rechts oder gehen nicht runter oder oder oder

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 06-10-2003, 16:51   #3 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
hier ein kuhler link,
rusty hat mal ein tut zum thema modulo gebaut.

...mach_mich_schlau..

gruß
warrantmaster ist offline   Mit Zitat antworten
Alt 06-10-2003, 18:09   #4 (permalink)
KEINE AHNUNG
 
Benutzerbild von MalcomX
 
Registriert seit: Jun 2001
Ort: Germany
Beiträge: 967
Hi Hi ! ! !

@warrantmaster
Öhm Danke vielmals aber is glaube ich net so genau dat was ich brauche .

@Tschdaeff
Als Anhang die .fla

Gruß und Danke schon mal im voraus
Malcom
Angehängte Dateien
Dateityp: zip test.zip (2,2 KB, 3x aufgerufen)
MalcomX ist offline   Mit Zitat antworten
Alt 06-10-2003, 18:15   #5 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
des richtet deine mc in der mitte der Bühne aus!!
falls einer ne bessere Idee hat, Bitte posten, bin net so der Mathe-freak
ActionScript:
  1. anzahl_reihe = 6;
  2. anzahl_gesamt = 36;
  3. mc_breite = Math.floor(mc_dup._width);
  4. mc_hoehe = Math.floor(mc_dup._height);
  5. x_wert = Stage.height-(anzahl_reihe*mc_breite)+(4);
  6. y_wert = Stage.width-(anzahl_reihe*mc_hoehe)+4;
  7. x_start = x_wert/2;
  8. y_start = y_wert/2;
  9. for (i=0; i<anzahl_gesamt; i++) {
  10.     this.mc_dup.duplicateMovieClip("dup"+i, i);
  11.     this["dup"+i]._x = x_start+(i%anzahl_reihe)*(mc_breite);
  12.     this["dup"+i]._y = y_start+Math.floor(i/anzahl_reihe)*(mc_hoehe);
  13. }
Edit: a bisserl kürzer gings noch
hi warrant
weiss jemand zufällig warum Stage.widht bei ner Bühne von 400 , 396 ausgibt
Angehängte Dateien
Dateityp: zip mod_ausricht.zip (3,0 KB, 9x aufgerufen)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"

Geändert von RustyCake (06-10-2003 um 18:23 Uhr)
RustyCake ist offline   Mit Zitat antworten
Alt 06-10-2003, 18:44   #6 (permalink)
KEINE AHNUNG
 
Benutzerbild von MalcomX
 
Registriert seit: Jun 2001
Ort: Germany
Beiträge: 967
Danke vielmals werds mir mal anschaun!

Öhm dat mit dem Stage.width is mir auch gestern aufgefalln,das gibt bei mir auch grundsätzl. nich den korrekten Wert.

Gruß
Malcom
MalcomX ist offline   Mit Zitat antworten
Alt 06-10-2003, 19:04   #7 (permalink)
KEINE AHNUNG
 
Benutzerbild von MalcomX
 
Registriert seit: Jun 2001
Ort: Germany
Beiträge: 967
Danke für die Mühe nochmals, aber is trotzdem nich so ganz dat was ich meine.
Vielleicht hab ich mich auch 'n bisschen unverständlich ausgedrückt.
Schau dir mal das an

In der oberen reihe sind 6 PC's in der unteren Reihe jedoch nur 3 weil Gesamtanzahl logischerweise 9 PC's angegeben wurde.

Jetzt möchte ich egal wieviel in der letzten Reihe übrig bleiben,das diese auch mittig ausgerichtet werden.

Gruß
Malcom
MalcomX ist offline   Mit Zitat antworten
Alt 06-10-2003, 19:35   #8 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
tja malcom, der link ist genau das, was du brauchst !
(es sei denn, du suchst eine fertige lösung...dann sag es ).

hi@rusty%cake
warrantmaster ist offline   Mit Zitat antworten
Alt 06-10-2003, 19:46   #9 (permalink)
KEINE AHNUNG
 
Benutzerbild von MalcomX
 
Registriert seit: Jun 2001
Ort: Germany
Beiträge: 967
@warrantmaster

sorry hatte mir nur mal die Beisp. fla angeschaut, war wohl ein Fehler.
Man sollte halt trotzdem erst ma lesen .

Werd mir die Geschichte mal genauer betrachten, und versuchen etwas damit anzufangen.

Und trotzdem nochma Danke @all

Gruß
Malcom
MalcomX ist offline   Mit Zitat antworten
Alt 06-10-2003, 20:56   #10 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. arr = [];
  2. arraytest = function () {
  3.     anzz = arr.length;
  4.     vor = _root[arr[0]]._name.substring(2);
  5.     rest1 = _root['mc'+(vor-1)]._x-_root[arr[anzz-1]]._x;
  6.     for (var i = 0; i<arr.length; i++) {
  7.         _root[arr[i]]._x += rest1/2;
  8.     }
  9. };
  10. function anzeige() {
  11.     line = 50;
  12.     //_Y Startwert
  13.     anzahl = 19;
  14.     //Anzahl der zu duplizierenden MC'S
  15.     filmhoch = Stage.height;
  16.     //Buehnenhoehe
  17.     filmbreit = Stage.width;
  18.     //Buehnenbreite
  19.     abstand = 10;
  20.     // "fuge"
  21.     mcbreit = test._width+abstand;
  22.     mchoch = test._height+abstand;
  23.     anz = Math.floor(filmbreit/mcbreit);
  24.     rest = (filmbreit-(anz*mcbreit))/2+(mcbreit/2);
  25.     letzte_reihe = Math.floor(anzahl/(anz%mcbreit));
  26.     for (i=0; i<anzahl; i++) {
  27.         test.duplicateMovieClip("mc"+i, i);
  28.         this["mc"+i]._x = (i%anz)*mcbreit+rest;
  29.         this["mc"+i]._y = linie+test._height+(Math.floor(i/anz)*mchoch);
  30.         if (Math.floor(i/anz)>letzte_reihe-1) {
  31.             arr.push('mc'+i);
  32.         }
  33.     }
  34.     arraytest();
  35. }
  36. anzeige();

nu ist es x-mäßg immer zentriert, abstände einstellbar,der registrierungspunkt von "test" muß mittig sein.

gruß

@rusty
stage nimmt immer 4px weg, in dem fall aber egal,
wenn wichtig, dann muß man es nur wissen.
(warum...??? null ahnung )
warrantmaster ist offline   Mit Zitat antworten
Alt 06-10-2003, 22:59   #11 (permalink)
KEINE AHNUNG
 
Benutzerbild von MalcomX
 
Registriert seit: Jun 2001
Ort: Germany
Beiträge: 967
Na is doch fette,genau das meinte ich !

Öhm bin auch kurz vorm Ziel Dank deines Links oben, aber er zeigt mir jetzt immer ein 4eck zu wenig Positionierung scheint OK zu sein.

Kannste Dir ja mal anschaun habs mit angehängt.

Was ich halt bei deinem Script nich so ganz verstehe is der Array Teil. Sorry aber bin ein Mensch der verstehen möchte wat er tut
Was hab ich davon wenn ich copy&paste, aber nich verstehe wies funtzt. Sorry aber is halt soo.

Deshalb wäre es auch goil wenn de evtl. ma in meine .fla schauen könntest, vielleicht erkennst ja du den Fehler !

Trotzdem Vielen Dank nochma

Gruß
Malcom
Angehängte Dateien
Dateityp: zip position.zip (2,6 KB, 7x aufgerufen)
MalcomX ist offline   Mit Zitat antworten
Alt 07-10-2003, 00:19   #12 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
hi malcom,

hab kurz in deine fla geschaut.
du siehst nur einen in der
zweiten reihe, weil du alle übereinander
legst.
aber das ist nicht dein einziges
prob, die erste reihe sitzt auch nicht
mittig und bei reihe 3 ist es ja
dann ganz vorbei, da du noch kein
script für reihe 2 + hast. das grundprob
ist aber die eigentlich totale unflexibilität,
wenn du mit festen werten arbeitest,
dann kannst du ja gleich die dinger "zu-fuß"
auf die bühne legen. ziel von as sollte sicher
genau das gegenteil sein: in alle richtungen
flexibel. bei dem script mit modulo hast du
genau diese geschichte, man könnte das
auch noch auf die spitze treiben und
"sortier"-button einbauen, mit dem der user
die ganzen parameter ändern kann.
ist natürlich jetzt weit hergeholt, aber
das wäre jetzt eine arbeit von 10 minuten.
aber das nur nebenbei.

der arrayteil in meinem script
beinhaltet die restlichen instanzen (die in der letzten reihe),
die werden in der for-schleife in das array gepusht.

arr.push('mc'+i);

mit diesem array hat man erst mal alle "kompliziert" zu positionierenden instanzen griffbereit und kann anhand des
namens in index0 (arr[0]) den namen des letzten mc's
in der letzten vollen reihe rausbekommen:

vor = _root[arr[0]]._name.substring(2);
rest1 = _root['mc'+(vor-1)]._x-_root[arr[anzz-1]]._x;
-------------------^ hier ist er (vor-1)

jetzt hat man die x-pos von dem teil und die xpos
des letzten mc's im array und somit die distanz zwischen beiden.
naja, der rest sollte klar sein, die mc's im array werden
halt nachträglich rübergeschoben.

grz
warrantmaster ist offline   Mit Zitat antworten
Alt 07-10-2003, 20:49   #13 (permalink)
KEINE AHNUNG
 
Benutzerbild von MalcomX
 
Registriert seit: Jun 2001
Ort: Germany
Beiträge: 967
Ups Sorry häät ich bald vergessen

Vielen dank noch mal für deine Ausführung und Beschreibung

Hat mir echt weitergeholfen

Gruß
Malcom
MalcomX 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 18:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele