![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2006
Сообщений: 11
|
Уважаемые знатоки!
Помогите, плз, начинающей девушке сделать меню в виде половины циферблата часов или спидометра, так чтобы при наведении на пункты меню стрелка поворачивалась на нужный угол, при этом слегка покачиваясь при остановке. Честно целый день искала примеры. Нашла маятники и слежение за курсором. А мне бы не слежение, а просто поворот при наведении на пункт меню.. Спасибо огромное за помощь всем, кто откликнется. |
|
|||||
|
Banned
[+1 21.02.08]
[+4 21.02.08] [+5 13.03.08] [+4 13.03.08] Регистрация: Feb 2008
Сообщений: 63
|
это можно сделать даже стандартными командами проще простого.
Вопрос в том,будет ли меню изменяться(добавляться элементы) или количество пунктов останется неизменным? то есть,если 4 пункта - п.1 - стрелка поворачивается на 45 гр. п.2 - на 90 п.3 - на 135 п.4 - на 180. Я прально понял? В общем тут есть два варианта - если меню не будет меняться,можно просто при наведении курсора на нужный мувик мувик со стрелкой перемещался на нужный кадр,там где поворот.Если будет меняться - вам придётся вспомнить математику. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 11
|
Вспомнить математику, а точнее углы в градусах, это не сложно
А вот как сделать, чтобы при наведении на п.1 стрелка повернулась на угол1, при наведении на п.2 стрелка повернулась на угол2. Не прыгнула, а именно повернулась, покачиваясь в конце движения. |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
На счет покачивания, можно это вручную анимировать и запускать в нужный момент.
myMc.onPress = function() {
rotateArrow(60, 3);
}
function rotateArrow(angle:Number, speed:Number):Void {
arrowMc.onEnterFrame = function() {
if(arrowMc._rotation > angle) {
arrowMc._rotation -=speed;
}else if(arrowMc._rotation < angle) {
arrowMc._rotation +=speed;
}else {
arrowMc.gotoAndPlay(2); // вот тут запускается анимация дрожания
delete arrowMc.onEnterFrame;
}
}
}
Последний раз редактировалось Obi; 05.03.2008 в 21:43. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 11
|
Я не очень поняла, что куда надо поместить.. На пункты меню надо ведь вызов функции или что-то там? Чтобы при наведении на пункт стрелка поворачивалась.. А саму функцию просто в jnltkmysq слой action? Можно мне подробнее, плиззз!!!
|
|
|||||
|
loading 50%
|
мазель, я бы сделал как то так.
![]() |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 11
|
Спасибо за попытку, но мне, к сожалению, так не подходит(( следить за мышкой и подсвечивать кнопки я справилась и сама. А мне надо вообще без слежения за мышкой, только поворот при наведении на кнопку...
|
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Цитата:
import flash.geom.Point;
import caurina.transitions.Tweener; // http://code.google.com/p/tweener/ Copyright (c) 2006-2007 Zeh Fernando and Nate Chatellier
var centerPoint:Point = new Point(Stage.width/2, Stage.height/2);
var radius:Number = 160;
var amountParas:Number = 15;
var myArrow:MovieClip;
buildMenu(centerPoint,radius,amountParas);
createArrow();
function buildMenu(centerPoint:Point, radius:Number, amountParas:Number):Void {
var step:Number = Math.PI*2/amountParas;
var angle:Number = 0;
var rotAng:Number = 0;
for (var i:Number = 0; i<amountParas; i++) {
createPara(_root,new Point((Math.sin(angle)*radius)+centerPoint.x, (Math.cos(angle)*radius)+centerPoint.y),30,30,i,rotAng);
angle += step;
rotAng -=360/amountParas;
}
}
function createPara(cont:MovieClip, pos:Point, w:Number, h:Number, depth:Number, thisAngle:Number):Void {
var mc:MovieClip = cont.createEmptyMovieClip("paraMc"+depth, depth);
mc._x = pos.x;
mc._y = pos.y;
mc.lineStyle(2,0xFF0000);
mc.beginFill(0x000000);
mc.moveTo(0,0);
mc.lineTo(w,0);
mc.lineTo(w,h);
mc.lineTo(0,h);
mc.lineTo(0,0);
mc.endFill();
mc.onPress = function() {
Tweener.addTween(myArrow, { _rotation:thisAngle, time:1, transition:"easeinoutexpo" } );
}
}
function createArrow():Void {
myArrow = _root.createEmptyMovieClip("arrow", _root.getNextHighestDepth());
myArrow._x = centerPoint.x+5;
myArrow._y = centerPoint.y+5;
myArrow.lineStyle(3,0x0000FF);
myArrow.moveTo(0,0);
myArrow.lineTo(0,radius-15);
}
Я правильно понял задачу? UPD: А, ну да, еще скачать пакет отсюда и в флеше прописать путь к нему. Последний раз редактировалось Obi; 06.03.2008 в 01:53. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 11
|
Ух ты... Спасибо большое, пойду разбираться..
|
|
|||||
|
Banned
[+1 21.02.08]
[+4 21.02.08] [+5 13.03.08] [+4 13.03.08] Регистрация: Feb 2008
Сообщений: 63
|
мазель,да лучше бы сделали по кадрам переходы.Это уже черезчур - писать для такого класс.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|