PDA

Volledige versie bekijken : _currentframe controleren


Berthjen
%Europe/Berlin %458 %2005, 11:59
Hoi FF'ers

Ik heb een movieclip (promo) aangemaakt met verschillende stops en labels. Telkens wanneer er op de scene een bepaalde knop wordt aangeklikt speelt er een stukje animatie.
Deze animaties zijn random (bv klik je KNOP1 dan speelt frame 1 tot 20, klik je KNOP3 speelt frame 103 tot 123, klik je vervolgens terug op KNOP1 speelt bv 42 tot 62, enz...)

Wanneer ik m'n currentframe trace "trace(_root.promo._currentframe);", krijg ik steeds de frame te zien waar de animatie start, terwijl ik eigenlijk de frame nodig heb waar de animatie gestopt is.

Hoe kan ik controleren op welke frame de animatie is gestopt? Het is de bedoeling dat ik deze waarde daarna in een variabele kan stoppen voor verder gebruik.

behived
%Europe/Berlin %465 %2005, 12:09
voor elke stop zet je deze code:
variabele=_root.promo._currentframe
trace(variabele);

Berthjen
%Europe/Berlin %488 %2005, 12:43
voor elke stop zet je deze code:
variabele=_root.promo._currentframe
trace(variabele);

Heb ik reeds geprobeerd, maar de variable onthoudt enkel de frame waar de animatie start en niet die waar de animatie stopt.

Berthjen
%Europe/Berlin %497 %2005, 12:55
voor elke stop zet je deze code:
variabele=_root.promo._currentframe
trace(variabele);


Dit heb ik reeds geprobeerd, maar de variabele onthoudt enkel de frame waar de animatie start en niet waar ze stopt.

Dauntless
%Europe/Berlin %500 %2005, 13:00
this.onEnterFrame = function(){
trace(this._currentframe);
}

Zo dan :)

Berthjen
%Europe/Berlin %556 %2005, 14:20
this.onEnterFrame = function(){
trace(this._currentframe);
}

Zo dan :)


Zo kan ik inderdaad het framenr. achterhalen. Weliswaar, heb ik nu nog één probleem.
Eens de animatie gestopt is, blijft _currentframe doorlopen (bv animatie stopt op frame 20, in de trace blijft _currentframe herhalen dat het op frame 20 staat), maw krijg ik een soort loop.

_root.promo.onEnterFrame = function() {
trace(_root.promo._currentframe);

if (_root.promo._currentframe == 20) {
_root.createEmptyMovieClip ("clip1", 35);
_root.clip1._x = 520;
_root.clip1._y = 400;
_root.clip1.loadMovie("communicatie.swf");

_root.attachMovie("preloader", "preloader", 40);
_root.preloader._x = 550;
_root.preloader._y = 530;
...

De opbouw van de movieclip blijft herhalen, waardoor de swf niet inlaadt.

Hoe kan ik nu ervoor zorgen dat wanneer de _currentframe 20 is _currentframe stopt?

Dauntless
%Europe/Berlin %559 %2005, 14:25
_root.promo.onEnterFrame = function() {
trace(_root.promo._currentframe);

if (_root.promo._currentframe == 20) {
_root.createEmptyMovieClip ("clip1", 35);
_root.clip1._x = 520;
_root.clip1._y = 400;
_root.clip1.loadMovie("communicatie.swf");

_root.attachMovie("preloader", "preloader", 40);
_root.preloader._x = 550;
_root.preloader._y = 530;
delete this.onEnterFrame;
...
Probeer dit :)

behived
%Europe/Berlin %573 %2005, 14:46
edit - had niet gezien dat antwoord al gegeven was

Berthjen
%Europe/Berlin %616 %2005, 15:47
Ben er nog steeds niet uit.

Wanneer ik onRelease doe kan ik zonder probleem een swf inladen.

Wanneer ik onEnterFrame doe en if(_root.promo._currentframe == 20) {
en dan pas m'n swf laat inladen lukt het blijkbaar niet.

Ik heb een testfile aangemaakt met het script van één button.

Deze kan je hier downloaden : Testfolder (http://users.skynet.be/fromberthjen/flash/Testfolder.zip)

Het script moet verwerkt worden bij de onRelease en niet in de animatie zelf, omdat op bv frame 20, 5 verschillende swf's moeten inladen, afhankelijk welke button er wordt aangeklikt.

Alvast bedankt voor de hulp.

theFlashWizard
%Europe/Berlin %632 %2005, 16:10
ow em.. ten 1ste.. der bestaat ook zoiets als if else he.. ;)
voorderest snap ik helaas je probleem en je fla niet..
waarom alles in die promo op 1 tijdlijn?

je kan een pagina attachen uit de library en die met _alpha zichtbaar en weer zichtbaar maken..
maakt het geheel, overzichtelijker en dynamischer..

maar je wil dat frame opslaan?
zoiets?:

this.onEnterFrame = function(){
if(this._currentframe == 20)
frameN = this._currentframe
delete this.onEnterFrame
}
}

Berthjen
%Europe/Berlin %673 %2005, 17:09
waarom alles in die promo op 1 tijdlijn?

Op de scene staan 7 buttons. Elk deze buttons sturen het kadertje promo aan.

BUTTON1 = Titel portfolio, SWF1
BUTTON2 = Titel portfolio, SWF2
BUTTON3 = Titel portfolio, SWF3
BUTTON4 = Titel portfolio, SWF4
BUTTON5 = Titel promo
BUTTON6 = Titel promo
BUTTON7 = Titel download.

Gelijk welke knop je aanklikt, de titel zal altijd dmv fade out en fade in veranderen in de volgende titel. Vandaar de if - else. Dit spaart je toch wel enkele bytes uit.

Dat is niet het probleem.

Dmv onEnterFrame kan ik achterhalen op welke frame de animatie het laatst is gestopt.

Nu, als de animatie op frame 20 stopt moet hij een SWF inladen. Niet 1 maar 4 verschillende, afhankelijk of je BUTTON1, 2, 3 of 4 hebt geklikt.

Dus
onEnterFrame = function() {
if(_root.promo._currentframe == 20);
dan moet hij één van de swf's inladen.
Deze hangen vast aan de button. Hang je het script vast aan de onRelease, geen probleem, maar hang je het vast aan de onEnterFrame, dan verschijnd de preloader, maar wordt de SWF niet ingeladen. Dit is het enige waar ik mee vast zit.