Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.10.2012, 17:38
Новичок на форуме
Отправить личное сообщение для SeqviriouM Посмотреть профиль Найти все сообщения от SeqviriouM
 
Регистрация: 22.10.2012
Сообщений: 3

Анимация Raphael
Здравствуйте.
Очень нужна помощь.
Недавно начал изучать библиотеку Raphael и столкнулся с проблемой. Нужно, чтобы после выполнения анимации, элемент исчезал(т.е. скрывался). В документации прочитал, что для этого надо просто в конце анимации вставить вызываемую после неё функцию.

im1.animate({'transform': "r" + 720}, 2e3, im1.hide1());

Вот пример моей анимации. Но вместо того чтобы вызвать функцию hide() в конце анимации, она вызывается сразу же, и вся анимация исчезает.
Ответить с цитированием
  #2 (permalink)  
Старый 26.10.2012, 14:38
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

вот что у тебя получается
z=function(x){
   alert ("z");
   if (typeof x=="function") x();
}

z1=function(){
   alert("z1")
}
// сначало сработает z1 и только потом z
z(z1());
// решение
z( function(){z1()} );


а значит
im1.animate({'transform': "r" + 720}, 2e3, function(){ im1.hide1() });
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 26.10.2012 в 14:46.
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2012, 12:52
Новичок на форуме
Отправить личное сообщение для SeqviriouM Посмотреть профиль Найти все сообщения от SeqviriouM
 
Регистрация: 22.10.2012
Сообщений: 3

Спасибо, разобрался)
Правда столкнулся с ещё одной проблемкой: хочу сделать чтобы при нажатии мыши на прямоугольник он трансформировался в треугольник.
Нашёл на офиц. сайте пример и делал точно так же как в нём:
rec.click(function()
{
rec.animate({path: "M150,100L300,100,200,200,z" ,"opacity":0.1})

})
Но при нажатии мыши, меняется только прозрачность, т.е. строчка path полностью игнорируется.
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2012, 18:14
Новичок на форуме
Отправить личное сообщение для SeqviriouM Посмотреть профиль Найти все сообщения от SeqviriouM
 
Регистрация: 22.10.2012
Сообщений: 3

Смотрю мало кто пользуется данной библиотекой
Решение проблемы:
Атрибут .attr({"path"}) можно менять только у объектов paper.path, т.е. если прямоугольник задать не через paper.rect(), а через paper.path(), то тогда данная анимация будет изменять данную фигуру на ту, которая указана в анимации.

Пример:

1) rec = paper.path("M100,300L300,300,300,400,100,400,z");
rec.attr({"fill": "red","opacity": 0.5});
rec.click(function()
{
rec.animate({path: "M100,300L300,300,200,400,z "},1e3)

})
Данный фрагмент код рисует прямоугольник, указанный в paper.path и при нажатии изменяет его, на треугольник указанный в анимации


2) rec = paper.rect(100,300,200,100);
rec.attr({"fill": "red","opacity": 0.5});
rec.click(function()
{
rec.animate({path: "M100,300L300,300,200,400,z "},1e3)

})
Данный фрагмент программы рисует только прямоугольник. Анимация по нажатию на него не работает т.к. прямоугольник нарисован не через paper.path
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает анимация при загрузки ajax ArtOs Общие вопросы Javascript 0 24.05.2012 17:52
Анимация движения Armen Общие вопросы Javascript 8 02.08.2011 18:32
Анимация и управление строчкой текста INI jQuery 2 31.08.2010 08:22
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Цикличность анимация? SashaBorandi jQuery 1 25.12.2008 09:20