Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-07-2005, 06:55   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 6
Über Matrix MovieClips positionieren??

Moin...

Ich will, über eine Matrix einige MovieClips positionieren.

Die Idee ist folgende :
Ein Hintergrundbild soll von oben links nach unten recht aufgedeckt werden.
Die MovieClips haben alle ein Alpha-Tween und werden jeweils zeilenweise nebeneinander auf die oberste Ebene geladen.

Ich wollte dies via Actionscript lösen, jedoch habe ich einige Schwierigkeiten.

ActionScript:
  1. // Testweise nur bis 10
  2. for(i=1; i<10; i++){
  3.    attachMovie("MovieAusBib","NeuerMovieName",i);
  4. }

Es wird mir kein MovieClip angezeigt (Fehler ebenfalls nicht).
Woran kann dies liegen??

Gruß
Sacker
Sacker ist offline   Mit Zitat antworten
Alt 11-07-2005, 07:47   #2 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 36
Hi,

hast du auch in der Bib deinem mc über "Verknüpfung" nen Bezwichner zugewiesen?
Das hab ich anfangs immer vergessen.
Rogi ist offline   Mit Zitat antworten
Alt 11-07-2005, 08:47   #3 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
überprüf mal in den Eigenschaften, ob das Häkchen bei "Für ActionScript exportieren" gesetzt ist!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 11-07-2005, 10:50   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 6
Ich habe die Verknüpfung und das Häckchen beim Export gesetzt..., aber leider funktioniert es nicht.

Die Datei steht zum Download zur Verfügung.
Vielleicht könnte mal jemand drüberschauen, dies würde helfen.

Das Hintergrundbild habe ich weggelassen, weil es 450kb hat.
Bitte einfach ein anderes Bild benutzen.

Gruß
Sacker
Angehängte Dateien
Dateityp: zip Desktop.zip (5,1 KB, 9x aufgerufen)
Sacker ist offline   Mit Zitat antworten
Alt 11-07-2005, 11:01   #5 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Irgendwie werd ich aus diesem File nicht schlau!?
Was hat random() (ist übrigens veraltet!) mit deinem Zeilenweisen aufdecken zu tun?
Ausserdem fehlt ne anständige Instanzierung und die Actions kommen in der Regel in die selbe Ebene (in eine, in der keine Instanz liegt!)?

Also du möchtest gerne dein Hintergrundbild aufbauen lassen? Wieviele Teile besitzt das? Beschreib doch noch mal genau, was du willst und wie das aussehen soll!?
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 11-07-2005, 11:11   #6 (permalink)
Neuer User
 
Registriert seit: May 2003
Ort: Wels
Beiträge: 20
du überschreibst dir ja selber die levels mit den hg-images die du einlädst!
tz...
cerebus ist offline   Mit Zitat antworten
Alt 12-07-2005, 02:05   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 43
Ich versteh zwar auch nicht ganz, was Sacker da anstellen will, nur bin ich eben auf das Topic gestossen, da ich genau so was wie im Titel beschrieben machen will.

Ich habe kleine, quadratische Movieclips, die alle zufällig aufblinken.
Nun möchte ich diese in Form von Buchstaben auf der Bühne (root) verteilen.
Leider habe ich keine Ahnung, wie ich das am besten über AS mache. Ich habt mir mal vorgestellt, dass man eine Matrix definieren könnte. Im Stil von:
[ 1 1 1 1 1 ]
[ 1 0 0 0 0 ]
[ 1 1 1 0 0 ]
[ 1 0 0 0 0 ]
[ 1 1 1 1 1 ]
was dann ein E ergeben sollte
Die Frage ist nun: Gibt es überhaupt einen Datentypen Matrix? Und wie arbeite ich die Elemente der Matrix ab?
Die Anweissung bei den einzelnen Elementen wären ja einfach:
if (element == 1) {movie clip duplizieren und positionieren} else {nichts}
Auch die Position könnte ja direkt aus der spalte / zeile der Matrix ausgelesen werden (mal einen wert).
Eazyjd ist offline   Mit Zitat antworten
Alt 12-07-2005, 08:10   #8 (permalink)
pensionist
 
Benutzerbild von troner
 
Registriert seit: Jan 2003
Ort: Thalheim b. Wels
Beiträge: 568
hallo,

schau dir das mal hab ich vor kurzem mal geschrieben!
ist im fast genau das was du suchst!

