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

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

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

Регистрация: Dec 2012
Сообщений: 13
По умолчанию зацикленная анимация circle

В принципе задачу я решил, только своим, "недалеким" способом. сам новичек и хотелось бы узнать как можно ее решить теми способами, которые я ниасилил. значит имеется круг, простое кольцо из пунктирного контура без заливки, которое нужно заставить циклически вращаться. сначала я пытался зациклить его с помощью создания классической анимации и последующим вставлением условного оператора if в общий блок кода (на таймлайне во флэше) примерно так.
Код AS3:
 if(circle.currentFrame == 20)
{
	gotoAndPlay(1)
}
может я неправильно указал в скобках путь к клипу, а может вообще не нужно обращаться к нему, но я пробовал по разному и с добавлением this и еще много чего. кстати сам объект находится в другом клипе и я пишу код на таймлайне внутри него.
второй способ с использованием одного кадра, слушателя событий ENTER_FRAME и свойства rotation у клипа. тоже так и не смог нормально прирастить одно к другому (

а потом просто вставил gotoAndPlay(1) в конце самой анимации, но ведь разбрасываться кусочками кода по всему проэкту это же не вариант. подскажите как сделать все это нормально! ))

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

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
По-хорошему, каждый MovieClip по умолчанию зациклен, если в конце анимации на кадре нет stop();
Грубо говоря, всегда по умолчанию происходит аналог вашего gotoAndPlay(1), если это вручную не отключить

Старый 17.02.2013, 22:28
Spacekeeper вне форума Посмотреть профиль Отправить личное сообщение для Spacekeeper Найти все сообщения от Spacekeeper
  № 3  
Ответить с цитированием
Spacekeeper
 
Аватар для Spacekeeper

Регистрация: Dec 2012
Сообщений: 13
прикол в том что анимация там дальше продолжается...
а это я и так знаю

Старый 17.02.2013, 22:39
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 4  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Тогда можно воспользоваться давним проверенным способом - анимацию поворота впихнуть в один мувиклип, а в другой, "родительский" засунуть его в один кадр. Тогда застопорив анимацию в "родительском" мувиклипе на том кадре, где мувиклип вращается, получим бесконечную анимацию без всяких gotoAndPlay() и вообще, по сути, без кода
То есть растащить возможные состояния кружка на разные мувиклипы - один с вращением, другой стационарный, третий, допустим, с изменением размера, и эти мувиклипы засунуть в другой, контейнерный мувик.

Старый 17.02.2013, 23:30
NoisyFlasher вне форума Посмотреть профиль Отправить личное сообщение для NoisyFlasher Найти все сообщения от NoisyFlasher
  № 5  
Ответить с цитированием
NoisyFlasher
 
Аватар для NoisyFlasher

Регистрация: Aug 2012
Сообщений: 70
А в чем трудность программного поворота?

Код AS3:
var speed: uint = 1;
var rect: Sprite = new Sprite();
 
rect.graphics.beginFill(0xFF0000);
rect.graphics.drawRect(0, 0, 50, 50);
rect.graphics.endFill();
rect.x = 100;
rect.y = 100;
addChild(rect);
 
rect.addEventListener(Event.ENTER_FRAME, handleEnterFrame);
 
private function handleEnterFrame(event:Event):void {
	rect.rotation += speed;
}


Последний раз редактировалось NoisyFlasher; 17.02.2013 в 23:31. Причина: Подправил названия для понятности
Старый 18.02.2013, 00:20
Spacekeeper вне форума Посмотреть профиль Отправить личное сообщение для Spacekeeper Найти все сообщения от Spacekeeper
  № 6  
Ответить с цитированием
Spacekeeper
 
Аватар для Spacekeeper

Регистрация: Dec 2012
Сообщений: 13
NoisyFlasher, с кодом разобрался. хватило всего пары строчек:
Код AS3:
rect.addEventListener(Event.ENTER_FRAME, handleEnterFrame);
 
function handleEnterFrame(event:Event):void {
	rect.rotation += 5;
}
только при добавлении addChild он начинает постоянно набирать скорость.

KumoKairo, мне кажется такой способ довольно хлопотный, но я попробую.

спасибо вам за ответы! )

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

Регистрация: Aug 2012
Сообщений: 70
ну, пара, это понятно - я просто больше написал, что бы можно было "из коробки" пример скопировать и посмотреть)
А про addChild и набор скорости не понял - это как так?..

Старый 18.02.2013, 02:21
Spacekeeper вне форума Посмотреть профиль Отправить личное сообщение для Spacekeeper Найти все сообщения от Spacekeeper
  № 8  
Ответить с цитированием
Spacekeeper
 
Аватар для Spacekeeper

Регистрация: Dec 2012
Сообщений: 13
Цитата:
Сообщение от NoisyFlasher Посмотреть сообщение
ну, пара, это понятно - я просто больше написал, что бы можно было "из коробки" пример скопировать и посмотреть)
А про addChild и набор скорости не понял - это как так?..
да вот сам не пойму. если добавить его вот так:
Код AS3:
addChild(rect);
rect.addEventListener(Event.ENTER_FRAME, handleEnterFrame);
 
function handleEnterFrame(event:Event):void {
	rect.rotation += 5;
}
то круг начинает вертеться не с постоянной скоростью, а разгоняться быстрее и быстрее.
вам конечно виднее, но я не вижу логики почему так происходит.

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

Регистрация: Aug 2012
Сообщений: 70
А если rect.rotation трейсить каждый раз - там как все изменяется?..
Можно .fla поглядеть - а то мне интересно аж стало)

Старый 18.02.2013, 16:04
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 10  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Пациент, видимо, вращает програмно мувик, в котором и без того происходит анимация вращения. Два движения суммируются иполучается нежданчик...

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

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

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


 


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


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