PDA

Просмотр полной версии : Флэш-карта падает в ИЕ


pr_pub
29.05.2008, 22:32
Есть флэш карта посёлка. На месте каждого дома - три дома друг под другом, разных цветов, высвечиваются в зависимости от того проданы, не проданы и тд, плюс сверху, при наведении на домик появляется тултип с инфой. Инфа берётся из текстового файла. После открытия сайта с картой в ИЕ, браузер падает сразу, либо после 2-3 рефрешов. Скажите пожалуйста, почему так?

Вот код:


loadVariables("vars4.php?var=" + getTimer(), "_root");

var new_timer=setInterval(for_first,100);

function for_first()
{

if((h68==0) || (h68==1)||(h68==2))
{
clearInterval(new_timer);
if (h1==1)
{
btn1np._visible=1;
btn1p._visible=0;
btn1z._visible=0;
btn1np.onRollOver = function() { showTooltip1(h1_n,h1_s,h1_c); }
btn1np.onRollOut = function() { _root.Tooltip1._visible = 0; }
btn1np.onRelease= function() { getURL(h1_url, "_self"); }
}
else if (h1==0)
{
btn1np._visible=0;
btn1z._visible=0;
btn1p._visible=1;
btn1p.onRollOver = function() { showTooltip2(); }
btn1p.onRollOut = function() { _root.Tooltip2._visible = 0; }
}
else
{
btn1z._visible=1;
btn1np._visible=0;
btn1p._visible=0;
btn1z.onRollOver = function() { showTooltip3(); }
btn1z.onRollOut = function() { _root.Tooltip3._visible = 0; }
}
if (h2==1)
{
btn2np._visible=1;
btn2p._visible=0;
btn2z._visible=0;
btn2np.onRollOver = function() { showTooltip1(h2_n,h2_s,h2_c); }
btn2np.onRollOut = function() { _root.Tooltip1._visible = 0; }
btn2np.onRelease= function() { getURL(h2_url, "_self"); }
}
else if (h2==0)
{
btn2np._visible=0;
btn2z._visible=0;
btn2p._visible=1;
btn2p.onRollOver = function() { showTooltip2(); }
btn2p.onRollOut = function() { _root.Tooltip2._visible = 0; }
}
else
{
btn2z._visible=1;
btn2np._visible=0;
btn2p._visible=0;
btn2z.onRollOver = function() { showTooltip3(); }
btn2z.onRollOut = function() { _root.Tooltip3._visible = 0; }
}

//.................
//далее идут соответствующие условия для остальных домов
//.................

if (h68==1)
{
btn68np._visible=1;
btn68p._visible=0;
btn68z._visible=0;
btn68np.onRollOver = function() { showTooltip1(h68_n,h68_s,h68_c); }
btn68np.onRollOut = function() { _root.Tooltip1._visible = 0; }
btn68np.onRelease= function() { getURL(h68_url, "_self"); }
}
else if (h68==0)
{
btn68np._visible=0;
btn68z._visible=0;
btn68p._visible=1;
btn68p.onRollOver = function() { showTooltip2(); }
btn68p.onRollOut = function() { _root.Tooltip2._visible = 0; }
}
else
{
btn68z._visible=1;
btn68np._visible=0;
btn68p._visible=0;
btn68z.onRollOver = function() { showTooltip3(); }
btn68z.onRollOut = function() { _root.Tooltip3._visible = 0; }
}
}
}
function showTooltip1(tip1,tip2,tip3)
{
_root.Tooltip1._visible = 1;
_root.Tooltip1._x = _xmouse;
_root.Tooltip1._y = _ymouse;
_root.Tooltip1.tip1.text = tip1;
_root.Tooltip1.tip2.text = tip2;
_root.Tooltip1.tip3.text = tip3;
}

function showTooltip2()
{
_root.Tooltip2._visible = 1;
_root.Tooltip2._x = _xmouse;
_root.Tooltip2._y = _ymouse;
}

function showTooltip3(tip)
{
_root.Tooltip3._visible = 1;
_root.Tooltip3._x = _xmouse;
_root.Tooltip3._y = _ymouse;
_root.Tooltip3.tip.text = tip;
}



что же делать?

upd.
в фф, опере работает.
замена загрузки через loadvariables на объявление все переменных в коде помогает, но ведь данные то надо грузить.
отключение DEP в IE - никакого эффекта.
еще одна странность - комментирование в коде условий для 15-20 домов (любых!), вроде-бы ситуацию исправляет (ие повалить не удается).

iNils
30.05.2008, 02:20
1. Для оформления своего кода надо использовать теги .
2. Проверьте свой код на количество открывающих и закрывающих скобок.

pr_pub
30.05.2008, 11:41
2. Проверьте свой код на количество открывающих и закрывающих скобок.

Со скобками там все нормально (я просто не стал указывать код полностью, т.к. он очень длинный). Флешка прекрасно работает в ФФ, в Опере, работает и в ИЕ, если находится на локали. А вот находясь на серваке роняет ИЕ, после 2-3 перезагрузок страницы.