ActionScript:
  1. // ----------------------------------------------------------------
  2. // PixelEngine ver.0.1
  3. // Author: mario UE.
  4. // Datum: 19.05.05
  5. // ----------------------------------------------------------------
  6.  
  7. // ------------------Varibalen deklarieren----------------------//
  8. xabstand = 10; // ist gleichzeitig die breite der point_mcs
  9. yabstand = 10; // ist gleichzeitig die hoehe der point_mcs
  10. spalten = 20;
  11. speed = 10;
  12. posConMc = 50;
  13. gFarbe = [0x000000, 0x00ff00, 0xff0000, 0xff6622, 0xffff33];
  14. stageB = Stage.width;
  15. stageH = Stage.height;
  16. // -------------------------------------------------------------//
  17. // geht auch mit buchstaben
  18. var matrix = '';
  19. matrix += '00000000000000000000';
  20. matrix += '00000000000300000000';
  21. matrix += '00000000003230000000';
  22. matrix += '00000000033223300000';
  23. matrix += '00000000332222330000';
  24. matrix += '00000000033233000000';
  25. matrix += '00000000000400000000';
  26. matrix += '00000000004000000000';
  27. matrix += '00000000004000000000';
  28. matrix += '00000000004000000000';
  29. matrix += '00000000040000000000';
  30. matrix += '00000000040000000000';
  31. matrix += '00000000040000000000';
  32. matrix += '00000100400100000000';
  33. matrix += '00000110401100000000';
  34. matrix += '00000011110000000000';
  35. function parse() {
  36.     matrix = matrix.split('');
  37.     pos();
  38. }
  39. function pos() {
  40.     var ccc, mcColor;
  41.     var cc = _root.createEmptyMovieClip("con", -1);
  42.     //pointOrCircle==true ? pointOrCircle="ponit_mc" : pointOrCircle="circle_mc"
  43.     for (i in matrix) {
  44.         ccc = cc.createEmptyMovieClip("ponit_mc", i);
  45.         with (ccc) {
  46.             beginFill(0xffffff, 100);
  47.             lineTo(0, 0);
  48.             lineTo(xabstand, 0);
  49.             lineTo(xabstand, yabstand);
  50.             lineTo(0, yabstand);
  51.             lineTo(0, 0);
  52.             endFill();
  53.         }
  54.         ccc._x = random(stageB);
  55.         ccc._y = random(stageH);
  56.         mcColor = new Color(ccc);
  57.         mcColor.setRGB(gFarbe[matrix[i]]);
  58.         ccc.moveToXY((i%spalten)*xabstand, Math.floor(i/spalten)*yabstand, speed);
  59.     }
  60.     cc._x = cc._y=posConMc;
  61. }
  62. var cToleranz = 1;
  63. MovieClip.prototype.moveToXY = function(X, Y, speed) {
  64.     this.onEnterFrame = function() {
  65.         if (Math.abs(X-this._x)+Math.abs(Y-this._y)>cToleranz) {
  66.             this._x += (X-this._x)/speed;
  67.             this._y += (Y-this._y)/speed;
  68.         } else {
  69.             this._x = X;
  70.             this._y = Y;
  71.             delete this.onEnterFrame;
  72.         }
  73.     };
  74. };
  75. parse();

auch als anhang
mfg
Angehängte Dateien
Dateityp: zip pixelEngine.fla.zip (6,3 KB, 18x aufgerufen)
troner ist offline   Mit Zitat antworten
Alt 12-07-2005, 13:44   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 43
Boah! Edelst! Dank dir
Eazyjd ist offline   Mit Zitat antworten
Alt 12-07-2005, 14:15   #10 (permalink)
Co&Bold
 
Benutzerbild von Cysign
 
Registriert seit: Nov 2004
Ort: Troisdorf (bei Köln)
Beiträge: 170
Zitat:
Zitat von bamboocha
...random() (ist übrigens veraltet!)...
wie generierst du denn zufallszahlen?
__________________
Friede!
Cysign ist offline   Mit Zitat antworten
Alt 12-07-2005, 14:19   #11 (permalink)
pensionist
 
Benutzerbild von troner
 
Registriert seit: Jan 2003
Ort: Thalheim b. Wels
Beiträge: 568
Math.random() zb.

aber ich nehm auch immer random(); für solche sachen!

mfg
troner ist offline   Mit Zitat antworten
Alt 12-07-2005, 15:28   #12 (permalink)
Co&Bold
 
Benutzerbild von Cysign
 
Registriert seit: Nov 2004
Ort: Troisdorf (bei Köln)
Beiträge: 170
Math.random gibt aber ne Fließkomma-Zahl zwischen 0 und 1 aus. Um damit ne netürliche Zahl zwischen 1-10 zu erhalten, musst du es dann noch multiplizieren.
willst du ne Natürliche Zahl z.B. zwischen 30-70 haben, kannst du somit nicht einfach
ActionScript:
  1. random (40) + 30;
schreiben, sondern musst das viel auswändiger machen...
wie machst du es dann?
worauf beruht die Aussage "ist veraltet" denn immer?
Nur weil es was neueres gibt, das evtl. gar kein gleichwertiger Ersatz ist? Und sollte man random() dann um zukunftsgewappnet zu sein besser nicht mehr benutzen?
__________________
Friede!

Geändert von Cysign (12-07-2005 um 15:29 Uhr)
Cysign ist offline   Mit Zitat antworten
Alt 12-07-2005, 15:52   #13 (permalink)
pensionist
 
Benutzerbild von troner
 
Registriert seit: Jan 2003
Ort: Thalheim b. Wels
Beiträge: 568
Flash Player 5. In Flash Player 4 werden die Methoden und Eigenschaften der Math-Klasse mit Hilfe von Näherungswerten emuliert und sind deshalb möglicherweise nicht so genau wie die nicht emulierten mathematischen Funktionen, die von Flash Player 5 unterstützt werden.

ich denke aber mal das random() bei 99.7% der fälle genau genug ist!

mfg
troner 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 07:43 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele