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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Mar 2004
Адрес: Украина, Винница
Сообщений: 4
По умолчанию помогите разобраться с относительными и абсолютными путями

У меня есть скрип написаный в мувиклипе Angel вида :
onClipEvent (enterFrame) {
speed = 8;
Spot_x = _root._xmouse;
Spot_y = _root._ymouse;
delta_x = _x - Spot_x;
delta_y = _y - Spot_y;
targetRotation = -Math.atan2(delta_x, delta_y)/(Math.PI/180);

// move beetle toward the target and stop when it gets there
if (Math.sqrt((delta_x*delta_x)+(delta_y*delta_y))>(speed+4)) {
_y -= speed*Math.cos(targetRotation*(Math.PI/180));
_x += speed*Math.sin(targetRotation*(Math.PI/180));
};
play();
}

Я хочу записать все скрипты в первом фрейме головной сцены попробывал исправить пути в обработчиках на абсолютные. зделал это примерно так
запихнул в первый фрейм отдельного слоя головной сцены скрипт в таком виде
Angel.onEnterFrame = function {
speed = 8;
Spot_x = _root._xmouse;
Spot_y = _root._ymouse;
delta_x = Angel._x - Spot_x;
delta_y = Angel._y - Spot_y;
targetRotation = -Math.atan2(delta_x, delta_y)/(Math.PI/180);
// calculate the two methods of rotation

//
// move beetle toward the target and stop when it gets there
if (Math.sqrt((delta_x*delta_x)+(delta_y*delta_y))>(speed+4)) {
Angel._y -= speed*Math.cos(targetRotation*(Math.PI/180));
Angel._x += speed*Math.sin(targetRotation*(Math.PI/180));
};

play();
}


При попытке запустить ролик выдаётся ошибка
Scene=Scene 1, Layer=Layer 29, Frame=1: Line 1: Function name expected
Angel.onEnterFrame = function {

знаю ошибку допустил елементарную, но как прописывать абсолютные пути на обработчик нигде в книгах найти не могу, ПОМОГИТЕ ПОЖАЛУЙСТА или дайте ссылки на литературу !

Заранее спасибо

Старый 30.03.2004, 19:03
Flasham вне форума Посмотреть профиль Отправить личное сообщение для Flasham Посетить домашнюю страницу Flasham Найти все сообщения от Flasham
  № 2  
Flasham

Регистрация: Oct 2003
Адрес: Украина, Киев
Сообщений: 44
По умолчанию Хи

Привет!

Пути тут ни причем, если повнимательнее прочитать сообщение об ошибке. Имхо тут ошибка в синтаксисе

Цитата:
Angel.onEnterFrame = function {
а надо

Angel.onEnterFrame = function (){

дальше, если ты будеш писать в таком стиле, то все переменных, в теле данной ф-ции, объявляй как

Angel.variable_name = ....

но лучше исп. другой вариант, напр.

function initSomeClip(movieClip){
movieClip.speed=10;

movieClip.onEnterFrame = function(){
movieClip._x+=movieClip.speed;
}

}

далее чтобы запустить ф-ию пишеш

initSomeClip(_root.Angle);

тогда данную функцию можно испльзовать не только для клипа с имянем Angel.

удачи
__________________
Удачи,
Flasham

Старый 31.03.2004, 12:31
Emmanuil вне форума Посмотреть профиль Отправить личное сообщение для Emmanuil Найти все сообщения от Emmanuil
  № 3  
Emmanuil

Регистрация: Mar 2004
Адрес: Украина, Винница
Сообщений: 4
По умолчанию Re: Хи

Цитата:
Оригинал написал(а) Flasham

Я привел скрипт к виду Angel.onEnterFrame = function () {
Angel.speed = 8;
Angel.Spot_x = _root._xmouse;
Angel.Spot_y = _root._ymouse;
Angel.delta_x = Angel._x - Spot_x;
Angel.delta_y = Angel._y - Spot_y;
Angel.targetRotation = -Math.atan2(Angel.delta_x, Angel.delta_y)/(Math.PI/180);


// move beetle toward the target and stop when it gets there
if (Math.sqrt((Angel.delta_x*Angel.delta_x)+(Angel.delta_y*Angel.delta_y))>(Angel.speed+4)) {
Angel._y -= Angel.speed*Math.cos(Angel.targetRotation*(Math.PI/180));
Angel._x += Angel.speed*Math.sin(Angel.targetRotation*(Math.PI/180));
}
play();
}

Теперь ошибка ичезла но и мувик перестал за мышкой литать

Старый 08.04.2004, 12:38
Flasham вне форума Посмотреть профиль Отправить личное сообщение для Flasham Посетить домашнюю страницу Flasham Найти все сообщения от Flasham
  № 4  
Flasham

Регистрация: Oct 2003
Адрес: Украина, Киев
Сообщений: 44
Привет!

Убири в конце Play() и проверь математику.

удачи
__________________
Удачи,
Flasham

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

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

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


 


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


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