Вход

Просмотр полной версии : [AS2] Типизация дочерних объектов


Psycho Tiger
16.11.2007, 06:55
Чтож, попробуем обьяснить что я имею ввиду.
Оьявляем обычную переменную

var str:String=new String();

Вроде как этот код типизирован :yahoo: :D XD

Где то читал, что в хорошем тоне хранить множество разных значений в обьектах...



var obj:Object = new Object();
obj.value=5;


Создали обьект, в свойстве value присвоили 5.
Но типизации во 2 строчке нет!

вариант:


var obj:Object = new Object();
with (obj){
value=5;
}


Но ещё где то читал, что конструкция with сильно тормозит флэшку, да и код ненаглядный.

Подскажите, как типизировать значение в обьектах? (Дочерних мувиклипах и т.д.)

screamge
16.11.2007, 07:25
Объявлять простые типы не нужно, я имею в виду:

var str:String=new String();


Что касается самого вопроса то в АС2 на уровне языка этого сделать не выйдет, разве что при добавлении в массив или объект значения проверять его тип.

В любом случае записи при чтении можно приводить к нужному типу.

udaaff
16.11.2007, 09:10
вариант:


var obj:Object = new Object();
with (obj){
value=5;
}


При помощи with в объекте нельзя поля создавать.

Но ещё где то читал, что конструкция with сильно тормозит флэшку, да и код ненаглядный.
Врядли она тормозит что-то. Только читаемость порой улучшает и писанину сокращает. Особенно при рисовании.

alexcon314
16.11.2007, 09:35
var obj:Object=new Object()
obj.val1 = String(5);
obj.val2 = Number(5);
trace("Тип данных obj.val1 "+typeof obj.val1+", 1+obj.val1 = " +(1+obj.val1))
trace("Тип данных obj.val1 "+typeof obj.val2+", 1+obj.val2 = " +(1+obj.val2))
//
var obj = {val:null,val:null}
with (obj){
val=5;
}
trace(obj.val)

CrazyFlasher
16.11.2007, 11:52
зачем вообще эта width? куда лучше так:

var obj:Object = new Object({
value:5,
haha:20
});

Psycho Tiger
16.11.2007, 12:22
Понятно, спасибо.