Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
| Jox |
27.8.2007, 9:50
Сообщение
#41
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Скриптовая анимация 2: код
Перед этим читайте пост 40 Вот кошмарный код, он большой, но легок в восприятии, может все-таки немного вникните) и поможете: Код // Создаём обьект XML foto_xml = new XML(); // форматирование строк foto_xml.ignoreWhite = true; // загружает файл xml foto_xml.load("sport_foto.xml"); //Создание 3х клипов this.createEmptyMovieClip("two_img",this.getNextHighestDepth()); two_img._x = 30; two_img._y = 25; two_img._alpha = 80; two_img._xscale = 75; two_img._yscale = 75; this.createEmptyMovieClip("three_img",this.getNextHighestDepth()); three_img._x = 130; three_img._y = 25; three_img._alpha = 80; three_img._xscale = 75; three_img._yscale = 75; this.createEmptyMovieClip("one_img",this.getNextHighestDepth()); one_img._x = 80; one_img._y = 25; // Пишем функцию разбора xml-файла, которая парсит подгруженный xml и создаёт из него массив данных function razbor_xml(xml:XML) { //<forum1> var arrayTuo:Array = xml.firstChild.firstChild.childNodes; _root.totalTuo = arrayTuo.length-3;//считывает количество картинок for (var i:Number = 0; i<arrayTuo.length; i++) { this["image"+String(i+1)] = arrayTuo[i].attributes['image']; _root.one_img.loadMovie(this["image"+_root.totalTuo]); _root.two_img.loadMovie(this["image"+_root.totalTuo]); _root.three_img.loadMovie(this["image"+_root.totalTuo]); } } //Фото foto_xml.onLoad = function(success) { razbor_xml(this);//вызываем функцию разбора xml-файла }; // Интервал движения createFotoMovie1Int = setInterval(movieFoto, 50); function movieFoto() { if (btnRight == "1") {// если нажата кнопка "право", то фото делает анимацию _root.one_img._x -= 20; _root.one_img._alpha -= 5; _root.one_img._xscale -= 5; _root.one_img._yscale -= 5; if (_root.one_img._x<=20) { _root.one_img._x = 20; } else if ((_root.one_img._x<=30)&&(_root.one_img._x>=0)){ btnRight = "0"; [здесь надо прописать что-то подобное: _root.one_img = _root.three_img] } _root.three_img._x -= 20; _root.three_img._alpha += 5; _root.three_img._xscale += 5; _root.three_img._yscale += 5; if (_root.three_img._x<=80) { _root.three_img._x = 80; } else if ((_root.three_img._x<=90)&&(_root.three_img._x>=0)){ btnRight = "0"; [здесь надо прописать что-то подобное: _root.three_img = _root.two_img] } } if (btnLeft == "1") { _root.one_img._x += 10; _root.one_img._alpha -= 5; _root.one_img._xscale -= 5; _root.one_img._yscale -= 5; if (_root.one_img._x>=250) { _root.one_img._x = 250; } else if ((_root.one_img._x<=170)&&(_root.one_img._x>=130)){ btnLeft = "0"; [здесь надо прописать что-то подобное: _root.one_img = _root.two_img] } _root.two_img._x += 10; _root.two_img._alpha += 5; _root.two_img._xscale += 5; _root.two_img._yscale += 5; if (_root.two_img._x>=80) { _root.two_img._x = 80; } else if ((_root.two_img._x<=100)&&(_root.two_img._x>=70)){ btnLeft = "0"; [здесь надо прописать что-то подобное: _root.two_img = _root.three_img] } } } // кнопки перелистывания btnRight.onPress = function() { btnRight = "1"; }; btnLeft.onPress = function() { btnLeft = "1"; }; -------------------- |
| nikitar |
27.8.2007, 9:51
Сообщение
#42
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
1.
Цитата Через Xml подгружаются фотки. НО! эти фотографии подгружаются через форум, т.е. они все время меняются, и я конкретно не знаю index фотографии, в следствии чего, я не знаю, что писать в code.xml, какой путь прописвать. Т.к. я раньше прописывал конкретный путь, конкретное название, а тут считайте уже через другой сайт они должны подгружаться во флеше. В любом случае у тебя должен быть конкретный путь к картинке Для этого возможно придётся писать какой-то серверный скрипты, который создавал бы xml 2. Цитата Но проблема в том, что когда "правая" картинка будет сменяться на "среднюю" картинку, каким-то образом у них должна меняться глубина, чтобы уже "правая" картинка была выше средней. Мувиклипу, который должен быть в данный момент выше остальных, задаёшь Код mc.swapDepths(this.getNextHighestDepth()); обмен местами с другими картинками тоже через swapDepths 3. Цитата Приступив к работе, понял, что есть еще одна проблема: у меня всего 2 кнопки, которые управляют аж 3 клипами (пока еще это не осуществил). Все клипы ведут себя иначе. Суть в том, что когда один клип приходит в положение другого клипа, он должен "превратится" в этот клип. Т.е. если "средняя" картинка переходит на "левую" картинку, то она каким то образом должна стать "левой", а старая левая - должна удалиться как я понимаю. Короче очень сложная скриптовая комбинация. Может есть проще способ, как осуществить данный слайд-шоу. Посмотри в шапке на форуме - галерею. Там тоже всё через подгружаемый xml, но сам эффект сделан вручную, через MotionTween. Работает нормально. -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
27.8.2007, 11:35
Сообщение
#43
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
1. В любом случае у тебя должен быть конкретный путь к картинке Для этого возможно придётся писать какой-то серверный скрипты, который создавал бы xml Ой, ну подумаю... 2. Мувиклипу, который должен быть в данный момент выше остальных, задаёшь Код mc.swapDepths(this.getNextHighestDepth()); обмен местами с другими картинками тоже через swapDepths поэксперементирую, спасибо за подсказку 3. Посмотри в шапке на форуме - галерею. Там тоже всё через подгружаемый xml, но сам эффект сделан вручную, через MotionTween. Работает нормально. Посмотрел шапку... в принципе мне так и надо... Хм, это все в ручную (движения) делали? Интересно как там вы с клипами разобрались... Каждая фотка - это отдельный клип у вас? Только мне не очень понравилось Ладно, попробую, скоро обращусь. -------------------- |
| Jox |
28.8.2007, 9:18
Сообщение
#44
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Motion анимация
Измучился я, уже не представляю как сделать (2 способами думал). В прикрепленном файле - показано, как это должно выглядеть (правда без фоток). С фотками уже все намного сложнее У меня там 5 клипов (2 слева, 2 справо, 1 по середине). Грубо говоря 5 фоток. ПРОблема начинается, когда я загружаю фотки в эти клипы (ели как они еще загружаются (и то некорректно)), фишка в том, что когда клипы перемещаются (эффект замены), на последнем кадре они "РЕЗКО!" возвращаются в исходные места (и кажется, что они сместились. а на самом деле находятся на прежних местах), так вот, когда они возвращаются на исходные места, они все должны поменять свои фотки. Как это осуществить - я не представляю( Я пробывал, получалось: либо они не заменялись на новые фоткт, либо вообще фотки не загружают. Код function razbor_xml(xml:XML) { //<forum1> var arrayTuo:Array = xml.firstChild.firstChild.childNodes; _root.totalTuo = arrayTuo.length;//считывает количество картинок for (var i:Number = 0; i<arrayTuo.length; i++) { this["image"+String(i+1)] = arrayTuo[i].attributes['image']; _root.one_img.clipc1.portC.loadMovie(this["image"+_root.totalTuo]); //_root.one_img.clipc3.portC2.loadMovie(this["image"+_root.totalTuo]); _root.two_img.clipl1.portL.loadMovie(this["image"+2]); //ЗДЕСЬ надо как-то иначе загружать фотки! _root.three_img.clipr1.portR.loadMovie(this["image"+3]); _root.four_img.portLZ.loadMovie(this["image"+4]); _root.five_img.portRZ.loadMovie(this["image"+4]); } } Может есть другой способ, как создать слп\айд-шоу с таким эффектом? Прикрепленные файлы
sport4.2.3fla.rar ( 1.35 килобайт )
Кол-во скачиваний: 181-------------------- |
| Jox |
28.8.2007, 13:45
Сообщение
#45
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Так и не получилось сделать, чтобы фотки менялись на новые.
Код nextFoto = 0; //Обратите ВНИМАНИЕ! function razbor_xml(xml:XML) { //<forum1> var arrayTuo:Array = xml.firstChild.firstChild.childNodes; _root.totalTuo = arrayTuo.length - nextFoto; for (var i:Number = 0; i<arrayTuo.length; i++) { this["image"+String(i+1)] = arrayTuo[i].attributes['image']; _root.one_img.clipc1.portC.loadMovie(this["image"+totalTuo]); } Когда фотка заканчивает свое анимационное действие, я в кадре у нее прописываю _root.nextFoto++;. Поиде, фотка должна замениться на следующуюю (т.е. на предыдущию ссылку в XML). Но она никак не реагирует на реакцию того, что nextFoto изменило свое значение. В чем причина? уже сломал голову. -------------------- |
| nikitar |
28.8.2007, 17:11
Сообщение
#46
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Цитата Поиде, фотка должна замениться на следующуюю Нужно повторить кусок кода, который отвечает за замену, уже с новыми параметрами. Например, если эта функция, то заново её вызвать, после того, как изменишь номер фотки. -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
28.8.2007, 17:41
Сообщение
#47
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Нужно повторить кусок кода, который отвечает за замену, уже с новыми параметрами. Например, если эта функция, то заново её вызвать, после того, как изменишь номер фотки. я уже об этом думал, пробовал - фотка просто не заменяется, остается прежняя. хм, вот и гадай... -------------------- |
| nikitar |
28.8.2007, 17:49
Сообщение
#48
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Цитата я уже об этом думал, пробовал - фотка просто не заменяется, остается прежняя. хм, вот и гадай... Напиши код, который выводит картинку. -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
28.8.2007, 18:57
Сообщение
#49
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Напиши код, который выводит картинку. _root.nextFoto++; /*var arrayTuo:Array = xml.firstChild.firstChild.childNodes; _root.totalTuo = arrayTuo.length-nextFoto; for (var i:Number = 0; i<arrayTuo.length; i++) { this["image"+String(i+1)] = arrayTuo[i].attributes['image']; _root.one_img.clipc1.portC.loadMovie(this["image"+3totalTuo]); }*/ это в самом клипе, когда он заканчивает свое движение... -------------------- |
| nikitar |
28.8.2007, 18:59
Сообщение
#50
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Возможно стоит прописать _root ?
там где переменная nextFoto -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
29.8.2007, 9:00
Сообщение
#51
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Возможно стоит прописать _root ? там где переменная nextFoto попробовал - не получилось. Временно вопрос снят. Вчера потратил 11 часов на второй способ - по напрасно Сегодня потратил 1-2 часа - сделал, правда немного упрощенный способ (эффект анимации), но работает) -------------------- |
| Jox |
29.8.2007, 13:18
Сообщение
#52
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Решил совместить 1 и 3 способ. Столкнулся с странной проблемой.
Решил код не высылать, долго объяснять, но сам он прост, а решил выложить исходник. Ошибка тоже простая, т.е. ошибки нет, а флеш просто не выполняет один скрипт: который должен менять фотку: Код current_image = "1"; ----------------------------- current_image++; _root.one_img.portC.loadMovie(_root["image"+current_image]); Дело в том, что когда заканчивается анимация клипа, он указывает, на то, чтобы загрузилась следующая фотка. Трейсил, на сам код он этот переходит. Трейсил код, который должен переключать - ноль эмоций. И после повторного нажатия на кнопку переход (просто по фоткам надо щелкать), то начинается ГЛЮК( Помогите, пожалуйста. Прикрепленные файлы
project3.rar ( 125.86 килобайт )
Кол-во скачиваний: 170-------------------- |
| nikitar |
29.8.2007, 18:11
Сообщение
#53
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Цитата Решил код не высылать, долго объяснять, но сам он прост, а решил выложить исходник. Ошибка тоже простая, т.е. ошибки нет, а флеш просто не выполняет один скрипт: который должен менять фотку: Я тебе же уже говорил: осторожнее с кавычками. Попробуй вот так Код current_image = 1; ----------------------------- current_image++; _root.one_img.portC.loadMovie(_root["image"+current_image]); -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
30.8.2007, 9:48
Сообщение
#54
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
это бесполезно... я уже забыл в каком из исходников что у меня и где (у меня 3-4 разных вариантав + к ним еще разные варианты).
Блин, может дадите исходник, где подгружаются сразу 3 (5) фоток с движением таким анимационным(. Есть же способ, как сделать это все по дргуому.... Например через массивы, только я не знаю как. Например, .xml использовать, как сам массив! <label name="count" value="5" /> - количество фоток (строк) Код <?xml version="1.0" encoding="windows-1251"?> <object> <fotoCentr> <label name="count" value="5" /> <label name="GKR-217[1]" image="img/tn_gallery_388_13_15517.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53129" /> <label name="GKR-586" image="img/tn_gallery_388_13_25179.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53113" /> <label name="GKR-596" image="img/tn_gallery_388_13_40818.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53128" /> <label name="GKR-611" image="img/tn_gallery_6132_13_226763.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53818" /> <label name="GKR-611" image="img/tn_gallery_6132_13_31602.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=54224" /> </fotoCentr> </object> в AS создать клип, в которм еще 3 клипа... Код this.createEmptyMovieClip("one_img",this.getNextHighestDepth()); one_img._x = 0; one_img._y = 25; // в нем 3 клипа this.one_img.createEmptyMovieClip("one.one_img",this.getNextHighestDepth()); one.one_img._x = 0; one.one_img._y = 25; this.one_img.createEmptyMovieClip("two.one_img",this.getNextHighestDepth()); two.one_img._x = 75; two.one_img._y = 25; this.one_img.createEmptyMovieClip("three.one_img",this.getNextHighestDepth()); three.one_img._x = 150; three.one_img._y = 25; и прописать, чтобы они загружали фотки! вот, только одна проблема, я совсем не представляю, как их загрузить( Код function razbor_xml(xml:XML) { //<foto> _root.totalTuo = xml.firstChild.firstChild.childNodes[0];//считывает количество картинок for (var i:Number = 0; i<3; i++) { _root.one_img.one.loadMovie(this["image"+_root.totalTuo]); _root.one_img.two.loadMovie(this["image"+2]); _root.one_img.three.loadMovie(this["image"+ЗНАЧЕНИЕ СТРОКИ из XML]); } } tumb_xml.onLoad = function(success) { razbor_xml(this);//вызываем функцию разбора xml-файла }; _root.one_img.one.loadMovie(this["image"+_root.totalTuo]); - не знаю, что здесь надо прописать( -------------------- |
| Jox |
30.8.2007, 11:31
Сообщение
#55
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Код <?xml version="1.0" encoding="windows-1251"?> <object> <fotoCentr> <label name="GKR-217[1]" image="img/tn_gallery_388_13_15517.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53129" /> <label name="GKR-586" image="img/tn_gallery_388_13_25179.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53113" /> <label name="GKR-596" image="img/tn_gallery_388_13_40818.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53128" /> <label name="GKR-611" image="img/tn_gallery_6132_13_226763.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=53818" /> <label name="GKR-611" image="img/tn_gallery_6132_13_31602.jpg" about="http://forum.ozersk.com/index.php?automodule=gallery&req=si&img=54224" /> </fotoCentr> </object> Ребят, у меня вопрос, как на кнопке прописать ссылку. Разобрался, вот код: Код btnLink.onPress = function() { getURL(_root["about"+current_image],"_blank"); } довольно просто оказалось -------------------- |
| nikitar |
30.8.2007, 14:34
Сообщение
#56
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Вот сделал такую же галерею, которую ты делаешь, правда без xml (там ничего сложного)
http://rusforumz.com/topic11399.html -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
11.9.2007, 7:52
Сообщение
#57
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Столкнулся с такой проблемой: Слайд-шоу
выложил на сайт слайд-шоу, но проблема в том, чтобы просмотреть его, надо ждать довольно продолжительное время загрузки картинки... Как можно ускорить процесс? ведь преолайдер не поможет. Сделано через xml. -------------------- |
| nikitar |
11.9.2007, 14:17
Сообщение
#58
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Цитата Столкнулся с такой проблемой: Слайд-шоу выложил на сайт слайд-шоу, но проблема в том, чтобы просмотреть его, надо ждать довольно продолжительное время загрузки картинки... Как можно ускорить процесс? ведь преолайдер не поможет. Сделано через xml. А при чём тут собственно xml? Ты расскажи лучше каким образом подгружаются картинки? Все сразу или по одной. Каков вес картинок? -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
12.9.2007, 18:57
Сообщение
#59
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
А при чём тут собственно xml? Ты расскажи лучше каким образом подгружаются картинки? Все сразу или по одной. Каков вес картинок? Подгружаю по одной (вес примерно 100-200 Кб). Загружаю, через динамический клип (т.е. вручную создаю). Вот галерея -------------------- |
| nikitar |
13.9.2007, 16:21
Сообщение
#60
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Почему у картинок такой вес запредельный?
Открой их в фотошопе и там сохрани для веба, то есть File - Save for web вес должен быть у таких картинок 20-30 килобайт. Тогда и загружаться будут быстро. -------------------- - всё по-новому. В процессе наполнения.
|
![]() ![]() |
|
Текстовая версия | Сейчас: 23.5.2012, 5:10 |
|