![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2004
Сообщений: 121
|
Добрый день.
Наклепал карту. Карта. Подгружаем объекты. Расставляем. ничего сложного. Приметив. И почему-то тормозит жутко. вот сайт http://onlinevdonsk.ru вот код. var mouseListener:Object = new Object(); mouseListener.onMouseWheel = function(delta:Number) { _root.zoom_obj.zoom._x += delta; if (_root.zoom_obj.zoom._x+delta>100) { _root.zoom_obj.zoom._x = 100; } if (_root.zoom_obj.zoom._x+delta<10) { _root.zoom_obj.zoom._x = 10; } }; Mouse.addListener(mouseListener); var loadListener:Object = new Object(); loadListener.onLoadComplete = function(target_mc:MovieClip):Void { bd_load_xml_street.load("street.xml"); bd_load_xml_map.load("map.xml"); }; var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(loadListener); mcLoader.loadClip("street.swf", _root.map.map2.array_swf); mcLoader.loadClip("map.swf", _root.map.map2.map_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"); _root.saveX = -10; _root.saveX = -10; creatObj(); SI_reSize = setInterval(creatObj, 500); }; var bd_load_xml_map = new XML(); bd_load_xml_map.onLoad = function() { tmp_map = String(bd_load_xml_map.firstChild); _root.bd_xml_swf_map = new Array(); _root.bd_xml_swf_map = tmp_map.split("\r\n"); _root.saveX = -10; _root.saveX = -10; creatObj(); }; creatObj = function () { if ((_root.map.map2._x != _root.saveX) or (_root.map.map2._y != _root.saveY) or (_root.map._xscale != _root.saveXs) or (_root.map._yscale != _root.saveYs)) { _root.mc_hittest._width = Stage.width+210; _root.mc_hittest._height = Stage.height+210; _root.line_interface2._y = Stage.height-15; _root.scroll_interface2._y = Stage.height-15; _root.line_interface._x = Stage.width-17; _root.scroll_interface._x = Stage.width-17; 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((Math.ceil(Number(tmp_street[1])+_root.map.map2._x+340)), Math.ceil((Number(tmp_street[2])+_root.map.map2._y+185)))) { _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]; _root.map.map2.array_swf[tmp_street[0]].onEnterFrame = function() { if (!_root.mc_hittest.hitTest(this)) { removeMovieClip(this); } }; } } for (i=0; i<_root.bd_xml_swf_map.length; i++) { tmp_map = _root.bd_xml_swf_map[i].split("|"); if (_root.mc_hittest.hitTest((Math.ceil(Number(tmp_map[1])+_root.map.map2._x+340)), Math.ceil((Number(tmp_map[2])+_root.map.map2._y+185)))) { _root.map.map2.map_swf.attachMovie(tmp_map[0], tmp_map[0], i); _root.map.map2.map_swf[tmp_map[0]]._x = tmp_map[1]; _root.map.map2.map_swf[tmp_map[0]]._y = tmp_map[2]; _root.map.map2.map_swf[tmp_map[0]].onEnterFrame = function() { if (!_root.mc_hittest.hitTest(this)) { removeMovieClip(this); } }; } } } _root.saveX = _root.map.map2._x; _root.saveY = _root.map.map2._y; _root.saveXs = _root.map._xscale; _root.saveYs = _root.map._yscale; }; _root.onMouseDown = function() { startDrag(_root.map.map2); }; _root.onMouseUp = function() { stopDrag(); }; stop(); Объекты создаем только на основе видимой части поля. Т.е. не все сразу, а только те, у кого координаты соответствуют видимой части поля. Раньше сразу все объекты грузились и создавалась вся карта. Объектов около 3500. Я видел флешки, где еще больше объектов было и ничего. В чем прокол мой? Или может как-то не так реализовал это? заранее спасибо .Добавлено через 5 минут fps 24 стоит. В настройках. |
![]() |
Часовой пояс GMT +4, время: 12:58. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|