Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   эффект смены для картинки (http://www.flasher.ru/forum/showthread.php?t=120732)

roo2jae 29.01.2009 12:00

эффект смены для картинки
 
Вложений: 1
нужно сделать эффект смены одной картинки на другую, слева на право
с изменением xscale.
подскажите пожалуйста как это сделать программно с помощью AS.
пример без AS во вложении.
спасибо

Chel1 29.01.2009 13:04

Цитата:

Сообщение от roo2jae (Сообщение 794203)
нужно сделать эффект смены одной картинки на другую, слева на право
с изменением xscale.
подскажите пожалуйста как это сделать программно с помощью AS.
пример без AS во вложении.
спасибо

думаю проще всего сделать это с помощью двух масок. одна из них скрывает постепенно один файл, вторая маска постепенно показывает другой

roo2jae 29.01.2009 13:16

нужно не совсем скрывать/показывать картинки.
скорее расширять/сужать
притом это надо делать программно, не могли бы вы привести пример кода этого действа :-)

Chel1 29.01.2009 15:43

щас сделаю... wait a moment

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

Добавлено через 1 час 16 минут
у меня получилось так :wacko:

Код AS1/AS2:

var picArr:Array = new Array();// для удобства работы картинки запихнем в массив
var curPic:Number = 0;// ссылка на текущую отображаемую картинку - индекс массива picArr
var flag:Boolean = false;// флаг для имитации задержки картинки на экране
var delay:Number = 50;// кол-во кадров, которые картинка будет оставаться на месте
var count:Number = 0;// приращение кадров, отсчитывается до значения переменной delay
var imgW:Number;// оригинальное значение ширины картинки
var speed:Number = 3;// скорость смены картинок
// заменяемая и заменяющая картинка
var ground:MovieClip;
var shift:MovieClip;
// если картинок много, запихивание лучше сделать программно
picArr[0] = pic1;
picArr[1] = pic2;
 
// начальное присваивание
ground = picArr[0];
shift = picArr[1];
ground._x = 0;
ground._y = 0;
shift._x = -shift._width;
shift._y = 0;
 
// срабатывает с частотой кадров в мувике
onEnterFrame = function ():Void {
        // проверяем надо ли анимировать картинку
        if (flag) {
                // проверяем, надо ли продолжать анимацию
                if (ground._width>speed) {
                        shift._x += speed;
                        ground._width -= speed;
                        ground._x += speed;
                } else {
                        flag = false;
                        ground._x = 10000;
                        ground._y = 10000;
                        ground._width = imgW;
                        ground = picArr[curPic];
                        ground._x = 0;
                        ground._y = 0;
                        // Последний элемент массива?
                        if ((picArr.length-1) == curPic) {
                                shift = picArr[0];
                                curPic = 0;
                        } else {
                                shift = picArr[curPic+1];
                                curPic++;
                        }
                        shift._x = -shift._width;
                        shift._y = 0;
                }
        } else {
                if (count == delay) {
                        flag = true;
                        imgW = picArr[curPic]._width;
                        count = 0;
                } else {
                        count++;
                }
        }
};

Добавлено через 3 минуты
почему у меня отображается с бб-кодами? что я делаю не так?

roo2jae 29.01.2009 16:08

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

Chel1 29.01.2009 16:30

Цитата:

Сообщение от roo2jae (Сообщение 794272)
спасибо, swf и fla с примером было бы замечательно,
так как я флеш изучаю недавно и понятного пока очень мало.

напиши в личку мыло, я тебе вышлю


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

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