![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2009
Сообщений: 77
|
не понимаю почему не удаётся привести тип объекта к нужному. Код ниже, MainClass - основной.
package { import flash.display.*; public class MainClass extends Sprite { private var zzz:Sprite; public function MainClass() { zzz = new TestClass(); TestClass(zzz); zzz.myMethod(); addChild(zzz); } } } package { import flash.display.*; public class TestClass extends Sprite { private var whiteBack:Shape; public function TestClass() { whiteBack = new Shape(); whiteBack.graphics.beginFill(0x999999, 1); whiteBack.graphics.drawRect(0, 0, 150, 100); addChild(whiteBack); } public function myMethod() { whiteBack.x+=10; } } } в моём понимании zzz сначала Sprite, потом TestClass(zzz) - приводит zzz к типу TestClass и нам становятся доступны все методы этого класса. Но методы не доступны, почему? И почему пишут, что zzz ещё Sprite, разве он уже не TestClass? если мы заменим строку zzz.myMethod(); на if (zzz is TestClass){zzz.myMethod();} выходит та же ошибка, получается zzz имеет уже тип TestClass, но методы этого класса вызвать не может. Как же так? Последний раз редактировалось filepark; 28.09.2010 в 06:20. |
![]() |
Часовой пояс GMT +4, время: 02:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|