MovieClip generieren?

Janos

Grünschnabel
Hi Leute

Ich bin nicht sehr erfahren mit Flash selber. Ziemlicher Anfänger und bringe mir gerade ActionScript bei, was mir irgendwie leichter fällt als das Programm selbst. Ich besitze FlashMX2004 auf XP.

Mein Problem:
Eigentlich sind es mehrere aber hier mal nur eins zum schauen wie ihr drauf reagiert. ;) . Ich möchte dynamisch Movieclips generieren welche es aber noch nicht gibt dieser Movieclip soll erst generiert werden wenn das AS durchläuft wie geht das?
Ich möchte zuerst ein MC duplizieren und danach alle diese duplizierten MCs rotieren. So, das sie alle zusammen eine einzige Achse haben.


Vielen Dank für alle nützliche Antworten.
 
Was willst du nun machen - einen Movieclip generieren oder duplizieren

Befehle zum Generieren:
- MovieClip.createEmptyMovieclip
- MovieClip.lineTo
- MovieClip.beginnFill
- MovieClip.endFill

In der Flashhilfe -> Actionscripreferenz unter MovieClip.lineTo findest du auch ein komplettes Beispiel zum Erstellen, einfach mal in den ersten Frame eines leeren Flashfilms kopieren.

Befehle zum Duplizieren
- MovieClip.duplicateMovieClip

Du kannst auch Movieclips direkt aus der Bibliothek holen - schau dir dazu mal den Befehl MovieClip.attachMovie an.

Um später alles zusammen zu drehen würde ich die neuen Movieclips nicht auf die Hauptzeitleiste erstellen/duplizieren sondern in einen "äußeren" Movieclip und diesen äußeren dann drehen - dann dreht sich alles mit was drin ist

Befehl zum Drehen
MovieClip._rotation

Soweit zum Prinzip - wie du siehst, Wege gibt es viele.
Die Befehle selbst findest du in der Flashilfe -> Actionscriptreferenz unter M wie Movieclip mit Erklärungen und Beispielscripts

Versuch es mal und wenn du nicht weiter kommst hak hier mit deinem konkreten Aufbau, Script, ggf. Demodatei nach. :)

Gruß
Rena
 
Zuletzt bearbeitet:
oke. Danke vielmals.

es geht darum das ich einen Background generieren kann wo eine Font erscheint immer wieder und immer schräg.
Also mir ist gerade au noch aufgefallen das ich ein anderes Problehm viel mehr habe und nämlich das Unverständnis von dem Begriff Tiefe und Ebenen also die Ebenen kenne ich vom Photoshop und vom Illustrator und auch im Flash denke ich ist es mir klar, doch was soll das genau mit der Tiefe? Nun ja musst ja nicht beantworten...
Auf jedenfall sind bei mir die ganzen dupliziertenMCs immer an vorderster Front was mich nicht so anmacht. Man bedenke ich benötige das Skript für den Hintergrund :suspekt:
 
Hi,

man kann auch negative Tiefen angeben. Besser wäre es allerdings, den Hintergrund in einen MC mit niedriger Tiefe, und den Vordergrund in einen mit höherer Tiefe zu geben.

Zu Deinem ersten Problem: Meinst Du u.U. etwas ähnliches wie im Anhang?

Gruß
.
 

Anhänge

Also bei mir sieht das Skript so aus: bg_font ist die Instanz des MCs der im Hintergrund andauernd dupliziert wird.

