Anzeige

[AS] einfache Entscheidungsfrage

[AS] einfache Entscheidungsfrage | PSD-Tutorials.de

Erstellt von shadow_eye, 08.11.2006.

  1. shadow_eye

    shadow_eye Guest

    [AS] einfache Entscheidungsfrage
    :(
    Kann man in Movieclips in der Bilbiothek Actionscriptcode einfügen, der dann in allen dynamisch erzeugten Instanzen vorhanden ist und ausgeführt wird?
    Ich bin noch zu schlecht in Actionscript, um den Code dynamisch zu generieren.
    Bitte helft mir!
     
    #1      
  2. lakriz

    lakriz Noch nicht viel geschrieben

    Dabei seit:
    04.05.2006
    Beiträge:
    25
    Geschlecht:
    männlich
    Ort:
    Stuttgart
    Software:
    Paint
    Kameratyp:
    Tchibo TCM-DV4100
    [AS] einfache Entscheidungsfrage
    Das einzige was mir jetzt spontan einfallen würde wäre eine eigene Klasse zu schreiben, mit der du MovieClips instanzieren kannst, und denen dann die Aktionen mitzugeben.
    Hast du eine Ahnung von OOP?
     
    #2      
  3. shadow_eye

    shadow_eye Guest

    [AS] einfache Entscheidungsfrage
    Ja, etwas.
    Aber eine Klasse in AS zu schreiben, stelle ich mir einfach eklig vor.
    Wie gesagt, ich kann zwar programmieren, aber in AS bin ich nicht so gut.

    Danke für die schnelle Antwort!
     
    #3      
  4. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    [AS] einfache Entscheidungsfrage
    Hallo,

    natürlich kannst Du das, und es wird auch keine Klasse benötigt. Die Frage ist nur, ob man es auch sollte.

    - Erstelle einen MC mit dem Exportnamen "mc_kreis"
    - weise ihm in seiner Zeitleiste ein Skript zu, z.B.:

    Code (Text):
    1. this.onEnterFrame = function(){
    2.     this._x += 5;
    3. }
    - Lösche den mc auf der Bühne der Hauptzeitleiste, da er per skript eingefügt wird
    - Weise der Hauptzeitleiste z.B. folgendes Bildskript zu:

    Code (Text):
    1. this.attachMovie("mc_kreis","k",1);
    2. k._x = 100;
    3. k._y = 50;
    Damit wird ein mc auf der Bühne eingefügt, der sich permanent nach rechts bewegt. Die Bewegung erfolgt über das Bildscript, das im eingefügten Movieclip enthalten ist.

    Besser wäre es jedoch, das benötigte Script für den Kreis dynamisch zuzuweisen, nämlich dann, wenn er eingefügt wird. Dann kann man alle benötigten Skripte an einer Stelle unterbringen und muß nicht mühsam alles durchsuchen, wo denn ein bestimmtes Skript liegt.

    Beispiel:

    - Lösche aus dem mc_kreis das Bildskript
    - Ersetze in der Hauptzeitleiste das Bildskript wie folgt:

    Code (Text):
    1. this.attachMovie("mc_kreis","k",1);
    2. k._x = 100;
    3. k._y = 50;
    4. k.onEnterFrame = function(){
    5.     this._x += 5;
    6. }
    Das ist noch sehr unsauber, weil man die zu bewegenden Objekte (falls es mehrere sind), über ein Array erfassen sollte, für das attach besser einen eigenen Container verwenden sollte etc., aber ich hoffe, das Prinzip ist klar.

    Viel Spaß
     
    #4      
  5. shadow_eye

    shadow_eye Guest

    [AS] einfache Entscheidungsfrage
    vielen vielen Dank euch allen, ich werde es am Wochenende mal ausprobieren.
    Ich melde mich.

    Bis dann.
     
    #5      
  6. schinki

    schinki Aktives Mitglied

    Dabei seit:
    29.03.2006
    Beiträge:
    398
    Geschlecht:
    männlich
    Ort:
    Berlin
    [AS] einfache Entscheidungsfrage
    Hi h_seldon,

    schreibt man in AS 2 das ganze nicht so:
    Code (Text):
    1.  
    2. var clip:MovieClip = attachMovie("a_movie", "b_movie", 10)
    3. clip._y = 200
    4. clip.onEnterFrame = function(){
    5.     this._x += 5;
    6. }
    7.  
    Zumindest wäre das Typisiert und praktisch für dynamische Scripte,
    was ja in der Regel beim Attachen Sinn macht da man oft nicht weiss
    wie der neue Clip heisst.

    Korrigiere mich, wenn ich falsch liege....



    LG Schinki
     
    #6      
  7. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    [AS] einfache Entscheidungsfrage
    @ schinki,

    ja und nein. AS 2.0 ist nicht notwendig, um ein per attachMovie eingefügtes Objekt zu referenzieren. Denn beim Aufruf der Methode attachMovie muß als Parameter immer ein Instanzname übergeben werden. Dabei ist es unerheblich, ob der Name im Klartext dort steht, aus einer anderen Variablen übernommen oder per Konkatenation zusammengesetzt wird. Insofern weiß man also zwangsläufig, wie der Instanzname des eingefügten Objekts lauten muß. Nebenbei bemerkt: würde das nicht stimmen, dann wäre es in Flash MX nicht möglich gewesen, dynamisch Objekte einzufügen. Damals wurde in AS die Methode mc.attachMovie() eingeführt, AS 2.0 gibt es aber erst seit der Nachfolgeversion MX 2004.

    Die von Dir gewählte Schreibweise var clip:MovieClip etc. ist also möglich, aber nicht unbedingt notwendig. In meinen Projekten halte ich mich zwar an AS 2.0, in den Tutorials und den hier gegebenen posts allerdings nicht. Denn es bedeutet einen erheblich größeren Schreibaufwand und schreckt Scriptanfänger - und das dürfte die Mehrheit der Besucher hier sein - nur ab. Zudem gibt es noch einen kleinen Wehrmutstropfen: die Typisierung wird nur in der Autorenumgebung kontrolliert, der Flash-Player dagegen frisst aus Kompatibilitätsgründen alles.

    Aber es ist gut, daß Du fragst. Das ist ein wichtiges Thema und vielleicht wäre es angebracht, ein Tutorial zu AS 1.0 und 2.0 (vielleicht schon mit einem Ausblick auf 3.0) zu schreiben [wink mit dem scheunentor].
    :wink:

    Viel Spaß
     
    #7      
x
×
×