Nun, da Sie scheinen einige oldskool Ninja-Techniken verwenden, würde ich vorschlagen, dass Sie sollten es einfach und unkompliziert halten.
Sagen Sie bitte auf der Hauptzeitleiste einige Funktionen haben:
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.utils.getQualifiedClassName;
import flash.utils.describeType;
public class Test extends MovieClip
{
public function Test()
{
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
private function onMouseDown(event:MouseEvent):void
{
trace(getQualifiedClassName(this)+".onMouseDown()");
try {
var ring1:Function = this["Ring1"] as Function;
var ring2:Function = this["Ring2"] as Function;
} catch (error:Error) {
// ignore
}
if (ring1 != null) {
trace("\t", "Ring1", "=", ring1);
trace("\t", ring1());
} else {
trace("\t", "Ring1() function not found in "+this+"!");
}
if (ring2 != null) {
trace("\t", "Ring2", "=", ring2);
trace("\t", ring2());
} else {
trace("\t", "Ring2() function not found in "+this+"!");
}
// for your interest:
var doc:XML = describeType(this);
var ring1Node:XML = doc.descendants("method").(@name == "Ring1")[0];
var ring2Node:XML = doc.descendants("variable").(@name == "Ring2")[0];
trace("declaration of Ring1:", ring1Node.toXMLString());
trace("declaration of Ring2:", ring2Node.toXMLString());
// so, you may probably make use of reflection
// unless you need to reference dynamic members on the main timeline
}
}
}
Kommentare oben im Code Siehe:
function Ring1():String
{
return "Ring1() called!";
}
var Ring2:Function = function() : String
{
return "Ring2() called!";
};
Das Szenario für eine Dokumentenklasse der genannten Timeline so sein würde.
Erhalten Sie nicht einen addframescript-Fehler, wenn Sie versuchen, Code auf der Timeline zu schreiben, sowie eine Dokumentenklasse verknüpft haben? – loxxy
Nein. Ich habe es seit Dezember, als ich mit meinem Projekt angefangen habe, ohne jede Anspannung durchgezogen. Ich verwende eine Kombination aus Timeline-Code, Dokumentklassencode und benutzerdefinierten Klassen. – CodeMouse92