Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.01.2007, 19:21
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 1  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
По умолчанию глюки с конструктором

Flash MX 2004

Сделал несколько собственных классов для манипуляции с данными. Глюки лезут такие, что мама не горюй! Сразу предупрежу, что программиранием занимаюсь професионально лет 15, а с флешом только стал разбираться.

Дерево классов такое:
Код:
city.Cell
|- city.Terrain
|- city.Object
     |- city.Location
           |- city.City
В одной из функций внутри класса city.Location вызывается конструктор city.Terrain: terr=new city.Terrain(...)
Так вот, конструктор этот упрямо возвращает undefined - ни на что при этом не ругаясь. Я перерыл весь код вдоль и поперек - попытался составить пример, достаточный для того, чтобы разместить здесь - в примере все работает Причем, попытки расстановки создания объекта в другие куски кода (var terr=..., trace(terr)) везде дают underfined.

Вычистил все классы до трех функций, чтобы локализовать проблему. В какой-то момент глюк ушел - объекты стали создаваться. Начал потихоньку восстанавливать код - и вот снова - конструктор просто не вызывается ))

До этого уже сталкивался с такой же проблемой (не отрабатывает конструктор), когда пытался создать класс в одном package путем наследования класса из другого package. В прошлый раз просто перенес наследуемый класс в package предка, и все заработало. Здесь все классы - в одном пакете.

Очевидно, что наткнулся на какой-то "недокументированный глюк" флеша Причем, сволочь не ругается даже ни на что, а просто игнорирует вызов конструктора

Соотв. ВОПРОС: может быть кто-нибудь сталкивался с подобными глюками с классами и по какому колесу надо постучать, чтобы они пропали? или что хотя бы искать?

Приводить полный код смысла не имеет - слишком большой, чтобы разобраться, да и дело не в коде, походу - код я вылизал, ошибок там вроде нет...

Заранее благодарен за любую подсказку!

Старый 24.01.2007, 19:24
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Object — стандартный класс флеша. У тебя просто возник конфликт.
Переименуй Object в Building, например.

Старый 24.01.2007, 19:30
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 3  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
ой, сорри! ошибся, когда писал пост - уже переименовал: city.cityObject - не в этом дело

Старый 24.01.2007, 19:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Лучше заюзать директивы import city.Terrain; и создавать new Terrain. Хотя это не особо влияет. Посмотри, чтобы у тебя не было переменных с именем city, т.е. совпадающим с именем пакета.

Старый 24.01.2007, 19:43
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 5  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
в смысле - глобальных переменных? это вариант! есть одна такая... щас попробую кильнуть

Старый 24.01.2007, 19:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А ещё и глобальная есть?
Нигде никаких переменных с именем city быть не должно ни в коем случае.

Старый 24.01.2007, 19:45
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 7  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
ЙЙЙЙЙЙЙЙЙЙЕЕЕЕЕЕС! вот уж не подумал бы никогда! спасибо огромное! сколько времени я убил на эту фигню - просто жуть... вот к чему приводят полуколеночные реализации языков программирования - такой вот коллапс namespace
еще раз спасибо за помощь!

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:19.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.