![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2004
Сообщений: 121
|
Добрый день.
делал карту во флеше. И столкнулся с такой проблемой: Накопилось на карте уже более 3000 объектов. И карта стала тормозить жутко. Как можно облегчить жизнь карте? ПОдумал, может создавать объекты только тогда, когда они в поле зрения должны быть. Есть файл с коориднатами этих объектов. Когда ролик загружается, он создает и размешает на карте эти объекты. Вот думаю, сделать что-нить с hitTest. Но как сделать, чтобы он по всей базе пробегал, и узнавал какие объекты сейчас в поле зрения должны быть? Или может как-нить подругому можно сделать? Добавлено через 21 минуту 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 проверяет столкновение этого объекта с объектами из массива. Какой-нить другой способ есть? Последний раз редактировалось Barzometr; 18.02.2009 в 19:16. |
![]() |
Часовой пояс GMT +4, время: 21:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|