Code:
//Sklaiere den Font auf eine bestimmte Grösse 2/3 vom Original
this.bg_font._height = this.bg_font._height*2/3;
this.bg_font._width = this.bg_font._width*2/3;
//Background erstellen auf Grösse von 650*500
//Variablen---------------------------------------------------------------
var font_h = this.bg_font._height, font_b = this.bg_font._width;
var font_posx = this.bg_font._x, font_posy = this.bg_font._y;
var X = 1, Y = 1, i = 0, a = 0;
var X_vorg = 0, Y_vorg = 11, Anzahl = 250, xxx = 1;
var abstand_h = 17, abstand_b = 23;
//--------------------------------------
// Variablen (X) und (Y) für Position
// (font_posx/x) Ausgangsposition
// (font_h/b) Grösse des Movieclips ->
// für die Berechnung der Position
// Anzahl für die Anzahl Duplikate
// abstand_h/b ist Standartabstand
// i/a zusätzlicher Abstand
//--------------------------------------
with (this.bg_font)	{
    for (var nr = 1; nr<=Anzahl; nr++) {
	// Positionszähler -------------
	if (X == Y_vorg) {
		X = 1;
		Y++;
		xxx++;
		if (xxx == 2) {
			a = (font_b+abstand_b)/2;
			xxx = 0;
		} else {
			a = 0;
		}
	}
	duplicateMovieClip('font'+nr, nr);
	this['font'+nr]._Y = font_posy+(Y*(font_h+abstand_h));
	this['font'+nr]._X = a+font_posx+(X*(font_b+abstand_b));
	if (X<Y_vorg) {
		X++;
	}
	//------------------------------
    }
}
this.bg_font._rotation = -12;
//----------------------------------------------------------------

und das einzige was nicht funktioniert ist das rotieren aller MCs zusammen. Wie kann ich überhaupt den duplizierten MC einem anderen unterordnen wie geht das? :confused: Also wies geht mit ActionScript, wie das normal geht weiss ich.

Gruss Janos
 
Wie kann ich überhaupt den duplizierten MC einem anderen unterordnen wie geht das?
Was meinst Du damit? Sollen sich nun alle Objekte "synchronisiert" um die eigene Achse drehen, oder zusammen um eine gemeinsame Achse? Im zweiten Fall packe Deine Duplikate einfach in einen leeren MovieClip und lasse diesen Clip rotieren ...

... im ersten Fall: Siehe meinen Anhang.

Gruß
.
 
Ja hallo Datic

Sorry wenn ich vieleicht etwas unklare Beschreibungen von meinem Problem mache. im Skript oben siehst du wie ichs bisher hingebracht habe ich möchte das sich alle MCs um die selbe Achse drehen nicht so das sich jede einzeln um die eigene Achse dreht!

Hier ist mein problehm ich weiss nicht wie das Script geht um das so zu machen, ich währe sehr froh um ein kleines Beispiel. Ich poste mal noch die *.fla- Datei damit du sie dir ansehen kannst wenn du lust hast?!

Da passiert einfach nix! :confused:
Code:
this.createEmptyMovieClip(BG_FONT, 1);
this.BG_FONT._height = 500;
this.BG_FONT._height = 650;
this.BG_FONT._x= -30;
this.BG_FONT._y= -30;
...
this.BG_FONT.attachMovie( font_ , 'font'+nr, nr );
 

Anhänge

Hi,

ich kann die Datei aus irgendwelchen Gründen nicht öffnen - und da ich kein AS-Compiler bin, ist es recht umständlich, einen nackten Code ohne die dazugehörigen Objekte zu interpretieren. Generell gilt: Wenn Du alle Kopien in dem gleichen MC erstellst, was hält Dich davon ab, einfach diesen Containerclip zu rotieren?

Gruß
.
 
Sorry ich habe den fehler gesehen! Ein fehler der einem immer als Anfänger passiert. Den Unterschied zwischen " und ' sollte man immer kontrollieren.

LÖSUNG

wobei anzufügen; ich konnte es nur realisieren mit atachMovie, mit duplizieren wuste ich nicht wie es geht so das ich den duplizierten Clip in den leren MC hineinbringe, aber schlussendlich ist das ja sowieso die gleiche funktion!

Code:
//Damit ich die Werte von Grösse und Länge ermitteln kann. 
  this.attachMovie( "font", "bg_font", 0 );

//Damit ich einen leeren übergeordneten MC verwende. 
//Was in diesem Fall notwendig ist da 
//sonst bei der Rotation nur der eigene Inhalt dreht.
  this.createEmptyMovieClip( "Background_MC", 1 );

//In einer Schleife wird so offt wie nötig wiederholt 
//(erstellt eine neue Font im Background_MC)
  this.Background_MC.attachMovie( "font", "font"+nr , nr );

//schlussendlich funktioniert auch dieser Teil so dass
//alle enthaltenen MCs mit-rotieren um die gemeinsame Achse!
  this.Background_MC._rotation = -12;

Danke nochmals für die Hilfe.
 
Zurück