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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Aug 2007
Сообщений: 4
По умолчанию Простенькая задачка с AttachMovie

Возможно все очень просто , но никак не получается ...

Итак : необходимо сделать "движение" человечка ПРОГРАММНО.
путем аттачивания картинок движения левой и правой ноги поочередно взависимости от количества шагов ...

По событию нажатия кнопки вызываем функцию Move_to , размещенной в первом (и единственном ) кадре единственного слоя
вот скрипт :

Код:
/// Задаем начальные координаты

koord_x = 200;
delta_x = 25;

/// зададим функцию перемещения человечка по параметам : steps - количество шагов
function Move_to( steps) {
    
    /// организуем цикл по шагам
    for (i=1; i<=steps; i++) {
        /// если счетчик нечетный - значит шаг ЛЕВОЙ
        /// иначе - ПРАВОЙ
        
        if (i%2)
               { type_step = "L";
            }
                                else {type_step = "R";
                                                }
    
    name_movie = "step_"+type_step;
    
    /// аттачим нужную картинку
    attachMovie(name_movie,"step_movie_" + i ,   i  );
    _root["step_movie_" + i]._x=koord_x;
    
    
    /// изменяем координаты 
    koord_x = koord_x + delta_x;
    
/// если вставить удаление - не успеем увидеть ничего...
///  removeMovieClip("step_movie_" + i);     
    }
    
}

gotoAndPlay(1);
по нажатию кнопки "все" работает , картинки появляются , НО!
Если размещать в одной глубине при аттаче - появляется последняя ,
если в разных глубинах , то все сразу ...
А надо последовательно выводить кадры с определенной паузой ,
чтобы вывести второй клип только когда закончился проигрываться первый клип .

Помогите , плиз .
Заранее благодарен.

Старый 14.08.2007, 13:38
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
>>> если вставить удаление - не успеем увидеть ничего...

ПОТРЯСАЮЩЕ. Вы написали столько кода, без видимых синтаксических ошибок... А Вы ни разу не задумались, ЧТО это Вы делаете? Примерно 200 000 шагов в секунду.
Используйте onEnterFrame.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 14.08.2007 в 13:53.
Старый 14.08.2007, 14:16
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 3  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Цитата:
200 000 шагов в секунду
Мож так и задумывалось - это супермен бежит!

Обычно делаю три состояния. 1) Дефолтное, пассивное, т.е. объект стоит. 2) Движется влево, 3) Движется вправо.

И всё. Зачем атачить ноги? Попробуйте изменить-пересмотреть программную логику - будет проще реализовать задуманное.

Старый 14.08.2007, 14:58
ToXICus вне форума Посмотреть профиль Отправить личное сообщение для ToXICus Посетить домашнюю страницу ToXICus Найти все сообщения от ToXICus
  № 4  
Ответить с цитированием
ToXICus
 
Аватар для ToXICus

Регистрация: May 2006
Адрес: налево от Лондона
Сообщений: 447
Отправить сообщение для ToXICus с помощью ICQ
Действительно, тут явно перебор - атачить ноги. просто прорисовать все возможные варианты перемещения. кстати, так же сделаны модели в КС :-)
__________________
Чтоб понять, что ничего не знаешь - учись.

Старый 14.08.2007, 18:03
_Andruxa_ вне форума Посмотреть профиль Отправить личное сообщение для _Andruxa_ Найти все сообщения от _Andruxa_
  № 5  
Ответить с цитированием
_Andruxa_

Регистрация: Aug 2007
Сообщений: 4

вообще-то ноги никто и не оттачил ...
изначально "движущегося" человечка сделал путем вставки через какое-то количество кадров различных !статических! картинок : 1. человек стоит 2. шагает левой ногой 3. стоит 4. шагает правой 5. стоит

но так как на все варианты количества шагов получится слишком много мувиков (соответственно и размер ... ) попытался выводить эти картинки программно ...
но похоже поторопился

а про onEnterFrame еще не знаю ... чайник я , чайник
можь подскажите ?

а получился в результате этого скрипта не супермен а группа шагающих клонов ... забавно!

Старый 14.08.2007, 18:12
_Andruxa_ вне форума Посмотреть профиль Отправить личное сообщение для _Andruxa_ Найти все сообщения от _Andruxa_
  № 6  
Ответить с цитированием
_Andruxa_

Регистрация: Aug 2007
Сообщений: 4
понимаю , что сам неправильно сформулировал вопрос ...
попытаюсь еще раз :
вопрос то был в том , как вывести второй клип только когда закончился проигрываться первый клип .

Старый 14.08.2007, 18:29
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 7  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Смотря как вы организовали вложение мувиков и внутреннюю анимацию.
Как вы им управляете, клавишами на клавиатуре или мышкой?

Старый 14.08.2007, 18:55
_Andruxa_ вне форума Посмотреть профиль Отправить личное сообщение для _Andruxa_ Найти все сообщения от _Andruxa_
  № 8  
Ответить с цитированием
_Andruxa_

Регистрация: Aug 2007
Сообщений: 4
к сожалению пример сейчас не под рукой.
попытаюсь описать :
в библиотеку поместил мувик на один шаг , как я описывал ранее (из нескольких статических кадров)
далее создал один единственный кадр , в котором разместил кнопку , которая вызывает указанную выше функцию с переданным параметром "Количество шагов"...
примерно так.

Старый 14.08.2007, 19:08
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 9  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Ну если Вы управляете с клавы (допустим обычный курсор) можно было бы сделать так.
Сделать мувик, а в нем четыре кадра.
1) Стоит(внутренняя анимаци), 2) Идет влево(внутренняя анимаци), 3) Вправо(внутренняя анимаци), 4) Вниз(внутренняя анимаци).
По такой функции(просто пример из хелпа) тело ходит:
Код:
var DISTANCE:Number = 10;
var horn_sound:Sound = new Sound();
horn_sound.attachSound("horn_id");
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
    switch (Key.getCode()) {
    case Key.SPACE :
    horn_sound.start();
    break;
    case Key.LEFT :
    car_mc._x -= DISTANCE;
    break;
    case Key.UP :
    car_mc._y -= DISTANCE;
    break;
    case Key.RIGHT :
    car_mc._x += DISTANCE;
    break;
    case Key.DOWN :
    car_mc._y += DISTANCE;
    break;
    }
};
Key.addListener(keyListener_obj);
В примитиве так.

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

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

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


 


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


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