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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.07.2007, 19:47
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 1  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
По умолчанию Почему виснет флешка?

Я создаю игру, пока получается всё кроме 1 вещи - почемуто виснет флэш при выполнении некоторых кодов, пишет И"з-за скрипта, флэш ролик будет выполняться очень медленно. Остановить выполнение сценария?" . Причем в них совершенно нет ничего такого, отчего флэш могбы виснуть.
По теории так быть недолжно.Посмотрите пожалуйста исходник.
http://upload2.net/page/download/mGc...tform.fla.html
Коды при которых виснет флэш я выделил серым. 1 код в главной временной шкале, а 2 в клипе "enemy11".
__________________
Peace !!!

Старый 16.07.2007, 20:01
DJ_ManiaC вне форума Посмотреть профиль Отправить личное сообщение для DJ_ManiaC Найти все сообщения от DJ_ManiaC
  № 2  
Ответить с цитированием
DJ_ManiaC
 
Аватар для DJ_ManiaC

Регистрация: Aug 2003
Адрес: Владивосток
Сообщений: 141
Отправить сообщение для DJ_ManiaC с помощью ICQ
У меня почему-то не хочет открываться твой файл. Какая версия Флеша? Флешки и вообще программы виснут в основном из-за бесконечных циклов. Ты проверь если у тебя в коде есть циклы, то выполняются ли условия для них. Если условия не будут выполняться, то это будет бесконечный цикл и соответственно зависание.
__________________
Если долго мучится, что-то да получится :)

Старый 16.07.2007, 20:18
ToXICus вне форума Посмотреть профиль Отправить личное сообщение для ToXICus Посетить домашнюю страницу ToXICus Найти все сообщения от ToXICus
  № 3  
Ответить с цитированием
ToXICus
 
Аватар для ToXICus

Регистрация: May 2006
Адрес: налево от Лондона
Сообщений: 447
Отправить сообщение для ToXICus с помощью ICQ
Возможно также, что твой комп не в состоянии обработать цикл определеного кол-ва. Я, например на пне третьем циклом прибавлю к переменной +1 10000 раз, то увижу такое же сообщение.
__________________
Чтоб понять, что ничего не знаешь - учись.

Старый 16.07.2007, 21:25
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 4  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
Флэш у меня 8. Азу на компе стоит 512, да и дело не в нём.
Циклов у меня нет. Всё работает идеально, до того как в действие вступает 1 из 3 кодов.
1)
Код:
if (hit(bс, level)) {
		_root._y -= gravity/1.3;
		bc._y -= gravity/1.3;
		bu._y -= gravity/1.3;
		bd._y -= gravity/1.3;
		br._y -= gravity/1.3;
		bl._y -= gravity/1.3;
		panel._y -= gravity/1.3;
		fon1._y -= gravity/1.3;
	}
Hit это функция проверки пересечения, bc.br.bl и т.д. - ролики, этот же код работает, но вместо bc вначале стоит bd.
2)
Код:
	if (this.hitTest(_root.bc)) {
		_root.gotoAndPlay(2);

	}
На втором кадре только stop и всё. Без gotoAndPlay всё работает.
3)
Код:
if (hit(bd, enemy11)) {
	enemy11.swapDepths(1001);
	enemy11.removeMovieClip();
	}*/
Причом дело не в удаленни клипа enemy11, я убирал эти строки, оставлял только проверку(таких у меня 4, и все работают хорошо), всё равно висло.
В чом дело немогу понять.

А кстати, что пишет когда неоткрывается? Я сделал "сохранить и сжать" может из-за этого?
__________________
Peace !!!


Последний раз редактировалось Gh >k; 16.07.2007 в 21:34.
Старый 17.07.2007, 00:18
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Первая мысль - в твоей программе под 200000 hitTest-ов за раз вызывается (в функции hit) Пом это дохрена - пошоруди в этой функции

Старый 17.07.2007, 03:46
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 6  
Ответить с цитированием
Torero
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Диспетчер задач показывает загрузку процессора 99% - это жэсть.. Вероятно тот блок просто-напросто добивает систему..))

Старый 17.07.2007, 04:23
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
200000 я не нашел, от 442 до 999 за раз, но все равно это много, а учитывая фпс 120, вобще ужас. Флешка на моем Core 2 Duo 6700 конечно не виснет, но подтормаживает, и одно ядро грузит по полной.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 17.07.2007, 05:49
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 8  
Ответить с цитированием
Torero
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
попытался вникнуть в код... мама рОдная...
1.panel.power.text обновлять 120 раз в секунду не стоит.(равно как и все остальное)

2.Все эти bc,br,bl... нужно запихнуть внутрь thisball_mc и писать thisball_mc._x+=** вместо того чтобы двигать их по отдельности. А вообще, лучше избавься от них.

3.нафига нужна ф-я hit я вообще не понимаю. по-моему никто еще не отменил конструкции типа if (thisball.hittest(level)){ здесь в неск строчек без всяких bc,br..можно проверить: какая из сторон столкнулась с level-ом }
3а)если уж используешь bl/br, то замени их на простые дуги, вместе образующие круг.

