imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Flash
Опции темы
Старый 02.11.2005, 22:35     # 1
Sambotey
Junior Member
 
Регистрация: 18.02.2004
Адрес: Краснодар
Сообщения: 94

Sambotey Нимб уже пробиваетсяSambotey Нимб уже пробивается
ActionScript по Гурскому

Учу ActionScript по Гурскому. Уже в первом же проекте "Прыгающий мяч" неудача - скрипт, прописаный в отдельном слое, но в том же единственном кадре, что и мяч, не работает. А именно, мяч как был на месте, так там и остался. Скрипт:
ball._x = -50;
ball._y = 170;
contour._x = -50;
contour._y = 170;
_root.onEnterFrame = function() {
ball._x += 2;
contour._x += 2;
};
Подскажите, почему...
Sambotey вне форума  
Старый 03.11.2005, 01:36     # 2
boor
::VIP::
Хрюндель
 
Аватар для boor
 
Регистрация: 27.10.2002
Адрес: Столица блин
Сообщения: 650

boor Простой бог
boor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой богboor Простой бог
Sambotey
Хм первое ты должен создать новый ролик и назвать его ball во флешке
там нарисовать шар.
Патом этот ролик вставить в основную сцену.
И толька патом создать новый слой и там в кадре прописать этот скрипт.
А так проста флеш не видит объекта для которого этот скрипт.
__________________
Если Вас выписали из сумасшедшего дома, это не значит, что Вас вылечили.
Просто Вы стали как все.
boor вне форума  
Старый 03.11.2005, 09:44     # 3
Sambotey
Junior Member
 
Регистрация: 18.02.2004
Адрес: Краснодар
Сообщения: 94

Sambotey Нимб уже пробиваетсяSambotey Нимб уже пробивается
В слое Layer1 я нарисовал шарик, сделал его Movie Clip. Затем создал новый слой ( на панели Timpline он располагается выше первого), назвал его «Action* и там прописал весь вышеизложенный скрипт (этот скрипт я пробовал прописывать и в том же слое Layer1, но эффект тот же).
Кстати, по Гурскому, я увеличил скрипт:
ball._x = -50;
ball._y = 170;
contour._x = -50;
contour._y = 170;
var X0 = 50;//координата начальной точки по Х
var Y0 = 170;//координата начальной точки по Y
var t = 0;//время движения
var a = 2;//ускорение
var Vy = 0;//начальное значение вертикальной состовляющей скорости
var Vx = 6;//начальное значение горизонтальной состовляющей скорости
var newV = null;
var newX = null;
var newY = null;
trace(ball._x);
_root.onEnterFrame = function() {
if (ball._y>350) {
Vy = -newV*0.85;
Vx = Vx*0.85;
t = 0.6;
X0 = newX;
Y0 = newY;
}
ball._x = X0+Vx*t;
ball._y = Y0+Vy*t+a*t*t/2;
newV = Vy+a*t;
newY = ball._y;
newX = ball._x;
t += 0.6;
trace(t);
};

Т.е. шарик должен прыгать. А у меня он все время на месте...
Так вот. Последняя строка функции - trace(t) - в окне Output выводит постоянные изменения переменной t, т.е. скрипт работает. Но, что самое интересное, при выводе с помощью trace(ball._x) (это еще до вызова функции), в Output я с удивлением читаю "indefined"!...
Вот уж никак не ожидал. Что бы это могло значить, ведь Movie Clip с именем ball у меня существует?...
Sambotey вне форума  
Старый 21.11.2005, 14:23     # 4
woo
Flasher
 
Регистрация: 04.11.2003
Адрес: Питер
Сообщения: 76

woo Известность не заставит себя ждать
Cool

задержал ответ... но я думаю, теперь все будет понятно.
Исходник в приложении.

Для ленивых привожу actionscript который управляет движением мяча:

onClipEvent (load) { //задаем начальные значения параметров
(между прочим именно в этом была ошибка Sambotey)
_x = 0;
_y = 0;
var X0 = 140;//координата начальной точки по Х
var Y0 = 30; //координата начальной точки по Y
var t = 0; //время движения
var a = 10; //ускорение
var Vy = 12; //начальное значение вертикальной состовляющей скорости
var Vx = 6; //начальное значение горизонтальной состовляющей скорости
}
onClipEvent (enterFrame) {
if(_y>250) { //если достигли земли то, меняем направление скорости.
Vy=-newV*0.85; //поскольку удар о землю, то часть скорости гасится.
Vx=Vx*0.97;
t=0.9;
X0=newX;
Y0=newY;
//trace("shpok");
_rotation += Vx; //мяч от удара о землю вращается на некоторый угол.
}
_y=Y0+Vy*t+a*t*t/2; //вычисляем тукущее положение по Y
_x=X0+Vx*t; //вычисляем тукущее положение по X
newV=Vy+a*t; //вычисляем значение Скорости по Y
newY=_y; //переопределяем значение Y0
newX=_x; //переопределяем значение X0 на случай, если следующим шагом будет "земля" и придется менять направление движения.
t+=0.7; //увеличиваем время с начала пуска.
}
Вложения
Тип файла: rar ball.rar (110.9 Кбайт, 22 просмотров - Кто скачивал? )
woo вне форума  


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

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

Быстрый переход


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




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.