Привязка физической "нитки"
Доброе время суток.
Флешем занялся совсем недавно, с целью создать небольшой сайт-визитку по устоявшемуся дизайну, поэтому знаю очень мало и делаю всё по туторам из интернета.
Чтобы Вам понять, чего я хочу добиться, вот ссылка на то, что уже мной сделано: http://smartvel.ru/secret/flsh/web_main.swf
Я подозреваю, что код кривой и громоздкий (прикреплю в конец) и что можно сделать намного лучше, но суть не в этом. Вот эти криво анимированные нити от центра к кнопкам нужно сделать физическими, а также прикрепить их к вылетающим из центра кнопкам. Как это сделать? Нужно использовать какой-то физ. движок? Если можно, то поподробнее, буду очень признателен, если кто-то уделит время нубу.
Если есть какие-то советы и рекомендации начинающему флешеру - не откажусь.
p.s.
AS3.0 - это вообще первый язык, на котором я что-то писал и Flash я впервые в жизни открыл 3 дня назад, так что, как принято говорить на форумах, не судите строго. И не бросайтесь непонятками, пожалуйста :)
Код AS3:
//БОЛЬШАЯ КНОПКА
//выключаем маленькую кнопку
button.enabled=false
button2.enabled=false
//добавляем слушатель событий (клик на лого)
button_c.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
//если анимация маленькой кнопки в 1-м кадре, то она проигрывается,
{
if (bba.currentFrame==1 && AN1.currentFrame==1)
{
AN1.gotoAndPlay(1);
bba.gotoAndPlay(1);
cam.gotoAndPlay(1);
line.gotoAndPlay(1);
video.gotoAndPlay(1);
AN2.gotoAndPlay(1);
bba2.gotoAndPlay(1);
lamp.gotoAndPlay(1);
line2.gotoAndPlay(1);
svettext.gotoAndPlay(1);
*
//активируется баттон и ему присваивается слушатель
button.enabled=true
button2.enabled=true
button.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);
function fl_MouseOverHandler(event:MouseEvent):void
*
//Продолжается анимация кнопки при наведении
{
AN1.play()
}
button2.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler2);
function fl_MouseOverHandler2(event:MouseEvent):void
{
AN2.play()
}
//Слушатель -схождение мыши с маленькой кнопки
button.addEventListener(MouseEvent.MOUSE_OUT, fl_MouseOutHandler);
function fl_MouseOutHandler(event:MouseEvent):void
//Анимация приостанавливается
{
AN1.stop()
}
button2.addEventListener(MouseEvent.MOUSE_OUT, fl_MouseOutHandler2);
function fl_MouseOutHandler2(event:MouseEvent):void
//Анимация приостанавливается
{
AN2.stop()
}
//Если анимация не в первом кадре, то клик мышкой по лого проигрывает её назад
}
}
button_c.addEventListener(MouseEvent.CLICK, click2);
function click2(event:MouseEvent):void
{
if (bba.currentFrame==16 && AN1.currentFrame>=13)
{
*
button.addEventListener(Event.ENTER_FRAME, enter)
function enter(event:Event):void
{
button.enabled=false;
button2.enabled=false;
AN1.prevFrame();
bba.prevFrame();
cam.prevFrame();
line.prevFrame();
video.prevFrame();
AN2.prevFrame();
bba2.prevFrame();
lamp.prevFrame();
line2.prevFrame();
svettext.prevFrame();
*
//Удаляем слушатель, если анимация опять в начале!
button_c.addEventListener(MouseEvent.CLICK, click3);
function click3(event:MouseEvent):void
{
if(bba.currentFrame==1 && AN1.currentFrame==1 && cam.currentFrame==1 && line.currentFrame==1 && video.currentFrame==1 && bba2.currentFrame==1 && AN2.currentFrame==1 && lamp.currentFrame==1 && line2.currentFrame==1 && svettext.currentFrame==1)
{
button.removeEventListener(Event.ENTER_FRAME, enter)
}
}
}
}
}
//Анимация центрального логотипа
anim_c.stop()
button_c.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler_2);
function fl_MouseOverHandler_2(event:MouseEvent):void
{
anim_c.gotoAndPlay(currentFrame)
}
button_c.addEventListener(MouseEvent.MOUSE_OUT, mout_1);
function mout_1(event:MouseEvent):void
{
anim_c.gotoAndPlay(11)
}
|