PDA

Просмотр полной версии : Переделать из анимации в код AS


тарзан
24.10.2006, 11:50
создал простенькую шлешку с падением мешка на весы с помощью анимации (см. вложение)
Помогите мне ее переделать, чтобы там было использование кода AS, а НЕ анимации

Juice_Green
24.10.2006, 11:57
чем в данном примере помешала анимация ?!

тарзан
24.10.2006, 12:08
просто мне нужно именно через AS - задание такое

Juice_Green
24.10.2006, 12:52
ну если задание такое , тогда onEnterFrame либо setInterval и заглушка по координате Y объекта.

etc
24.10.2006, 13:21
задание такое
Т.е. вы хотите, чтобы за вас сделали вашу работу?

тарзан
24.10.2006, 14:02
Т.е. вы хотите, чтобы за вас сделали вашу работу?
нет(но не отказался бы) - я просто не представляю себе как это можно сделать с помощью AS.
Вот и прошу мне помочь разобраться.

Juice_Green
24.10.2006, 14:11
стандартное решение

//начальная инициализация объекта
выставить координаты
myclip.onEnterFrame = function():Void {
// то что должно делаться
приращение координаты по Y - падение объекта
// условие заглушка
if (текущая координата Y == координате заглушке)
delete this.onEnterFrame;
}

тарзан
24.10.2006, 14:35
создал новый слой.
Теперь у меня слои на флешке только из одного кадра
на новый слой поместил след код

//начальная инициализация объекта
_root.meshok._x=50;
_root.meshok._y=50;
i=5;
myclip.onEnterFrame = function():Void {
_root.meshok._y=50+i;
i=i+5;
// условие заглушка
if (_root.meshok._y == 100)
{
delete this.onEnterFrame;
}
}

где у меня meshok - название экземпляра для символа мешка

а что писать мне вместо myclip ???

Хемуль
24.10.2006, 15:00
meshok.onEnterFrame = function()
{
this._y = 50 + i;
i = i + 5;
if (this._y == 100)
{
delete this.onEnterFrame;
}
}

Кажется...

Juice_Green
24.10.2006, 15:01
для этого надо искать, читать смотреть:
//начальная инициализация объекта
_root.meshok._x=50;
_root.meshok._y=50;
i=5;
_root.meshok.onEnterFrame = function():Void {
this._y=50+i;
i=i+5;
// условие заглушка
if (this._y == 100)
{
delete this.onEnterFrame;
}
}

тарзан
24.10.2006, 15:09
ругается на последнюю }

**Error** Scene=Scene 1, layer=AS, frame=1:Line 5: '{' expected
_root.meshok.onEnterFrame = function():Void {

**Error** Scene=Scene 1, layer=AS, frame=1:Line 13: Unexpected '}' encountered
}

Total ActionScript Errors: 2 Reported Errors: 2

тарзан
24.10.2006, 15:10
; - не помогает

тарзан
24.10.2006, 15:13
meshok.onEnterFrame = function()
{
this._y = 50 + i;
i = i + 5;
if (this._y == 100)
{
delete this.onEnterFrame;
}
}

а это откомпелировалось нормально
В чем разница???

тарзан
24.10.2006, 15:34
назвал правый и левый части весов как right и left
и остановился на следующем:

meshok.onEnterFrame = function()
{
this._y = 70 + i;
i = i + 5;
if (this._y == 200)
{
left.onEnterFrame = function()
{
this._y = 415-i;
i = i - 5;

if (this._y == 400)
{
delete this.onEnterFrame;
}

}
}

if (this._y == 220)
{
delete this.onEnterFrame;
}
}

но что-то немного не то - помогите пожалуйста доделать как в оригинале

тарзан
25.10.2006, 16:54
Что то у меня не получается
есть предложения как можно все это исправить???

тарзан
25.10.2006, 22:38
вот как я сделал - но там немного многовато на мой взгляд
Можно ли как-нибудь оптимизировать этот код??? или лучше не стоит???

meshok.onEnterFrame = function() {
this._y = 70+i;
i = i+5;
if (this._y == 200) {
left.onEnterFrame = function() {
this._y = 290+j;
j = j+5;
if (left._y == 300) {
delete this.onEnterFrame;
}
};
}
if (this._y == 215) {
delete this.onEnterFrame;
znak._alpha = 100;
girya._alpha = 100;
girya.onEnterFrame = function() {
this._y = 100+k;
k = k+5;
if (this._y == 215) {
znak._alpha = 0;
right.onEnterFrame = function() {
this._y = 290+h;
h = h+5;
if (this._y == 290) {
delete this.onEnterFrame;
}
};
meshok.onEnterFrame = function() {
this._y = 210-n;
n = n+5;
if (this._y == 200) {
delete this.onEnterFrame;
}
};
left.onEnterFrame = function() {
this._y = 300-s;
s = s+5;
if (left._y == 290) {
delete this.onEnterFrame;
}
};
}
if (this._y == 225) {
delete this.onEnterFrame;
ravno._alpha = 100;
}
};
}
};

Хемуль
26.10.2006, 12:52
2 тарзан?
С ума сойти... Может не стоит писать столько сообщений подряд? Выходит какой-то монолог... Есть же функция редактирования сообщений...

тарзан
26.10.2006, 13:16
извиняюсь за свой монолог
А что можешь посоветовать по моему вопросу???

Хемуль
26.10.2006, 14:05
2 тарзан:
Прикрепите лучше исходник...

тарзан
26.10.2006, 15:12
я же прикрепил - см. пост #16