|
|
|||||
Регистрация: Nov 2010
Сообщений: 430
|
Расширение класса
Наверно вопрос глупый но все же:
хочу чтобы меш со мной здоровался: package{ import alternativa.engine3d.objects.Mesh; public class Mesh2 extends Mesh{ public function Mesh2(){ // } function sayHello():void{ trace("Hello!"); } } } [..] parser.parse(event.target.data, "model/texture"); for(var i=0; i<parser.objects.length; i++) { var mesh:Mesh2 = new Mesh2; // меши модели mesh = parser.objects[i] as Mesh2; mesh.sayHello(); } [..] Сtrl+Enter ⇒ появляется ошибка (при попытке mesh.sayHello) Где я торможу? И что подправить, чтоб заработало? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Что вы хотели сказать первой строкой в цикле?
|
|
|||||
Видимо, что-то у вас не работает в методе parser.parse(event.target.data, "model/texture");, потому что при попытке сослаться на parser.objects[i], вы получаете ссылку на null, о чем вам и говорит ошибка. А у null, очевидно, нет метода sayHello(). И да, зачем вы создаете новый объект Mesh2, в строчке, о которой говорит etc, если в следующей строчке вы уже привязываете к ссылке mesh что-то другое?
Про оформление кода: |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
bav, нет, null получается при привидении Mesh к Mesh2.
|
|
|||||
Регистрация: Nov 2010
Сообщений: 430
|
Null получается когда, приводится Mesh к Mesh2, т.к. если трейсить, то parser.objects содержит ровно столько объектов, сколько нужно )
Создание нового объекта. Причем если писать то все отлично работает. Последний раз редактировалось Srednas; 17.03.2011 в 12:45. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Srednas, а зачем вы его создаёте, если на следующей строке вы берёте меш из массива в эту же переменную?
Почему вы решили, что массив будет содержать Mesh2, а не Mesh? |
|
|||||
Регистрация: Nov 2010
Сообщений: 430
|
Цитата:
В массиве будут содержаться меши. Но ведь и Mesh2 "тоже меш", т.к. является наследником. Или нет? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Послушайте, если вы вырастили яблоки синего цвета у себя на подоконнике, то это не означает, что яблоки, лежащие на полках в соседнем магазине, будут синими и с вашего подоконника.
|
|
|||||
Регистрация: Nov 2010
Сообщений: 430
|
Цитата:
Хорошо. Подскажите тогда как сделать так, чтобы у объектов из цикла появился метод sayHello()? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Переписать парсер, чтобы он в objects помещал ваши Mesh2.
|
Часовой пояс GMT +4, время: 12:47. |
|
« Предыдущая тема | Следующая тема » |
|
|