PDA

Просмотр полной версии : Диапазон переменной


willis83
19.12.2008, 11:16
У меня есть переменная которая хранит в себе значение угла, т.е. по логике эта переменная должна находиться в диапазоне от 0 до 360ти. Но по ходу мувика она уходит или в минус или за пределы 360. Для флэша впринципе всё равно, по геометрическим формулам он проводит угол по кругу и обрабатывает всё верно, но такое положение дел очень затрудняет работу с углом. Мне приходится циклически обрабатывать переменную примерно таким кодом:


if(a>360){a-=360};
if(a<0){a+=360};


Переменный у меня таких довольно много, поэтому просто неудобно работать с кодом.
Внимание вопрос: Существует ли во флэше что-то типа свойства переменных? Например в начале мы описываем "свойство" вышеуказанным кодом, а потом когда определяем переменную, то просто прикручиваем к ней это свойство, и в дальнейшем когда компилятор изменяет значение этой переменной, он перепроверяет свойство и если надо совершает необходимые действия с ней. Процессор это конечно не разгрузит, но на много облегчит работу с кодом. В каком-то языке такие свойства помоему есть, в каком не помню. Заранее спасибо:wacko:

silin
19.12.2008, 12:22
см. addProperty(prop, getFunc,setFunc)
или function get|set prop() - тоже самое для классов

this._angle=0;
function getAngle():Number{
return _angle;
}
function setAngle(val:Number){
val+=360;
val%=360;
_angle=val;
}

this.addProperty("angle", getAngle, setAngle);
angle=400;
trace("angle: "+angle);//40
angle=-20;
trace("angle: "+angle);//340;

willis83
19.12.2008, 14:22
Спасибо!