Wszystkie obiekty w actionscript3.0 dziedziczą po klasie Object, ale kompilator actionscript3.0 nie jest wystarczająco inteligentny, aby to zrozumieć.Dlaczego upośledzenie klasy actionscript3.0 kończy się niepowodzeniem (czasami)?
spojrzeć na poniższy kod:
package{
public class TestOne{
public function TestOne(){
var t2: TestTwo = new TestTwo();
trace(t2.toString()); // COMPILE TIME ERROR
trace((t2 as Object).toString(); // [object TestTwo]
var t22 : * = new TestTwo();
trace(t22.toString()); // [object TestTwo]
trace((t22 as Object).toString(); // [object TestTwo]
}
}
}
class TestTwo{}
t2.toString() daje błąd kompilacji czas, ponieważ typ danych t2 nie obejmuje toString(). Jednak t2 zawiera toString(), ponieważ jest to obiekt jako (t2 jako obiekt) .toString() pokazuje. Jeśli nie podamy zmiennej typu danych, np. T22, problem nie zostanie nigdy napotkany. Dlaczego nie można cofnąć kompilatora actionscript3.0, że t2 to zarówno TestTwo, jak i Object?
Czy chodziło Ci o linie 9 i 10, aby wyśledzić zmienną "t22" zamiast "t2"? – aaaidan
W twoim przykładzie jest kilka literówek, ale pytanie jest naprawdę interesujące ... –