Просмотр полной версии : flash6 и flash8
pupo4kin
09.11.2006, 16:11
при установке flash6 в семплах есть такой файл, где двигается божья коровка с помощью джойстика, управляемого мышкой. Когда отпускаешь джойстик, то он возвращается в исходное положение. Этот возврат осуществляется с помощью такого кода:
tension=0.5;
decay=0.5;
xSpeed = -knob._x*tension+(xSpeed*decay);
knob._x += xSpeed;
получаются такие своеобразные колебания.
Почему-то этот код не работает во flash8!!!!
pupo4kin
09.11.2006, 16:35
:)) всё гениальное просто!!!
СПАСИБО!!
pupo4kin
09.11.2006, 19:42
ещё одна проблема появилась! не получается создать два такких объекта. Т.е. создать получается, но выходит какая-то белиберда с возвращением...почему-то не в те точки возвращаются мувики!!
Я не умею гадать. Как и что вы там сделали я не знаю.
pupo4kin
09.11.2006, 20:10
Вот так выглядит код для муви клипа "mc":
tension =0.5;
decay =0.5;
x=mc._x;
y=mc._y;
xSpeed=0;
ySpeed=0;
onEnterFrame = function() {
r=Math.sqrt((_root._xmouse-x)*(_root._xmouse-x)+(_root._ymouse-y)*(_root._ymouse-y));
r=Math.ceil(r);
with(mc){
if (r<=50){
_x=_parent._xmouse;
_y=_parent._ymouse;
} else {
xSpeed =-_x*tension+(xSpeed*decay);
_x += xSpeed+x;
ySpeed = -_y*tension+(ySpeed*decay);
_y += ySpeed+y;
}
}
}
если на сцену поместить другой мувик, и сделать, чтобы он так же реагировал на курсор, то ничего не получается.
tension=0.5;
decay=0.5;
x=mc._x;
y=mc._y;
x1=mc1._x;
y1=mc1._y;
xSpeed=0;
ySpeed=0;
onEnterFrame=function() {
r=Math.sqrt((_root._xmouse-x)*(_root._xmouse-x)+(_root._ymouse-y)*(_root._ymouse-y));
r=Math.ceil(r);// расстояние от курсора до центра муви клипа
with(mc){
if (r<=100){
_x=_parent._xmouse;
_y=_parent._ymouse;
} else {
xSpeed =-_x*tension+(xSpeed*decay);
_x += xSpeed+x;
ySpeed = -_y*tension+(ySpeed*decay);
_y += ySpeed+y;
}
}
r=Math.sqrt((_root._xmouse-x1)*(_root._xmouse-x1)+(_root._ymouse-y1)*(_root._ymouse-y1));
r=Math.ceil(r);
with(mc1){
if (r<=50){
_x=_parent._xmouse;
_y=_parent._ymouse;
} else {
xSpeed =-_x*tension+(xSpeed*decay);
_x += xSpeed+x1;
ySpeed = -_y*tension+(ySpeed*decay);
_y += ySpeed+y1;
}
}
}
Назвать мувиклипы mc0 и mc1, а потом вставить скрипт
tension = 0.5;
decay = 0.5;
onEnterFrame = function () {
for (var i = 0; i < 2; i++) {
var mc = this["mc" + i];
if (!mc.flag) {
mc.flag = true;
mc.x = mc._x;
mc.y = mc._y;
mc.xSpeed = 0;
mc.ySpeed = 0;
}
var r = Math.ceil (Math.sqrt ((this._xmouse - mc.x) * (this._xmouse - mc.x) + (this._ymouse - mc.y) * (this._ymouse - mc.y)));
if (r < 101) {
mc._x = this._xmouse;
mc._y = this._ymouse;
} else {
mc.xSpeed = -mc._x * tension + (mc.xSpeed * decay);
mc._x += mc.xSpeed + mc.x;
mc.ySpeed = -mc._y * tension + (mc.ySpeed * decay);
mc._y += mc.ySpeed + mc.y;
}
}
};
pupo4kin
09.11.2006, 20:37
ха! с циклом я тоже делал..тока без флага...
спасибо, очень помог....буду разбираться...
pupo4kin
09.11.2006, 20:49
зайди на http://www.gringos.ru/v3/ там ещё ничего не доделано, но меню, благодаря тебе, получилось..
Посмотрел, надо либо уменьшить зону реагирования, либо растояние мужде кружками подобрать чтобы они не пересекались, либо и то и другое. А то я умудряюсь собрать в одну кучу web, logo и print.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.