qazwsx
30.05.2008, 11:56
На сколько я понимаю это баг виндоуса связанный с DEP, или просто вирус. Но все-же я не уверен что это вызванно не какими либо неправильными действиями кода программы. Но вобщем полный овтет я дать не могу... Могу сказать что на локальном компьютере у тебя все точно также. Просто файлы катоыре ты во флешку подгружаеш не буфиризируются, а грузятся сразу. Если попробуеш в оflash ide с своего хоста грузить эти же файлы, то он также будет вылетать.

pr_pub
30.05.2008, 12:00
На сколько я понимаю это баг виндоуса связанный с DEP, или просто вирус.

Вирус врядли- проверялось на 4 разных компьютерах, в разных сетях, все под антивирусами.

Могу сказать что на локальном компьютере у тебя все точно также. Просто файлы катоыре ты во флешку подгружаеш не буфиризируются, а грузятся сразу.

Это понятно, но в ФФ и Опере , работает и с сервака.

qazwsx
30.05.2008, 12:11
Попробуй отключить DEP в IE. А в опере незнаю почему у тебя не падает. У меня точно такаяже проблема и падает и в ие и в опере. Но в опере иногда не падает).

p.s пользуйся редактированием. Мультипостинг зло.

pr_pub
30.05.2008, 12:48
Попробуй отключить DEP в IE.

никакого эффекта.

qazwsx
30.05.2008, 14:22
Может ответит кто небудь, незнаю. Сам бы тоже хотел бы знать хотябы примерно в чем может быть дело, просто не уверен я что это DEP

iNils
30.05.2008, 15:42
Со скобками там все нормально (я просто не стал указывать код полностью, т.к. он очень длинный).При написании кода используется табуляция, которая помогает в чтении. А у вас, грубо выражаясь, свалка операторов, а не код. Вы сами не удосужитись отформатировать код, а отсутствие фигурной скобки лишает помогающим вам сдлеать автоформат. Тем самым вы уменьшаете свои шансы на ответ.

pr_pub
30.05.2008, 15:58
Повысил шансы на ответ. Посмотрим на сколько это поможет.

iNils
30.05.2008, 16:16
Визуальных багов нет. А вот организации полно.
Вместо устаревшего loadVariables и колдовства с setInterval, надо использовать класс LoadVars, у него есть событие onLoad, которое срабатывает после загрухки парсинга всех данных.

Вы уверены что ронят браузер именно этот кусок кода?

qazwsx
30.05.2008, 16:54
Я уверен т.к много тестировал у себя... Происходит при загрузке переменных либо флешек и именно когда они буфиризуются, если загрузка происходит сразу то такой ошибки не возникает.

iNils
30.05.2008, 17:15
Есть ссылка, где можно посмотреть "эффект" в действии?

qazwsx
30.05.2008, 17:41
Хост закрыт для посторонних пользователей, поэтому нет. Тут есть моя тема где я подробно все описал, но там никто ничего так и не написал :).

pr_pub
30.05.2008, 17:46
2 qazwsx

А ты пробывал через класс LoadVars?

iNils
30.05.2008, 17:50
Эта? (http://www.flasher.ru/forum/showthread.php?t=112248)Flash IDE часто падает, когда swf закрывают во время загрузки xml.

Ну раз закрыт, помочь ничем не могу.

qazwsx
30.05.2008, 18:05
Да я пользовался loadVars.

pr_pub
30.05.2008, 18:10
и все равно падает?

qazwsx
30.05.2008, 18:11
И при loadClip падает
Еще и при загрузке полиси файла падает если порт указан в ручную 834, а если он сам конектится к дефолтному порту то не падает >_>. Но это другую ошибку вызывало хотя и фатальную)

pr_pub
30.05.2008, 18:39
2 iNils

Вот пример (несколько раз обновить в ИЕ)
http://rifon.ru/map_final.swf

Другого кода там практически нет (еще 3 вида функций для тултипов и навешивание на ролловер-роллоаут для неизменных объектов )

pr_pub
30.05.2008, 18:40
2 qazwsx

А через xml (как вот здесь (http://www.flasher.ru/forum/showthread.php?t=112507)) ?

lexa2000lexa
30.05.2008, 18:44
Незна что там и как отваливаеться, у меня вообще IE вылетает сразу, без суда и следствия.

iNils
30.05.2008, 19:04
1. На локальном веб сервере не падает
2. Перепишите скрипт под LoadVars
3. getTimer () против кеширование запроса плохое решение, так будет часто выдавать одни и те же числа (на локалка getTimer выдавал 43-44).

qazwsx
31.05.2008, 08:39
Конечно на локальном не падает потому что он не буфиризует данные, оно падает только на тормазных хостах...

schegloff
02.06.2008, 13:06
Визуальных багов нет. А вот организации полно.
Вместо устаревшего loadVariables и колдовства с setInterval, надо использовать класс LoadVars, у него есть событие onLoad, которое срабатывает после загрухки парсинга всех данных.


спасибо за совет. использование класса LoadVars решило проблему.