Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 01.12.2004, 03:51
  № 1  
Linuxoid_Alex
Guest

Сообщений: n/a
По умолчанию класы на AS2 & Tween

Народ, помогите.
Eсть функция:
Код:
function animate(t:Number)
{
  var i:Number = 0;
  while (anim_clip['animation_'+i]!=undefined)
  {
    i++;
  }
  anim_clip.createEmptyMovieClip('animation_'+i,anim_clip.getNextHighestDepth());
  anim_clip['animation_'+i].onEnterFrame = function()
  {
    if ((t+speed)<maxVal)
    {
      t += speed;
    }else
    {
      t = maxVal;
    }
  }
}
PS: Все переменные объявлены в класе.
Пытаюсь вызвать её:
a.animate(column_clip._height);
нифига не происходит...
Помогите найти и исправить ошибку, pls
Вложения
Тип файла: zip animation.zip (457 байт, 121 просмотров)

Старый 01.12.2004, 06:21
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 2  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Вот с такой инициализацией:
Код:
import animation;
var a:animation = new animation ();
a.animate ();
вызов функции "animate" выполняется успешно.
__________________
flash/flex/unity

Старый 01.12.2004, 06:33
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 3  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Что это такое?
Код:
while (anim_clip['animation_' + i] != undefined) {
			i++;
		}
Слушай, пиши как у тебя создаётся экземпляр класса .
Экстрасенсов здесь нет.

А после и поговорим, что у тебя не работает.
__________________
flash/flex/unity

Старый 01.12.2004, 07:31
  № 4  
Linuxoid_Alex
Guest

Сообщений: n/a
Цитата:
while (anim_clip['animation_' + i] != undefined)
{
i++;
}
поиск незанятого клипа, сори, ступил... . Нафиг не надо это
вызов:
Код:
//------------ create clip:
_root.createEmptyMovieClip('2DColumn',_root.getNextHighestDepth());
_root['2DColumn'].lineStyle(1,0);
_root['2DColumn'].beginFill(0);
_root['2DColumn'].moveTo(0,0);
_root['2DColumn'].lineTo(100,0);
_root['2DColumn'].lineTo(100,1);
_root['2DColumn'].lineTo(0,1);
_root['2DColumn'].lineTo(0,0);
_root['2DColumn'].endFill();
//------------ animate clip:
var a:animation = new animation('easy',10,100,_root['2DColumn']);
a.animate(_root['2DColumn']._height);
PS: Ошибка не в синтаксисе, а в "идее". Imho.

Старый 01.12.2004, 08:44
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 5  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
В идее говоришь?

По моему так будет намного проще:

Код:
import mx.transitions.Tween;
var $easeType:Function = mx.transitions.easing.Strong.easeInOut;
var newTween:Tween = new mx.transitions.Tween (_mc, "_xscale", $easeType, 0, 100, 2, true);
var newTween:Tween = new mx.transitions.Tween (_mc, "_yscale", $easeType, 0, 100, 2, true);
// Где _mc - любой мувик
А конкретно по твоему коду:

Код:
class animation
{
	private var anim_clip:MovieClip;
	private var type:String;
	private var speed:Number;
	private var maxVal:Number;
	//--------------------------------------------------------------------------------
	public function animation (t:String, s:Number, max:Number, target_mc:MovieClip)
	{
		type = t;
		speed = s;
		maxVal = max;
		anim_clip = target_mc;
	}
	//--------------------------------------------------------------------------------
	public function animate (param:String):Void
	{
		var mc:MovieClip = anim_clip.createEmptyMovieClip ('animation', anim_clip.getNextHighestDepth ());
		mc.args = arguments;
		mc._class = this;
		mc.onEnterFrame = function ()
		{
			if ((mc._class.anim_clip[mc.args[0]] + mc._class.speed) < mc._class.maxVal) {
				mc._class.anim_clip[mc.args[0]] += mc._class.speed;
			} else {
				mc._class.anim_clip[mc.args[0]] = mc._class.maxVal;
				mc.onEnterFrame = undefined;
			}
		};
	}
}
Запуск:

Код:
var a:animation = new animation ('easy', 10, 200, ball_mc);
a.animate ("_height");
Но код твой - полная бредятина.

__________________
flash/flex/unity


Последний раз редактировалось nuran; 01.12.2004 в 08:47.
Создать новую тему   Часовой пояс GMT +4, время: 20:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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