4.Пропиши функции moveThisBallRight(),moveThisBallLeft()... и используй их при столкновениях и нажатиях, либо вообще ужми код до 1й ф-ии moveThisBall

5,6,7,.........∞

З.Ы.2iNils: ответь пожалуйста на мой вчерашний вопрос по поводу шрифтов и памяти - понять хочу.


Последний раз редактировалось Torero; 17.07.2007 в 08:40.
Старый 17.07.2007, 23:04
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 9  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
Цитата:
1.panel.power.text обновлять 120 раз в секунду не стоит.(равно как и все остальное)
Ну насчот fps я объясню. Я хотел чтобы шар спускался со скоростью но плавно, без прлетаний в землю. Но сколько бы я не увеличивал fps, шар спускался медленно, я поставил макс - бестолку, а потом я просто забыл его вернуть в нормальное состояние.
Цитата:
2.Все эти bc,br,bl... нужно запихнуть внутрь thisball_mc и писать thisball_mc._x+=** вместо того чтобы двигать их по отдельности. А вообще, лучше избавься от них.
Функция Hit не может проверять пересечение клипа 1-го уровня и 2-го уровня, я даже создал тему http://www.flasher.ru/forum/showthread.php?t=98578 чтобы узнать почему так .
Цитата:
3.нафига нужна ф-я hit я вообще не понимаю. по-моему никто еще не отменил конструкции типа if (thisball.hittest(level)){ здесь в неск строчек без всяких bc,br..можно проверить: какая из сторон столкнулась с level-ом }
Чтобы пользоваться hitTest-ом нужно описывать пересечение с каждым объектом, и они будут только прямоугольной формы, а с этой функцией можно просто рисовать что хочешь и не добавлять каждый раз код.
Цитата:
4.Пропиши функции moveThisBallRight(),moveThisBallLeft()... и используй их при столкновениях и нажатиях, либо вообще ужми код до 1й ф-ии moveThisBall
Код от этого меньше не станет. Покрайней мере я пытался.
и объясни пожалуйста остальные -4 ,5 ,6 ,.... может чтонибудь исправлю.
Проблема была не в fps и множественных провеках.У меня 512 азу и 2.4 проц, невиснет совсем когда я исправил глюки:
в 1 случае я просто удалил код и написал его же заново-точно такойже, и ЭВРИКА!!!! - перестало виснуть.
во 2 случае место gotoAndPlay я стал убавлять переменную lives и потом уже использовал gotoAndPlay и тоже перестало виснуть, хотя в причинах я неразобрался досихпор. Fps по прежнему 120, и кстати, почему он так медленно падает? по скрипту он должен палать на 480 пикселей, а там явно не дотягивает.
__________________
Peace !!!


Последний раз редактировалось Gh >k; 17.07.2007 в 23:06.
Старый 18.07.2007, 08:58
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 10  
Ответить с цитированием
Torero
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Цитата:
Сообщение от Gh >k
Я хотел чтобы шар спускался со скоростью но плавно
setInterval
Цитата:
Сообщение от Gh >k
и они будут только прямоугольной формы
согласен - моя неправда
Цитата:
Сообщение от Gh >k
не может проверять пересечение клипа 1-го уровня и 2-го уровня
не проверял, но детектор направления столкновений можно и на 1й уровень поместить - накладывать его на координаты thisball при столкновении.
Цитата:
Сообщение от Gh >k
1.Код от этого меньше не станет. 2.Покрайней мере я пытался.
1.станет 2.Москва не сразу строилась.
Цитата:
Сообщение от Gh >k
и объясни пожалуйста остальные -4 ,5 ,6 ,....
повторного разбора этого кода не выдержу - сперва сделай его читабельным.
Цитата:
Сообщение от Gh >k
просто удалил код и написал его же заново-точно такойже, и ЭВРИКА
ты уж извини, в чудеса не верю.))
Цитата:
Сообщение от Gh >k
Fps по прежнему 120, и кстати, почему он так медленно падает? по скрипту он должен палать на 480 пикселей, а там явно не дотягивает.
setInterval

З.Ы.С прискорбием убедившись в достоверности цитаты №2, залез в гугл (hitTest shape) и, не поверишь, по 1й-же ссылке нашел нормально работающий класс, определяющий пересечение шейпов, и точку вышеупомянутого пересечения. глянь на него - мож пригодится.http://www.gskinner.com/blog/archive..._code_sha.html
Даже если будешь юзать свой рукотворный хиттест, попробуй нарисовать в 1 клип - круг и еще 1 клип - hairline-дуга примерно в 1/10 круга, после чего, с определенной дискретностью(скажем 100), приравнивай координаты центра дуги координатам центра круга, в цикле(1->10) поворачивай дугу и хит-тести ее с уровнем.
все.. устал писать.. всем хорошего дня.


Последний раз редактировалось Torero; 18.07.2007 в 09:15.
Создать новую тему Ответ Часовой пояс GMT +4, время: 09:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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