Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   не выполняется часть кода (ac3) в IE7 (только!) (http://www.flasher.ru/forum/showthread.php?t=142269)

oto_aki 16.07.2010 17:38

не выполняется часть кода (ac3) в IE7 (только!)
 
Всем привет!
Собственно есть флешка, в ней несколько слоев, при переходе на второй кадр обрабатываются загруженные данные
ac3 код частями размещен в кадрах слоев (все во втором кадре)
При отладке, в хроме, опере, IE8 - все нормально работает - во всех кадрах информация устанавливается в нужные элементы.
В IE7 при работе флешки выполняется код в самом верхнем слое и работа останавливается , код в кадрах в других слоях не обрабатывается.
Буду очень признателен за помощь, проблема какая-то нестандартная...

Хемуль 16.07.2010 17:44

2 oto_aki:
А зачем вообще код по слоям раскидывать?
Вы бы исходник флешки присоединили к сообщению... В формате Flash CS3.

oto_aki 16.07.2010 18:02

2Хемуль

Просто делалось очень наскоро - был опыт работы с ac2. ac3 не было времени перечитать фичи - сразу глянул в документации, что код можно размещать в фреймах, не обязательно делать один класс. Так и раскидал по кадрам/слоям.
Но, проект работает в отладчике, работает везде кроме IE7. В IE7 такой стопор.
Проект у меня в CS5, к сожалению исходник не могу приложить по определенным причинам.
Но суть такова, допустим есть 2 слоя 1 и 2й. Второй выше.
Во втором слое у меня код такого плана (слой 2 , кадр 2):
Код AS3:

 _log.text = _log.text+"news setting"+"\n";
 news_1.rot_1.pr_1.h1.text = this.BlockHeader[0].toString();
 news_1.rot_1.pr_1.h1.htmlText = "<b>"+this.BlockHeader[0].toString()+"</b>";
 
 news_1.rot_1.pr_1.t1.text = this.BlockText[0].toString();
 news_1.rot_1.pr_1.t1.htmlText = "<b>"+this.BlockText[0]+"</b>";
 
 
 news_1.rot_2.pr_2.h2.text = this.BlockHeader[1].toString();
 news_1.rot_2.pr_2.h2.htmlText = "<b>"+this.BlockHeader[1].toString()+"</b>";
 
 news_1.rot_2.pr_2.t2.text = this.BlockText[1].toString();
 news_1.rot_2.pr_2.t2.htmlText = "<b>"+this.BlockText[1]+"</b>";
 
 
 news_1.rot_3.pr_3.h3.text = this.BlockHeader[2].toString();
 news_1.rot_3.pr_3.h3.htmlText = "<b>"+this.BlockHeader[2].toString()+"</b>";
 
 news_1.rot_3.pr_3.t3.text = this.BlockText[2].toString();
 news_1.rot_3.pr_3.t3.htmlText = "<b>"+this.BlockText[2]+"</b>";
 
  _log.text = _log.text+"news setting ok"+"\n";

В первом такой (слой 1 кадр 1):

Код AS3:

import flash.events.KeyboardEvent;
 
 
function but_e1(event:MouseEvent):void
{
    navigateToURL(new URLRequest(this.Autor_Reg.toString()),"_self");
}
bt_group_1.addEventListener(MouseEvent.CLICK, but_e1);
 
 
 
 
function but_e2(event:MouseEvent):void
{
    if( !target_login._login_panel.isPlaying )
        {
                target_login.play();
        }
}
bt_group_2.addEventListener(MouseEvent.CLICK, but_e2);
 
 
function but_go1(event:KeyboardEvent):void
{
  if(event.keyCode == 13)
  {
          if(target_login.wrap_1.login.text.length > 2 && target_login.wrap_2.password_x.text.length > 2)
                      SendReqPOST(target_login.wrap_1.login.text, target_login.wrap_2.password_x.text );
  }
}
target_login.wrap_1.addEventListener(KeyboardEvent.KEY_UP, but_go1);
 
function but_go2(event:KeyboardEvent):void
{
  if(event.keyCode == 13)
  {
          if(target_login.wrap_1.login.text.length > 2 && target_login.wrap_2.password_x.text.length > 2)
                      SendReqPOST(target_login.wrap_1.login.text, target_login.wrap_2.password_x.text );
  }
}
target_login.wrap_2.addEventListener(KeyboardEvent.KEY_UP, but_go2);
 
 
 
// фокусы
 
_log.text = _log.text+"login setting"+"\n";
 
function but_f1(event:MouseEvent):void
{
  stage.focus = target_login.wrap_1.login;
}
 
 
target_login.wrap_1.addEventListener(MouseEvent.CLICK, but_f1);
 
function but_f2(event:MouseEvent):void
{
  stage.focus = target_login.wrap_2.password_x;
}
target_login.wrap_2.addEventListener(MouseEvent.CLICK, but_f2);
 
 
 
 
// забыли пароль
function but_sf1(event:MouseEvent):void
{
  navigateToURL(new URLRequest(this.Autor_SendPass.toString()),"_self");
}
target_login._login_panel.reqPass.addEventListener(MouseEvent.CLICK, but_sf1);
//trace(target_login._login_panel.reqPass.link);
//target_login._login_panel.reqPass.link = this.Autor_SendPass.toString();
 
// вход по ссылке
function but_sf2(event:MouseEvent):void
{
  if(target_login.wrap_1.login.text.length > 2 && target_login.wrap_2.password_x.text.length > 2)
                      SendReqPOST(target_login.wrap_1.login.text, target_login.wrap_2.password_x.text );
}
target_login._login_panel.enterButton.addEventListener(MouseEvent.CLICK, but_sf2);
 
 
 
function SendReqPOST(user:String, pass:String):void
{
        var url:String = this.Autor_Log;
    var request:URLRequest = new URLRequest(url);
 
    var variables:URLVariables = new URLVariables();
    variables.user = user;
    variables.pass = pass;
    request.data = variables;
        request.method = URLRequestMethod.POST;
 
        navigateToURL(request,"_self");
}

Код первого слоя не выполнится. Даже не начнет выполняться.

Добавлено через 44 минуты
проблема решена
гуглил адобовский форум, нашел похожую проблему - не работала флешка только в IE7 - решением было обновление флеш плеера.
В моем случае тоже помогло.
Хотя версия была одна из последних, жаль, что не записал какая была. IE7 у меня на тестовом компе, там XP, изначально был IE6 для тестирования (с одним из послдних плееров, ставил месяц или два назад). Скорее всего проблема в том, что плеер ставился на IE6, после абгрейда до Ie7 плеер не переустанавливался. После апдейта - все заработало.
Ну или проблема в самой версии флеш плеера - проверю скоро на другой машине.

Хемуль 16.07.2010 18:48

2 oto_aki:
Раскидать по кадрам я ещё понимаю, а по слоям-то зачем?
Во Flash Player'е слоёв нет. Это просто редакторская фишка для удобства.
А у вас в IE7 Flash Player той же версии, что и в других браузерах?

oto_aki 16.07.2010 19:21

2Хемуль
Цитата:

Раскидать по кадрам я ещё понимаю, а по слоям-то зачем?
Во Flash Player'е слоёв нет. Это просто редакторская фишка для удобства.
Очень торопился. Если бы имел пару дней в запасе, то я бы, конечно, оттолкнулся от одного общего класса, да и с ac очень давно не работал - шел самыми быстро успешно получающимися путями.

Изначально на Ie6 стояла одна из самых последних версий, возможно немного различалась. Жаль что не знаю, в какой версии плеера была ошибка.


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

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