AS3: Как использовать оператор «как»? - PullRequest
0 голосов
/ 05 ноября 2010
var o:Object = {title: 'asad'};
var v:ImageItemVO = o as ImageItemVO;
var v:ImageItemVO = ImageItemVO(o); // throws an error

my ImageItemVO имеет публичную переменную с именем title.После выполнения этого кода «var v» будет нулевым.Зачем?Может кто-нибудь дать мне пример того, как заставить это работать?

1 Ответ

5 голосов
/ 05 ноября 2010

Оператор as используется для приведения объекта из одного типа к другому, но работает, только если объект может быть приведен таким образом.Если это не может, это даст вам null.Другой способ приведения (способ, которым вы выполняете это в последней строке), вместо этого выдаст вам ошибку, если объект не может быть приведен.

В этом случае вы вообще не хотите использовать приведение, приведениене работает таким образом.Вместо этого вы, вероятно, захотите сделать что-то вроде этого:

var v: ImageItemVO = new ImageItemVO();
v.title = "asad";

или если есть еще свойства, и вы не хотите вводить их все вручную:

var o: Object = { ... };
var v: ImageItemVO = new ImageItemVO();
for (var key: String in o) {
  v[key] = o[key];
}

Код скопирует все свойства в o в v.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...