Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2008, 10:18   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 80
Frame Funktionen wie frame1() frame7()... von außen aufrufen

Hallo,

ich möchte mit der undokumentierten Funktion addFrameScript(4, myFunction) eine Funktion zum Timeline-Frame 5 hinzufügen, innerhalb dieser Funktion soll das ursprüngliche Framscript per frame5() auch noch ausgeführt werden.

(Mehr Infos zu diesen Funktionen gibt's hier: http://troyworks.com/blog/2007/09/22...ddframescript/)

Dies klappt allerdings nur von innerhalb der fla oder Klassen, die den zu steuernden MovieClip erweitern. Klassen, die den zu steuernden MovieClip als Eigenschaft besitzen, können nicht auf die Funktion mc.frame5() zugreifen, dort ist sie immer undefined. Ich möchte so aber auch mit auf der Bühne liegenden MCs arbeiten, deshalb kommt eine Unterklasse von MovieClip nicht in Frage. Gibt es eine Lösung für dieses Problem?

ActionScript:
  1. package {
  2.     import flash.display.MovieClip;
  3.     public class Test  {
  4.         public function Test(mc:MovieClip) {
  5.             //funktioniert nicht, selbst wenn in Frame 5 ein Script steht
  6.             mc.frame5();
  7.         }
  8.     }
  9. }


ActionScript:
  1. package {
  2.     import flash.display.MovieClip;
  3.     public class Test extends MovieClip{
  4.         public function Test() {
  5.             //funktioniert, so für mich aber nicht praktikabel
  6.             this.frame5();
  7.         }
  8.     }
  9. }
Q-Man ist offline   Mit Zitat antworten
Alt 01-10-2008, 16:48   #2 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
mc.gotoAndStop(5); ?
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 01-10-2008, 19:04   #3 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
die Funktionen sind dann wohl privat, also muss du irgendeinen public-wrapper basteln, der die Funktionen in der Klasse privat ausführt.
Sowas könnte vielleicht funktionieren:
ActionScript:
  1. public function callFrame( id:Number ):void
  2. {
  3.     this['frame' + id]();
  4. }
pokepika ist offline   Mit Zitat antworten
Alt 02-10-2008, 08:35   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 80
@ _crypto_: addFrameScript überschreibt den Code im Frame 5, also muss ich per Hand das originale Script mit frame5() aufrufen.

@pokepika: Das Funktioniert auch nur im 2. von mir gesposteten Beispiel, also wenn MovieClip erweitert wird. Von außen (wie in meinem Beispiel 1) kann so auch nicht auf die Funktion zugegriffen werden, ist immer undefined.
Q-Man ist offline   Mit Zitat antworten
Alt 04-10-2008, 14:39   #5 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
dann würd ich mir das ganze mal überlegen ob das wirklich so produktiv ist
timeline scripts und klassen etc. zu vereinigen ...
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 04-10-2008, 22:23   #6 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
Zitat:
Zitat von Q-Man Beitrag anzeigen
@pokepika: Das Funktioniert auch nur im 2. von mir gesposteten Beispiel, also wenn MovieClip erweitert wird. Von außen (wie in meinem Beispiel 1) kann so auch nicht auf die Funktion zugegriffen werden, ist immer undefined.
Logisch, wie gesagt die Funktion ist privat; deswegen sagte ich ja, dass du einen öffentlichen Wrapper dazu schreiben solltest. Und das geht nunmal nur durch das erweitern der MovieClips. Aber dann kannst du auch über das erste Beispiel mithilfe der dann vorhandenen Wrapper Funktion die frame-Funktionen aufrufen.
Ob das natürlich überhaupt sinnvoll ist, ist ne andere Sache.
pokepika 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 13:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele