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

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

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

Регистрация: Dec 2007
Сообщений: 69
По умолчанию Проблема с приведением типов

Подскажите плз, как выйти из сложившейся ситуации...

Код в целевом классе, который является View'ом из паттерна MVC и наследуется от AbstractView
Код:
private function sprite:Sprite;
...
private public function createSprite():void
{
     sprite = new Sprite();
     target.addChild(sprite);
}
...
public function update(infoObj:Object):void
{

     if(infoObj is PrimaryData)
     {
           info = infoObj as PrimaryData;
	updatePrimaryProps(info);
     }
     else if(infoObj is SecondaryData)
     {
           info = infoObj as SecondaryData;
	updateSecondaryProps(info);
     }
}
private function updatePrimaryProps(info:*):void
{
     sprite.x = info.x;
     sprite.y = info.y;
}
private function updateSecondaryProps(info:*):void
{
    sprite.scaleX = info.scaleX;
    sprite.scaleY = info.scaleY;
}
Информационный объект 1
Код:
package 
{
     public class PrimaryData
     {
          public var x:Number;
          public var y:Number;
          public function PrimaryData(x:Number, y:Number)
          {
                this.x = x;
                this.y = y;
          }
}
Информационный объект 2
Код:
package 
{
     public class SecondaryData
     {
          public var scaleX:Number;
          public var scaleY:Number;
          public function SecondaryData(scaleX:Number, scaleY:Number)
          {
                this.scaleX = scaleX;
                this.scaleY = scaleY;
          }
}
Проблема состоит в следующем, когда модель вызывает у View'a метод update и передает экземпляр одного из информационных обектов, то в итоге компилятор жестко начинает ругаться...
TypeError: Error #1009: Cannot access a property or method of a null object reference.
В принципе понятно почему... несмотря на условия проверяющих принадлежность объекта info к определенному типу, компилятору не нравиться что объект в некоторых функциях может оказаться null'евым, однако по логике эти функции вызываться не будут...

Все таки не хотелось бы менять всю архитектуру, есть ли выход из этой ситуации?

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

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

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


 


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


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