![]() |
Ошибка при передаче параметра в функцию
Привет еще раз. Помогите понять вот что:
Код:
|
Вы думаете, что интерпретатор сам прокастит target в Sprite?
Код:
test(e.target as Sprite); |
Я думал, что интерпретатору знает, что target является спрайтом. Ведь
Код:
trace (e.target) |
Вы пытаетесь передать в функцию абстракный объект, вместо Sprite. То, что ссылка указывает на Sprite, компилятор ещё не знает.
|
Ок. Спасибо, __etc. Запомню это, хотя не понятно все равно - если компилятор не знает, то кто же трэйсит тогда [object Sprite]?? И если передавать просто объект Object, то почему работает - ведь компилятор же не знает, что я передаю DisplayObject, почему пропускает тогда без ошибки? И что такое абстрактный объект? И откуда вы все это знаете?
|
Трейс делает интерпретатор, а не компилятор. Ошибка у вас ещё на стадии компиляции, потому что компилятор проверяет все типы и не даст скомпилировать некоррентный код.
Из документации я все это знаю и из простейшего понятия типизации, а также того, что Object — dynamic. |
И вообще то Object является базовым классом для всех классов в АС3.
|
Все, догнал. Спасибо за помощь! Пойду документацию зубрить.
|
Волгоградец, я всегда пишу так
Код:
(e.target as Sprite).addEventListener... |
| Часовой пояс GMT +4, время: 11:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.