Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-03-2007, 01:46   #1 (permalink)
(_!_)
 
Benutzerbild von fourtytwo
 
Registriert seit: Jul 2003
Ort: Frankfurt a.M.
Beiträge: 106
Allen Instanzen auf der Bühne ohne expliziten functionsaufruf extenden

hi,

ich weiß jetzt grade nicht mehr ob ich nen denkfehler habe oder ob das eventuell sogar ne blöde frage ist.

ist es möglich, theoretisch, jeden MovieClip, Textfield, Button, sprich alles was auf der bühne instanziiert ist mit einer klasse zu verbinden, OHNE das ich irgendetwas zusätzlich coden muß? sozusagen auf den konstruktor von allen sichtbaren elementen die mit interaktivität versehen werden können zugreifen...

zb habe ich eine klasse, die das object extendet. jedoch brauche ich immer noch einen initialisierungs-functionsaufruf, ähnlich wie die delegate-klasse.
diesen möchte ich umgehen.

PHP-Code:
class mx.utils.Delegate extends Object {
    
/**
    Creates a functions wrapper for the original function so that it runs 
    in the provided context.
    @parameter obj Context in which to run the function.
    @paramater func Function to run.
    */
    
static function create(obj:Objectfunc:Function):Function {
        var 
= function () {
            var 
target arguments.callee.target;
            var 
func arguments.callee.func;
            return 
func.apply(targetarguments);
        };
        
f.target obj;
        
f.func func;
        return 
f;
    }
    function 
Delegate(f:Function) {
        
func f;
    }
    private var 
func:Function;
    function 
createDelegate(obj:Object):Function {
        return 
create(objfunc);
    }

hier brauche ich den aufruf Delegate.create(a,b), zwar ohne DElegate selbst instanziieren zu müssen, aber aufrufen muß ich noch die function create.
den möchte ich mir schenken indem alle instanzen dies ohne expliziten aufruf selbst tun.

wenn ich aber so drüber nachdenke bedeutet das, daß ich auf die MC, TF, BTN klassen selbst zugreifen müsste, alleine schon um die benötigte klasse zu importieren.

gibts da ne lösung?

spät, hoffentlich verständlich. ansonsten danke fürs zuhören

olee


EDIT:

oh ****, sorry mod. ...das sollte wohl besser nach AS2

Geändert von fourtytwo (07-03-2007 um 01:47 Uhr)
fourtytwo ist offline   Mit Zitat antworten
Alt 07-03-2007, 06:28   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.134
Nein. Programmierung ist keine Zauberei.

Du musst zumindest mit Object.registerClass() Funktionalität einem UI-Element zuweisen. Funktionspointer á la Delegate.create() sind auch sehr reduziert, da bin ich aber nicht wirklich ein Freund von, weil ich es nicht mag Funktionalitäten einer Klasse ausserhalb von dieser zu implementieren. Diese beiden Szenarien gelten aber nur, wenn du nicht über die IDE eine Verlinkung zwischen Bibleothekssymbol und Klasse herstellst. Das ist der einfachste und für mich auch damit auch der effektivste Weg (und Scope Probleme kommen bei dieser Art der Programmierung gar nicht erst auf).
Omega Psi ist offline   Mit Zitat antworten
Alt 07-03-2007, 11:15   #3 (permalink)
(_!_)
 
Benutzerbild von fourtytwo
 
Registriert seit: Jul 2003
Ort: Frankfurt a.M.
Beiträge: 106
hi omega,

mir geht es hauptsächlich um instanzen die von hand aus der lib auf die stage gezogen werden. attache ich instanzen zur laufzeit ist es kein problem das mit Object.registerClass einer klasse zu zu weisen(wobei mir schon das zuviel ist)
mir gehts zb um die designer in meiner firma, die flashfilme basteln...den jungs und mädels zu erklären das sie jede instanz(was is das??) von MC,TF,BTN mit Object.registerClass einer klasse zugewiesen werden muß..... nicht so wirklich ne gute idee

anderes beispiel( auch wenns jetzt keinen sinn macht): jeder MC, TF, BTN instanz hat eine function 'traceme', die beim aufruf sich selbst zurück gibt. diese function wird schon im konstruktor von den klassen implementiert.

im besten fall soll das in schon produzierten,fertigen projekten funktionieren. also einfach noch einmal kompilieren und ab dann steht in jeder MC,TF,BTN instanz die methode 'traceme' zur verfügung

MC_instance.traceme() // return _level0.MC_instance


hoffe das ist verständlicher...
ist sowas machbar ohne die MC,TF und BTN klassen selbst anfassen zu müssen( womit die idee sich als nicht ausführbar erweisen würde...)?

schönen tag
fourtytwo ist offline   Mit Zitat antworten
Alt 07-03-2007, 12:23   #4 (permalink)
(_!_)
 
Benutzerbild von fourtytwo
 
Registriert seit: Jul 2003
Ort: Frankfurt a.M.
Beiträge: 106
Nach nochmaligem nachdenken und mittagessen

eigentlich muß es nicht über die klasse gemacht werden. eigentlich muß ich nur jede instanz erfassen, die in dem flashfilm veröffentlicht wird.
ich hatte auch schon die überlegung es mit einer for-in schleife auf _level0 zu lösen. jedoch möchte ich ja jeden MC,TF,BTN erfassen, käme als bei dieser lösung um filtern und rekursives seek-and-find nicht herum, da ich auch die letzte verschachtelte instanz erfassen will.
sobald der swf kompiliert/interpretiert wird und ich STRG-ALT-V/L drücke, werden alle objekte/variablen im output window gelistet. also gibt es eine möglichkeit an all die instanzen ranzukommen! für den flashplayer!
frage: komm ich da auch ran? ...gibt es eine möglichkeit dieses irgendwie zu erfassen um es in AS zu verarbeiten?

mit einer function die einmalig ausgeführt würde um alle objecte zu listen, aus denen ich mir dann die benötigten instanzen rausfiltern kann, könnte ich sehr zufrieden leben.

Geändert von fourtytwo (07-03-2007 um 12:29 Uhr)
fourtytwo 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:29 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele