Nur in Pseudo-Code, um einen möglichen Weg, um mit diesem Problem umzugehen. auf der Timeline:
import com.fruits.Fruit;
import com.fruits.Melon;
import com.fruits.Apple
var fruit_1:Melon = new Melon();
var fruit_2:Apple = new Apple();
if(fruit_1 is Melon){
trace("anyway my SuperclassName is : " + fruit_1.getType());
trace (fruit_1.getMyType());
trace("");
}
if(fruit_2 is Apple){
trace("anyway my SuperclassName is : " + fruit_2.getType());
trace (fruit_2.getMyType());
trace("");
}
in com.Fruit.as:
package com.fruits {
public class Fruit {
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;
import flash.utils.getQualifiedSuperclassName;
public function Fruit() {
trace ("I'm a Fruit");
}
public function getType():String{
var type:String = getQualifiedSuperclassName(this)
var str:String = (type);
return str;
}
}
}
In com.Melon:
package com.fruits {
public class Melon extends Fruit {
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;
import flash.utils.getQualifiedSuperclassName;
public function Melon() {
super();
trace ("Melon says : ");
trace (" because I'm Fruit and not happy to be a Melon");
trace("");
}
public function getMyType():String{
var type:String = getQualifiedClassName(this)
var str:String = ("Im a " + type);
trace("Class said : I worth nothing because I'm an Fruit and not proud to be an Melon");
str += "\n" + "but in fact I'm a " + getQualifiedSuperclassName(this)
return str;
}
}
}
In com.Apple:
package com.fruits {
public class Melon extends Fruit {
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;
import flash.utils.getQualifiedSuperclassName;
public function Melon() {
super();
trace ("Melon says : ");
trace (" because I'm Fruit and not happy to be a Melon");
trace("");
}
public function getMyType():String{
var type:String = getQualifiedClassName(this)
var str:String = ("Im a " + type);
trace("Class said : I worth nothing because I'm an Fruit and not proud to be an Melon");
str += "\n" + "but in fact I'm a " + getQualifiedSuperclassName(this)
return str;
}
}
}
Dies ist nur eine Idee, sagen Sie mir mehr über Ihr Ziel und wenn diese Ihnen helfen kann ... Mit freundlichen Grüßen Nicolas.
PS: Es tut mir leid, aber mein Englisch ist wirklich schlecht. also habe ich versucht, mir das Problem zu erklären ...
Vielleicht können Sie indexOf vergessen und addChild jederzeit verwenden Sie wollen ein Objekt/Instanz über einen anderen setzen .... Sie müssen also nicht überprüfen die Indizes. addChild (ein altes Kind) wird das "alte Kind" auf den letzten Index setzen (über die anderen Instanzen). Entschuldigung, ich habe Ihren Code nicht geschrieben, aber der Titel besagt, dass Sie überprüfen möchten, ob die Frucht eine Melone oder ein Apfel ist ... Sorry, wenn ich falsch verstanden habe. :(
Was ist 'appelsOnstage'? – null
ich hier etwas mehr Code zu setzen. AppelsOnstage ein Array ist die Appels auf der Bühne enthält. – Henrique
array_fruit.indexOf (currentfruit) = -1 die ganze Zeit – Henrique