Показать сообщение отдельно
Старый 19.01.2011, 18:11
zhoran вне форума Посмотреть профиль Отправить личное сообщение для zhoran Найти все сообщения от zhoran
  № 1  
Ответить с цитированием
zhoran

Регистрация: Dec 2010
Адрес: Химки МО
Сообщений: 95
По умолчанию Предок не приводится к наследнику. Почему?

Хочу расширить Array. Почитал Мука, посмотрел хелп. Сделал так:
Код AS3:
public dynamic class MyArray extends Array
{
 
  public function MyArray(... args)
  {
 
  }
 
  public function compact():Array {
    var arr:Array = this.filter(
      function (element:*, index:int, arr:Array):Boolean {
        return (element != null);
      })
    return arr;
  }
 
}
А это не работает:
Код AS3:
var my_arr:MyArray = [null, null, 2, 3];
//Пишет: Implicit coercion of a value with static type Array to a possibly 
//unrelated type utils:MyArray.
 
var my_arr:MyArray = MyArray ([null, null, 2, 3]); 
//Пишет rte: [Fault] exception, information=TypeError: Error #1034: 
//Ошибка типа Coercion: невозможно преобразовать []@156d291 в utils.MyArray
 
var my_arr:MyArray = [null, null, 2, 3] as MyArray;
// Не ругается, но my_arr равен null
как можно создать объект MyArray из объекта Array ?
и в чем разница ... as MyArray и MyArray (...) ?