Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Использование Tween в пользовательском классе (http://www.flasher.ru/forum/showthread.php?t=114113)

Nott 18.07.2008 17:11

Использование Tween в пользовательском классе
 
Доброго времени суток!
Пыталась решить проблему самостоятельно путем обмозговывания и поиска в Интернет, но не помогло. Поэтому обращаюсь с вопросом.
Для анимирования движения MovieClip'а использую расширения mx.transitions.Tween и mx.transitions.easing.*.
В .fla файле импортирую расширения:
Код:

import mx.transitions.Tween;
import mx.transitions.easing.*;

Далее описываю функцию типа:
Код:

function hideBg(clip:MovieClip)
        {
                var varTarget = clip;
                varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 0, 0.25, true);
        }

Если описывать и использовать эту функцию в .fla файле, то все работает отлично.
Проблема: существует пользовательский класс SiteContent (хранится в файле SiteContent.as). Необходимо функцию сделать методом этого класса. Но в таком случае компилятор ругается: "There is no method with the name 'Tween'".
Отмечу, что перед использованием второго варианта ипортирую в .fla расширения и класс так:
Код:

import mx.transitions.Tween;
import mx.transitions.easing.*;
import SiteContent;

C двумя пользовательскими классами подобная логика прокатывала, а с раширениями и классом не выходит.
Понять не могу, как правильно подключить всё. Буду признательна, если меня ткнут носом в ошибку. ;) Заранее спасибо!

Волгоградец 18.07.2008 17:39

Код:

import mx.transitions.Tween;

class Test
{
       
        private var _mc:MovieClip;
        private var clip:MovieClip;
       
        public function Test (mc:MovieClip)
        {
                _mc = mc;
                clip = _mc.createEmptyMovieClip("clip", 0);
                clip.beginFill(0xFF0000);
                clip.moveTo(0, 0);
                clip.lineTo(20, 0);
                clip.lineTo(20, 20);
                clip.lineTo(0, 20);
                clip.lineTo(0, 0);
               
                clip._y = 100;
        }
       
        public function follow ():Void
        {
                var myTween:Tween = new Tween(clip, "_x", mx.transitions.easing.None.easeNone,0, Stage.width, 100, false);
                myTween.onMotionFinished = function() {
                        myTween.start();
                }
        }
}

Использовать:
Код:

var a:Test = new Test(_root);
a.follow();


Nott 18.07.2008 17:49

Спасибо огромное, я всё поняла. Вы меня просто спасли =)


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

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