![]() |
|
||||||||||
|
|||||
|
[+4 28.02.10]
Регистрация: Feb 2010
Сообщений: 16
|
Добрый вечер. Проблемы следующего характера:
1) Подгружаю звук во флешку. Вес мп3-файла приблизительно 60 Мб. Звук запускается, однако, при первом проигрыше, иногда он срывается где-то на 2-3 минуте и перезапускается заново! Такое происходит только один раз (то есть, после перезапуска играет от начала до конца) Вот код (стоит во 2 кадре после прелоадера): stop(); my_sound = new Sound(); my_sound.onLoad = function() { my_sound.start(); }; my_sound.loadSound("http://мой_домен/music/mixdown.mp3",true); 2) приблизительно тоже самое происходит и в средине самой флешки, только теперь уже с кадрами! Иногда, флешка сама-по-себе возвращает предыдущий кадр, но ведь в каждом из них стоит stop()! впервые с подобным сталкиваюсь(( Как такое может быть?? 3) лаги при движении контейнеров с подгруженными картинками. На компе почти не глючит, а в инете - картинки слегка вздрагивают, когда двигаются. Можно ли что-то сделать?? Код (контейнеров их более 30, я сократил): //1-container var container_1:MovieClip = _root.anim_pic.cont.createEmptyMovieClip('img', this.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener (this); mcLoader.loadClip('./SlideShow/1.jpg',container_1); container_1._x = 0; //2-container var container_2:MovieClip = _root.anim_pic.cont.createEmptyMovieClip('img_2', this.getNextHighestDepth()); var mcLoader2:MovieClipLoader = new MovieClipLoader(); mcLoader2.addListener (this); mcLoader2.loadClip('./SlideShow/2.jpg',container_2); container_2._x = 713; //3-container var container_3:MovieClip = _root.anim_pic.cont.createEmptyMovieClip('img_3', this.getNextHighestDepth()); var mcLoader3:MovieClipLoader = new MovieClipLoader(); mcLoader3.addListener (this); //////////// this.onLoadInit = function (mc:MovieClip) { _root.anim_pic.gotoAndStop(2); } var xStart = 840 var xFinish = -20100 var myTime1 = 250 var myTime2 = 1000 import mx.transitions.Tween; var myTween:Tween = new Tween(_root.anim_pic.cont, "_x", mx.transitions.easing.None.easeNone, xStart, xFinish, myTime1, true); function myStart() { myTween.start(); } function myFunction() { myTween.onMotionFinished = function() { _root.gotoAndStop(3); }; } myFunction(); И ВСЕ ЭТО БЕЗОБРАЗИЕ ПРОИСХОДИТ В ОДНОМ ФАЙЛЕ! Заранее благодарен за внимание! |
|
|||||
|
Модрон-ветеринар
|
По поводу (1), попробуйте убрать вот эти строки:
В потоковом режиме (параметр true) звук стартуется автоматически, как только в буфер попадет достаточное количество данных. А у вас старт происходит еще раз, дополнительно, уже по факту полной загрузки - отсюда перезапуск. По поводу (2): Причина, вероятно, имеет сходные корни. Вот эта строка автоматически стартует анимацию Tween, по факту определения Tween, без участия myTween.start(); var myTween:Tween = new Tween(_root.anim_pic.cont, "_x", mx.transitions.easing.None.easeNone, xStart, xFinish, myTime1, true); Далее. У вас получается так, что this.onLoadInit отрабатывает _root.anim_pic.gotoAndStop(2); всякий раз, кода происходит загрузка в контейнер. Вы так задумали? (3) - возможно проблема в работе самого плеера, с отрисовкой содержимого связано. похожее тут обсуждалось, но универсального рецепта не нашлось. - попробуйте поварьировать FPS - при анимации громоздкого содержимого, если оно векторное, имеет смыл его предварительно растеризовать. Готовые алгоритмы и функции растеризации на форуме и в инете есть. Чисто по записи кода. При такой записи function myFunction() { myTween.onMotionFinished = function() { _root.gotoAndStop(3); }; } В последствии, конечно, происходит вызов myFunction(); (у вас он идет в конце кода) и myTween уже определен, но последовательность событий получается кривовата, так как обработчик события onMotionFinished назначается в вашем случае уже в процессе анимацмии myTween. Да и громоздко это. Поэтому: Вообще, без алгоритмической необходимости не стоит делать вложенное объявление функции (в другой функции). Бывают случаи, конечно, когда оперативное объявление функции является алгоритмически необходимым, например, при оперативных изменениях какой-то общей ситуации, определенных событиях, но это не ваш случай. Последний раз редактировалось mooncar; 22.02.2010 в 12:25. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|