Форум 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 и unloadClip (http://www.flasher.ru/forum/showthread.php?t=121379)

sector_222 14.02.2009 23:01

tween и unloadClip
 
здравствуйте,
Код AS1/AS2:

varTarget = _root.Windoww.mediaContent;
varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 0, 0.25, true);
 
varTarget.varTween.onMotionFinished = function() {
                        _root.my_mcl.unloadClip(_root.Windoww.mediaContent);
        };




подскажите пожалуйста - почему данный код срабатывает в _root, а когда его же вношу в функцию on(release) нужной мне кнопки - код не срабатывает - только если просто
Код AS1/AS2:

_root.my_mcl.unloadClip(_root.Windoww.mediaContent);


Fatality 15.02.2009 02:39

Все работает, как в кнопке, так и без нее
Код AS1/AS2:

on (release) {
        import mx.transitions.Tween;
        import mx.transition.easing.*;
        varTarget = _root.Windoww.mediaContent;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 0, 0.25, true);
 
        varTarget.varTween.onMotionFinished = function()
        {
                varTarget.unloadClip();
        };
}

Но это устаревший вариант использования событий, мы же не во Flash 5 работаем !
Куда лучше использовать событие кнопки onRelease в том же _root.
И еще, это что ?
Цитата:

_root.my_mcl.unloadClip (_root.Windoww.mediaContent);
тут или
Код AS1/AS2:

varTarget.unloadClip();

использование unloadMovie как метода (удалит _root.Windoww.mediaContent) или
Код AS1/AS2:

unloadMovie(varTarget);

использование unloadMovie как функции (результат тот же).
При чем тут _root.my_mcl, вообще непонятно.

sector_222 16.02.2009 15:54

Цитата:

При чем тут _root.my_mcl, вообще непонятно.
а это я затупил - теперь ясно почему не шло - надо было просто объявить классы
Код AS1/AS2:

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

спасибо =)!!!:drinks:

у меня другой вопрос связанный с прелоадером:

в руте есть код:

Код AS1/AS2:

// загрузчик изображения
//Создаём объект Movie Clip Loader
var my_mcl:MovieClipLoader = new MovieClipLoader();
//Создаём объект класса Object, который будет выступать у нас в роли "слушаетля"
//событий, которые генерирует Movie Clip Loader
var my_lst:Object = new Object();
//Делаем обект my_lst "слушателем" объекта my_mcl
my_mcl.addListener(my_lst);
//Создаём событие, которое будет возникать при СТАРТЕ ЗАГРУЗКИ
//
//Параметр target_mc, который передаётсяв теле функции - это клип-контейнер, в
//в который загружается картинка или флешка с помощью Movie Clip Loader.
my_lst.onLoadStart = function(target_mc:MovieClip) {
 
        //будет отображаться ход загрузки внешнего файла
        varTarget = _root.Windoww.preload_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 100, 0.25, true);
};
//target_mc - это клип-контейнер, в который подгружается внешний файл
//loaded - это количество уже загруженных данных (в байтах)
//total - общий размер загружаемого файла в байтах
my_lst.onLoadProgress = function(target_mc:MovieClip, loaded:Number, total:Number) {
        /*trace("Процент загрузки в "+target_mc+" составляет "+varPercent+"%");*/
        //Вычисляем процентное отношение загруженных данных к общему размеру файла
        varPercent = loaded/total*100;
        //Показываем процент загрузки в текстовых полях
        _root.Windoww.preload_mc.preload_txt.text = _root.Windoww.preload_mc.duplicate_txt.text=Math.round(varPercent)+"%";
};
//Создаём событие, которое будет срабатывать по завершению загрузки
my_lst.onLoadComplete = function(target_mc:MovieClip){
        //Когда закончена загрузка скрываем клип preload_mc, в котором показывался
        //процент загрузки.
        /*varTarget = _root.Windoww.preload_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 0, 0.5, true);*/

};
//событие onLoadInit
my_lst.onLoadInit = function(target_mc:MovieClip) {
 
        varTarget = target_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeIn, 0, 100, 1, true);
};

в кнопке есть такой код:
Код AS1/AS2:

varTarget = _root.Windoww.mediaContent;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 0, 0.25, true);
          _root.my_mcl.loadClip(_root.ImgURL, _root.Windoww.mediaContent);


в итоге естественно прелоадер работает только когда я нажимаю кнопку первый раз - до меня не доходит как вызывать прелоадер ????? при каждом нажатии на кнопку :wacko: Может просто убрать весь код из рута в кнопку?

nOobCrafter 16.02.2009 16:20

Обьяви все в цикле, если хочешь для разных ссылок, иначе картинка уже считай загружена.

sector_222 16.02.2009 16:30

цикл не пойдёт я думаю - поскольку я загружаю не несколько одновременно - а только одну - и при каждом обращении к кнопке переменная _root.ImgURL - всегда разная

dimarik 16.02.2009 16:35

как-то так можно
Код AS1/AS2:

import mx.transitions.Tween;
import mx.transition.easing.Regular;
 
var app:                MovieClip = this;
var Windoww:                MovieClip;
 
function onLoadInit(target:MovieClip):Void {
        target.mcl.removeListener(this);
        delete target.mcl;
        this.tweenMe(target);
}
 
function tweenMe(target:MovieClip):Void {
        target.varTween = new Tween(target, "_alpha", Regular.easeIn, 0, 100, 1, true);
}
 
// Ваш button - instance name
this.button.onRelease = function():Void {
        if (!app.Windoww.mediaContent) {
                var mcl:MovieClipLoader = new MovieClipLoader();
                var target:MovieClip = app.Windoww.createEmptyMovieClip( 'mediaContent', app.Windoww.getNextHighestDepth() );
                target.mcl = mcl;
                mcl.addListener(app);
                mcl.loadClip(_root.ImgURL, target);
        }
        else app.tweenMe(app.Windoww.mediaContent);
}



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

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