Доброго времени суток!
Я вообще php - разработчик, но вот возникла у меня необходимость написать некоторую преблуду на флэше.
Никак не могу разобраться с типами переменных. Т.е. почему то переменные объявленные в начале скрипта как :Number при операции сложения складываются как строковые о_О (строк дополняется второй). Собственно вопрос: это косяк языка или я что то не правильно делаю?

Код AS1/AS2:
var main_url = "http://static.my_site.ru/";
var u_name:String = _level0.user_name;
var u_level:Number = int(_level0.user_level);
var u_clan:String = _level0.user_clan;
var hp:Number = int(_level0.hp);
var max_hp:Number = int(_level0.max_hp);
var mana:Number = int(_level0.mana);
var max_mana:Number = int(_level0.max_mana);
var hp_speed:Number = _level0.hp_speed_up;
var mana_speed:Number = _level0.mana_speed_up;
var in_action:Boolean = _level0.in_action;
texta.text = u_name;
function set_stats(){
user_hp.text = int(hp) + " / " + int(max_hp);
user_mana.text = int(mana) + " / " + int(max_mana);
textl.text = "[" + u_level + "]";
_root.hp_bar._width = int(hp / max_hp * 135);
_root.mana_bar._width = int(mana / max_mana * 112);
}
function recieveFromJS(t) {
if(t.hp != "") hp = int(t.hp);
if(t.max_hp != "") max_hp = int(t.max_hp);
if(t.mana != "") mana = int(t.mana);
if(t.max_mana != "") max_mana = int(t.max_mana);
if(t.user_level != "") u_level = int(t.user_level);
if(t.in_action != "") in_action = t.in_action;
}
function stats_up(){
if(!in_cation){
if(hp < max_hp) hp = Number(hp) + Number(hp_speed);
if(mana < max_mana) mana = Number(mana) + Number(mana_speed);
}
set_stats();
}
setInterval(stats_up, 1000);
_root.user_home_button.onRelease = function() {
flash.external.ExternalInterface.call("set_turn", "user_home");
};
flash.external.ExternalInterface.addCallback("set_vars",null,recieveFromJS);
тут начальные данные подгружаются через flashvars, далее данные могут подгружаться через externalinterface в произвольный момент времени.
на данный момент я вродебы победил большую часть глюков указывая тип данных при КАЖДОЙ!!! операции.
остался одн косяк с кторым бьюсь второй день. это переменная in_action. вот не могу заставить ее работать, а в чем косяк не пойму.