Просмотр полной версии : tween и unloadClip
sector_222
14.02.2009, 23:01
здравствуйте,
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) нужной мне кнопки - код не срабатывает - только если просто
_root.my_mcl.unloadClip(_root.Windoww.mediaContent);
Fatality
15.02.2009, 02:39
Все работает, как в кнопке, так и без нее
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);
тут или varTarget.unloadClip(); использование unloadMovie как метода (удалит _root.Windoww.mediaContent) или unloadMovie(varTarget);использование unloadMovie как функции (результат тот же).
При чем тут _root.my_mcl, вообще непонятно.
sector_222
16.02.2009, 15:54
При чем тут _root.my_mcl, вообще непонятно.
а это я затупил - теперь ясно почему не шло - надо было просто объявить классы
import mx.transitions.Tween;
import mx.transition.easing.*;
спасибо =)!!!:drinks:
у меня другой вопрос связанный с прелоадером:
в руте есть код:
// загрузчик изображения
//Создаём объект 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);
};
в кнопке есть такой код:
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 - всегда разная
как-то так можно
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);
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.