Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   класы на AS2 & Tween (http://www.flasher.ru/forum/showthread.php?t=65350)

Linuxoid_Alex 01.12.2004 03:51

класы на AS2 & Tween
 
Вложений: 1
Народ, помогите.
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

nuran 01.12.2004 06:21

Вот с такой инициализацией:
Код:

import animation;
var a:animation = new animation ();
a.animate ();

вызов функции "animate" выполняется успешно.

nuran 01.12.2004 06:33

Что это такое? :mad:
Код:

while (anim_clip['animation_' + i] != undefined) {
                        i++;
                }

Слушай, пиши как у тебя создаётся экземпляр класса :mad: .
Экстрасенсов здесь нет. :mad: :mad: :mad:

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

Linuxoid_Alex 01.12.2004 07:31

Цитата:

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.

nuran 01.12.2004 08:44

В идее говоришь? :mad: :mad: :mad:

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

Код:

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");

Но код твой - полная бредятина.

:mad: :mad: :mad:


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

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