Условный оператор ?: и оператор вычитания не дружат
четверг, январь 17, 2008Имеем следующий код:
- trace(”begin”);
- var bool:Boolean = true;
- var flea:Number = -(bool ? 10 : 20);
- trace(”flea: “+flea.toString());
При попытке компиляции во Flex 2 вы получите
“An internal build error has occurred. Please check the Error Log.” или
“1131: Classes must not be nested.”. Т.е., ничего работающего Вы не получите.
А Flash Вам вообще ничего не скажет, но в output Вы не увидите даже “begin”.
Это относиться только к ActionScript 3.0. В ActionScript 2.0 приведенный код скомпилируется как нужно.
P.S. Про приведенную ошибку во Flex 2 Вы можете почитать тут (на английском). Она появляется ещё в некоторых случаях.
