Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 26.02.2009, 18:25
Barzometr вне форума Посмотреть профиль Отправить личное сообщение для Barzometr Найти все сообщения от Barzometr
  № 1  
Ответить с цитированием
Barzometr

Регистрация: Jun 2004
Сообщений: 121
По умолчанию тормозит карта. ЦП проца под 40%

Добрый день.

Наклепал карту.

Карта. Подгружаем объекты. Расставляем.
ничего сложного. Приметив.

И почему-то тормозит жутко.

вот сайт http://onlinevdonsk.ru


вот код.

Код AS1/AS2:
 
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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.