Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   помогите разобраться с относительными и абсолютными путями (http://www.flasher.ru/forum/showthread.php?t=56418)

Emmanuil 30.03.2004 17:51

помогите разобраться с относительными и абсолютными путями
 
У меня есть скрип написаный в мувиклипе 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 {

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

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

Flasham 30.03.2004 19:03

Хи
 
Привет!

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

Цитата:

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.

удачи

Emmanuil 31.03.2004 12:31

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();
}

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

Flasham 08.04.2004 12:38

Привет!

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

удачи


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

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