![]() |
|
||||||||||
|
|||||
|
Регистрация: 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;
}
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;
}
}
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;
}
}
TypeError: Error #1009: Cannot access a property or method of a null object reference. В принципе понятно почему... несмотря на условия проверяющих принадлежность объекта info к определенному типу, компилятору не нравиться что объект в некоторых функциях может оказаться null'евым, однако по логике эти функции вызываться не будут... Все таки не хотелось бы менять всю архитектуру, есть ли выход из этой ситуации? |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
вызывается метод update() например следующим образом:
либо.... хотя информационных обектов может быть куча... важно, чтоб метод update определял какого типа информационный объект и запускал соответствующий приватный метод, но проблема в том, что компилятор ругается, т.к. несмотря на условия которые не позволят вызвать неприемлемый приватный метод, где info оказалось бы null Последний раз редактировалось XBEEN; 24.10.2008 в 18:25. |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
все спасибо проблема решена
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|