PDA

Просмотр полной версии : Глюк unloadClip()


Vlad84
08.02.2013, 13:41
Очень странное дело: подгружаю мувик с таймером в onEnterFrame внутри, но при выгрузке и повторной загрузке видно, что таймер работает даже после выгрузки.


loader.swf
var loadFlag:Boolean = false;
var loader:MovieClipLoader = new MovieClipLoader();

function loadContentMC() {
loader.loadClip("content.swf",content_mc);
}

function unloadContentMC() {
loader.unloadClip(content_mc);
}

onMouseDown = function () {
loadFlag = !loadFlag;
loadFlag ? loadContentMC() : unloadContentMC();
};



content.swf
onEnterFrame = function(){
txt.text = getTimer()/1000
}


Как полностью удалить загружаемый ролик?

mooncar
08.02.2013, 13:49
CS5.5 установлен не у всех, так что пересохраните исходники с минимально возможной версией.

По сути - getTimer() возвращает время, прошедшее с момента запуска ролика, то есть с запуска loader.swf, а не с момента загрузки контента.

Hauts
08.02.2013, 13:50
getTimer() глобальный же, и отсчитывается с момента старта основной флэшки.

Исправить можно заведением стартового значения времени в подгружаемой флэшке:


var startTimer = getTimer();
onEnterFrame = function(){
txt.text = Math.floor((getTimer() - startTimer)/1000);
}

Vlad84
08.02.2013, 13:56
mooncar, обновил.

Hauts, я совсем заработался... Все нормально работает, если сменить getTimer() на простой каунтер i++ :)

mooncar
08.02.2013, 14:00
Vlad84, это уж вам виднее, нужны секунды или счетчик.
На будущее - не стоит называть "глюком" просто неожидаемое вами поведение.
Глюком было бы, если бы он сам обнулялся :)

Vlad84
08.02.2013, 14:18
mooncar, на момент когда я затупил над getTimer-ом это было не ясно :)