Просмотр полной версии : Переделать из анимации в код AS
создал простенькую шлешку с падением мешка на весы с помощью анимации (см. вложение)
Помогите мне ее переделать, чтобы там было использование кода AS, а НЕ анимации
Juice_Green
24.10.2006, 11:57
чем в данном примере помешала анимация ?!
просто мне нужно именно через AS - задание такое
Juice_Green
24.10.2006, 12:52
ну если задание такое , тогда onEnterFrame либо setInterval и заглушка по координате Y объекта.
задание такое
Т.е. вы хотите, чтобы за вас сделали вашу работу?
Т.е. вы хотите, чтобы за вас сделали вашу работу?
нет(но не отказался бы) - я просто не представляю себе как это можно сделать с помощью AS.
Вот и прошу мне помочь разобраться.
Juice_Green
24.10.2006, 14:11
стандартное решение
//начальная инициализация объекта
выставить координаты
myclip.onEnterFrame = function():Void {
// то что должно делаться
приращение координаты по Y - падение объекта
// условие заглушка
if (текущая координата Y == координате заглушке)
delete this.onEnterFrame;
}
создал новый слой.
Теперь у меня слои на флешке только из одного кадра
на новый слой поместил след код
//начальная инициализация объекта
_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 ???
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;
}
}
ругается на последнюю }
**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
meshok.onEnterFrame = function()
{
this._y = 50 + i;
i = i + 5;
if (this._y == 100)
{
delete this.onEnterFrame;
}
}
а это откомпелировалось нормально
В чем разница???
назвал правый и левый части весов как 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;
}
}
но что-то немного не то - помогите пожалуйста доделать как в оригинале
Что то у меня не получается
есть предложения как можно все это исправить???
вот как я сделал - но там немного многовато на мой взгляд
Можно ли как-нибудь оптимизировать этот код??? или лучше не стоит???
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;
}
};
}
};
2 тарзан?
С ума сойти... Может не стоит писать столько сообщений подряд? Выходит какой-то монолог... Есть же функция редактирования сообщений...
извиняюсь за свой монолог
А что можешь посоветовать по моему вопросу???
2 тарзан:
Прикрепите лучше исходник...
я же прикрепил - см. пост #16
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.