ГлавнаяActionScript 3 — «100 советов» › Двойное объявление переменной

Двойное объявление переменной

June 19th, 2006
В ActionScript 1 и 2 можно было объявить одну переменную дважды в одной области видимости и это не вызывало ошибки. Например:

Код:
// ActionScript 1 и 2 var i:Number = 1; var i:String = 2;

В ActionScript 3 так нельзя. Вы можете только один раз объявить переменную в одной области видимости. Так же нельзя изменить тип переменной.

Код:
// ActionScript 3 var i:Number = 1; var i:String = 2; // ERROR: duplicate definition or undefined property

В ситуации, где переменная используется в разных блоках for или if, вы должны объявить ее до блока:

Код:
// Это НЕВЕРНО для ActionScript 3 // (но работает в AS1 и AS2) if (my_btn.enabled == true) { var returnValue:Number = 1; }else{ var returnValue:Number = 0; } if (provideAsString == true) { var returnValue:String = "1"; }else{ var returnValue:String = "0"; }

Правильно для AS3 в данной ситуации будет так:

Код:
// ПРАВИЛЬНО для ActionScript 3 var returnValueNum:Number; var returnValueStr:String; if (my_btn.enabled == true) { returnValueNum = 1; }else{ returnValueNum = 0; } if (provideAsString == true) { returnValueStr = "1"; }else{ returnValueStr = "0"; }

Если же неприемлемо использование двух переменных и обязательно должна быть одна, которая должна принимать как числовое значение так и строку, нужно использовать универсальный тип переменных *

Код:
// Также ПРАВИЛЬНО для ActionScript 3 var returnValue:*; if (my_btn.enabled == true) { returnValue = 1; }else{ returnValue = 0; } if (provideAsString == true) { returnValue = "1"; }else{ returnValue = "0"; }

Категория: ActionScript 3 — «100 советов» Ярлыки: ,

Смотрите также

Директива include mouseEnabled и блокирование событий
  1. Пока без комментариев.
  1. Пока нету.