| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Klugscheisser Registriert seit: Jun 2001 Ort: Düsseldorf
Beiträge: 1.354
| extends prüfen
Kann ich prüfen, ob eine Klasse eine Andere extended? Also idealerweise etwa so in der Art: Code: if(ExtClass extendsClass BasicClass){
trace('is extended from BasicClass');
} |
| | |
| | #3 (permalink) |
| Klugscheisser Registriert seit: Jun 2001 Ort: Düsseldorf
Beiträge: 1.354
|
Im Moment überprüfe ich mit getQualifiedSuperclassName. Das ist zwar recht unkompliziert, funktioniert aber leider nur über eine Vererbungsstufe.´ Mit describeType werde ich mich mal auseinandersetzen, falls das nix hilft, versuch ich was über Rekursion zu reißen. Danke Dir! |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jun 2003
Beiträge: 194
|
bin mir gerad nicht sicher, aber das müsstest du doch mit "is" herausfinden können. also: PHP-Code: habs aber nicht probiert. ![]() gruß maschka |
| | |
| | #5 (permalink) |
| voidboy Registriert seit: Sep 2004 Ort: München
Beiträge: 5.588
|
Nein mit "describeType" bist du schon richtig. Der Ansatz mit "is" bringt einen nichts, da man schon von vornherein alle Klassen kennen muss auf die man testet. Geändert von rendner[i] (02-09-2008 um 09:19 Uhr) |
| | |
| | #6 (permalink) |
| Klugscheisser Registriert seit: Jun 2001 Ort: Düsseldorf
Beiträge: 1.354
|
@maschka: das funktioniert leider auch nur mit Instanzen, was für mich leider nicht infrage kommt (s.o.). Trotzdem danke! ![]() Ich hab mir jetzt eine rekursive Function geschrieben, die erledigt das für meine Zwecke ganz OK: Code: import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedSuperclassName;
import flash.utils.getQualifiedClassName;
function hasAncestor( orphan:Class, ancestor:Class ) :Boolean {
var superclassName:String = getQualifiedSuperclassName(orphan);
var ancestorClassName:String = getQualifiedClassName(ancestor);
if (superclassName == null) return false;
if (ancestorClassName == null) return false;
if (superclassName == ancestorClassName) return true;
return hasAncestor( Class(getDefinitionByName(superclassName)), ancestor );
} Geändert von T.Decay (02-09-2008 um 11:42 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |