Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 19.07.2003, 08:58
Boyler вне форума Посмотреть профиль Отправить личное сообщение для Boyler Посетить домашнюю страницу Boyler Найти все сообщения от Boyler
  № 1  
Boyler

Регистрация: Oct 2002
Адрес: Казахстан, Астана
Сообщений: 204
По умолчанию Програмная анимация. How to...

Как сделать так чтобы diplicateMoveClip дублировал линию (в моем случае) в каждом последующем кадре?

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

Делаю так:

//создаю пустой клип с линией
_root.createEmptyMovieClip("line", 1);
with (_root.line) {
lineStyle(0, 0x00FF00, 100);
lineTo(0, 400);
}
//затем дублирую его слева на право
while (t<183) {
duplicateMovieClip(_root.line, "line"+t, u);
setProperty("line"+t, _x, t*3);
if (t<90) {
setProperty("line"+t, _alpha, (m));
m++
}
else {
setProperty("line"+t, _alpha, (m));
m--
}
t++;
u++;
}

//Я где-то в глубине души догадываюсь что в цикле где дублируется клип надо вставить что-то типа InterKeyFrame (t), но не знаю этой команды (вставки самого фрейма)
Перерыл все мануалы и справки с флешером - не нашел, может плохо искал...
Вложения
Тип файла: zip 3.zip (2.3 Кб, 89 просмотров)
__________________
Чайник Я!!! Но не надолго...

Старый 19.07.2003, 10:01
Useless вне форума Посмотреть профиль Отправить личное сообщение для Useless Посетить домашнюю страницу Useless Найти все сообщения от Useless
  № 2  
Useless

Регистрация: Mar 2001
Адрес: всё, отжился...
Сообщений: 1,024
Отправить сообщение для Useless с помощью ICQ
duplicateMovieClip дублирует мувик в первозданном его виде.

В твоём случае - пустой мув.

А что тебе мешает сразу нарисовать все линии в одном клипе?
__________________
Work not wolf - in forest no run

Старый 19.07.2003, 10:02
Пушистик вне форума Посмотреть профиль Отправить личное сообщение для Пушистик Посетить домашнюю страницу Пушистик Найти все сообщения от Пушистик
  № 3  
Пушистик
Bumble Bee
[+1 05.07.06]
 
Аватар для Пушистик

Регистрация: May 2003
Адрес: Третья планета от Солнца
Сообщений: 1,254
Отправить сообщение для Пушистик с помощью ICQ
По умолчанию :)

Код:
// скорость появления линий....
speed = 20;
_root.createEmptyMovieClip("line", 1);
with (_root.line) {
    lineStyle(0, 0x00FF00, 100);
    lineTo(0, 400);
}
_root.createEmptyMovieClip("ram", 777);
with (_root.ram) {
    lineStyle(0, 0x00FF00, 100);
    moveTo(0,0);
    lineTo(550, 0);
    lineTo(550, 400);
    lineTo(0, 400);
    lineTo(0,0);
}
while (t<183) {
    duplicateMovieClip(_root.line, "line"+t, u);
    _root["line"+t]._x = t*3;
    _root["line"+t]._visible = 0;
    if (t<90) {
        _root["line"+t]._alpha = m;
        m++;
    } else {
        _root["line"+t]._alpha = m;
        m--;
    }
    t++;
    u++;
}
_root.createEmptyMovieClip("line2", 2);
with (_root.line2) {
    lineStyle(0, 0x00FF00, 100);
    lineTo(550, 0);
}
e = 184;
while (z<134) {
    duplicateMovieClip(line2, "linera"+z, e);
    _root["linera"+z]._y = z*3;
    _root["linera"+z]._visible = 0;
    if (z<68) {
        _root["linera"+z]._alpha = n;
        n++;
    } else {
        _root["linera"+z]._alpha = n;
        n--;
    }
    e++;
    z++;
}
_root.createEmptyMovieClip("linert", 600);
with (_root.linert) {
    lineStyle(0, 0x00FF00, 100);
    moveTo(6, 0);
    lineTo(6, 400);
    _root.linert._alpha = 0;
}
function addLineX() {
    t--;
    _root["line"+t]._visible = 1;
    if (t==0) {
        clearInterval(setx);
    }
}
function addLineY() {
    z--;
    _root["linera"+z]._visible = 1;
    if (z==0) {
        clearInterval(sety);
    }
}
setx = setInterval(function () { addLineX();}, speed);
sety = setInterval(function () { addLineY();}, speed);
брасай setProperty!
пиши вот так!!!!
в твоем случае вместо while я бы использовал for!
всё....
Вложения
Тип файла: zip 3.zip (3.3 Кб, 96 просмотров)
__________________
Portfolio

