Добрый день.
делал карту во флеше. И столкнулся с такой проблемой:
Накопилось на карте уже более 3000 объектов. И карта стала тормозить жутко.
Как можно облегчить жизнь карте?
ПОдумал, может создавать объекты только тогда, когда они в поле зрения должны быть.
Есть файл с коориднатами этих объектов.
Когда ролик загружается, он создает и размешает на карте эти объекты.
Вот думаю, сделать что-нить с hitTest.
Но как сделать, чтобы он по всей базе пробегал, и узнавал какие объекты сейчас в поле зрения должны быть?
Или может как-нить подругому можно сделать?
Добавлено через 21 минуту

Код AS1/AS2:
Stage.scaleMode = "noScale"
Stage.align = "TL";
var loadListener:Object = new Object();
loadListener.onLoadComplete = function(target_mc:MovieClip):Void {
bd_load_xml_street.load("street.xml");
};
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);
mcLoader.loadClip("street.swf", _root.map.map2.array_swf);
var bd_load_xml_street = new XML();
bd_load_xml_street.onLoad = function() {
tmp_street = String(bd_load_xml_street.firstChild);
_root.bd_xml_swf_street = new Array();
_root.bd_xml_swf_street = tmp_street.split("\r\n");
creatObj();
SI_reSize = setInterval(creatObj, 100)
};
creatObj = function () {
_root.mc_hittest._width = Stage.width
_root.mc_hittest._height = Stage.height
for (i=0; i<_root.bd_xml_swf_street.length; i++) {
tmp_street = _root.bd_xml_swf_street[i].split("|");
if (_root.mc_hittest.hitTest(tmp_street[1],tmp_street[2],true)) {
_root.map.map2.array_swf.attachMovie(tmp_street[0], tmp_street[0], i);
_root.map.map2.array_swf[tmp_street[0]]._x = tmp_street[1];
_root.map.map2.array_swf[tmp_street[0]]._y = tmp_street[2];
}
}
};
ну вот что получилось.
На поле есть объект, который масштабируется по размеру окна.
hitTest проверяет столкновение этого объекта с объектами из массива.
Какой-нить другой способ есть?