Старый 19.07.2003, 10:22
Boyler вне форума Посмотреть профиль Отправить личное сообщение для Boyler Посетить домашнюю страницу Boyler Найти все сообщения от Boyler
  № 4  
Boyler

Регистрация: Oct 2002
Адрес: Казахстан, Астана
Сообщений: 204
Вау... полный рулез! То что надо, прямо в точку!

То что выше я еще может переварю, а вот на счет:

Цитата:
function addLineX() {
t--;
_root["line"+t]._visible = 1;
if (t==0) {
clearInterval(setx);
}
}
function addLineY() {
z--;
_root["linera"+z]._visible = 1;
if (z==0) {
clearInterval(sety);
}
}
setx = setInterval(function () { addLineX();}, speed);
sety = setInterval(function () { addLineY();}, speed);
можно по подробнее, for dumies так сказать
И еще я действительно не понял в каком месте добавляются кадры в таймлайн, хотя начинаю думать что к основному таймлайну это не имеет отношения...

Отказ приму как должное, в любом случае спасибо!
__________________
Чайник Я!!! Но не надолго...

Старый 19.07.2003, 11:28
Пушистик вне форума Посмотреть профиль Отправить личное сообщение для Пушистик Посетить домашнюю страницу Пушистик Найти все сообщения от Пушистик
  № 5  
Пушистик
Bumble Bee
[+1 05.07.06]
 
Аватар для Пушистик

Регистрация: May 2003
Адрес: Третья планета от Солнца
Сообщений: 1,254
Отправить сообщение для Пушистик с помощью ICQ
никаких кадров я не добавлял конечно

смысл такой:
после создания всех линий я делаю их невыдимыми...
свойство _visible означает видимость 0-нет, 1-да!
вот где я их делаю...

while (t<183) {
duplicateMovieClip(_root.line, "line"+t, u);
_root["line"+t]._x = t*3;
_root["line"+t]._visible = 0;
if (t<90) {....
и для вертикальных линий также....

потом создаю две функции для лини горизонтальных:

function addLineX() {
t--;
_root["line"+t]._visible = 1;
if (t==0) {
clearInterval(setx);
}
и для вертикальных:

function addLineY() {
z--;
_root["linera"+z]._visible = 1;
if (z==0) {
clearInterval(sety);
}
}

смысл этих функций:
после цикла перменные t=180 z=134...
так вот отнимая еденицу от этих чисел...я делаю клипы видимыми поочереди...!

почему же все таки они появляются не сразу???
а вот почему:

циклическая фукция setInterval(function () { addLineX();}, speed); выполняется через каждые в данном случае 20 милисекунд таким образом проявляя один клип за другим!
воть
если надо еще подробнее ты скажи!

скачай исходник! с framerate=50 он сморится намного круче
Вложения
Тип файла: zip 3.zip (2.6 Кб, 94 просмотров)
__________________
Portfolio

Старый 19.07.2003, 11:52
Boyler вне форума Посмотреть профиль Отправить личное сообщение для Boyler Посетить домашнюю страницу Boyler Найти все сообщения от Boyler
  № 6  
Boyler

Регистрация: Oct 2002
Адрес: Казахстан, Астана
Сообщений: 204
По умолчанию !

Большое тебе, чисто человеческое, чисто спасибо!
Побольше бы таких добрых людей и может жить стало бы легче...
__________________
Чайник Я!!! Но не надолго...

Создать новую тему   Часовой пояс GMT +4, время: 06:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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