Volledige versie bekijken : rollon rolloff werkt niet
marima
%Europe/Berlin %524 %2005, 13:34
Omdat ik problemen heb met hetzelfde script als een andere poster en ik hierover later nog in deze thread een vraag heb gesteld, maar geen antwoord verwacht vanwege de ouderdom, doe ik een nieuwe poging.
Het gaat om deze tutorial http://www.flashfocus.nl/tutorials/Beginnen%20met%20Flash/?filename=Rollon%20rollof%20effect_Peter-Paul%20Rijsdijk.zip (heb geen idee hoe hier een link weg te zetten, dus ik hoop dat het zo werkt)
Het as werkt dus niet en ik heb geen idee wat ik fout doe.
Ik heb het volgende in actions gezet na het aanklikken van de button:
on (rollOver, dragOver) {allez.gotoAndPlay("rollon");}
on (rollOut, dragOut) {allez.gotoAndPlay("rolloff");}
theFlashWizard
%Europe/Berlin %527 %2005, 13:38
na het aanklikken van de button? hoe bedoel je dat?
heb je wel frame labels gemaakt? instancenames benoemt?
flor!s
%Europe/Berlin %542 %2005, 14:00
Rollon en Rollof kan ook heel makkelijk in de mc zelf.
Je maakt gewoon een aparte layer aan in je mc (waar dus ook de on en de off animatie in moeten zitten)
dan zet je in die layer
onRollOver = function () {
this.gotoAndPlay(x);
// x dus de frame waar je rollON animatie begin
};
onRollOut = function () {
this.gotoAndPlay(x);
//x dus de frame waar je RollOut Animatie begint
};
Dan zet je nog wat stopjes op de eerste frame (dus wat je wilt laten zien als er helemaal niks is gebeurd, je zet eens stopje op de laatste frame van de Rollon animatie (dus wat je wilt dat mensen uiteindelijk zien als ze op de mc zitten met hun muis, en eventueel een stopje op de laatste frame van de rolloff animatie.
marima
%Europe/Berlin %638 %2005, 16:19
Ik heb alles precies zo gedaan als in de tut, dus ook framelabels en instancenames.
Met op de button klikken bedoel ik: op de layer met de button gaan staan en dan in de stage de afbeelding selecteren. Het script moet toch aan een button gekoppeld worden?
Mijn timeline ziet er ook uit zoals in het voorbeeld, dus ik weet niet waar het fout zit.
flor!s
Je maakt gewoon een aparte layer aan in je mc (waar dus ook de on en de off animatie in moeten zitten)??
Dan moet ik eerst een mc maken en daar de hele reut opnieuw in maken?
marima
%Europe/Berlin %867 %2005, 21:48
iemand die hier verstand van heeft????
theFlashWizard
%Europe/Berlin %868 %2005, 21:50
iedereen hier..
opnieuw hoeft bijna nooit meer tegenwoordig.. animaties kun je gewoon kopieren door frames te kopieren ;)
en post ff hoever je komt.. dan kunnen we je echt helpen ;)
Laiverd
%Europe/Berlin %875 %2005, 22:01
Met je code niks mis; je moet alleen wel een movieclip hebben met de instancename 'allez' en met daarin twee framelabels 'rollon' en 'rollofff'. Vergeet de andere posts even want die gaan nu alleen maar verwarrend werken. Als je bovenstaande hebt, en het lukt nlog niet, upload dan je fla even, dan wil ik wel even kijken; maar check van tevoren wel echt even alles zelf.
John
marima
%Europe/Berlin %881 %2005, 22:09
Ik kom niet verder dan wat ik in eerste instantie beschreef
Als ik de tip van flor!s toepas krijg ik foutmeldingen over duplicate layers
Ik zal eens kijken of ik de fla zoals ik hem tot nog toe heb hierbij kan zetten
Misschien dat je kunt zien wat er niet goed zit.
marima
%Europe/Berlin %464 %2005, 12:08
Niemand??
theFlashWizard
%Europe/Berlin %480 %2005, 12:31
je hele animatie staat nou op de root, dat betekend dat hij maar 1 rollover kan afspelen en dat ze dus niet onafhankelijk zijn..
deze animaties moet je compleet in movieclips zetten.
je hebt nu op 2 plekken je script staan, das ook n btje onhandig en onoverzichtelijk, het script dat je op je knop hebt:
on (rollOver, dragOver) {allez.gotoAndPlay("rollon");}
on (rollOut, dragOut) {allez.gotoAndPlay("rolloff");}
kun je zo 1x op het 1ste frame script onder of boven die stop() zetten
allez.onRollOver = function(){
this.gotoAndPlay("rollon")
}
allez.onRollOut = function(){
this.gotoAndPlay("rolloff")
}
ook verwijs je in je eerdere script naar de framelabels in alles, terwijl ze dus gewoon in de root staan.
omdat je allez.gotoAndPlay("rollon") doet.
als ik nu die tuturial lees zie ik dat je eigenlijk alleen bent vergeten de rollover en rollout animaties in die movieclip zelf neer te zetten..
maar ik ben nog steeds van mening dat je het script beter bij het frame script kan zette
marima
%Europe/Berlin %599 %2005, 15:22
Dat van dat script op 2 plekken had ik inmiddels ook ontdekt :o
je hele animatie staat nou op de root??
Wat is de root?? Ik ben maar een beginner hoor.
maar ik ben nog steeds van mening dat je het script beter bij het frame script kan zette Waar zit dat frame script dan?
Ik heb het volgende geprobeerd:
Ik heb dus 3 layers
1. een layer waar een onzichtbare knop (ik wil alleen de tekst kunnen zien als de knop omhoog gaat) op staat en daar heb ik een mc van gemaakt.
Als ik hier in het eerste frame wegzet:
allez.onRollOver = function(){
this.gotoAndPlay("rollon")
}
allez.onRollOut = function(){
this.gotoAndPlay("rolloff")
}
werkt het niet, knop blijft stilstaan.
2. een layer waar de knop (button) op staat die omhoog zou moeten gaan.
Zet ik het zelfde script hier weg na de Stop(); werkt het ook niet.
Als ik hier zet:
Stop();
on (rollOver, dragOver) {allez.gotoAndPlay("rollon");}
on (rollOut, dragOut) {allez.gotoAndPlay("rolloff");}
begint de knop vanzelf omhoog te gaan en krijg ik de volgende foutmelding:
**Error** Scene=Scene 1, layer=button, frame=1:Line 2: Mouse events are permitted only for button instances
on (rollOver, dragOver) {allez.gotoAndPlay("rollon");}
**Error** Scene=Scene 1, layer=button, frame=1:Line 3: Mouse events are permitted only for button instances
on (rollOut, dragOut) {allez.gotoAndPlay("rolloff");}
Total ActionScript Errors: 2 Reported Errors: 2
3. op deze layer staat een mc met de tekst die onder de knop verborgen is.
Zet ik hier weg:
on (rollOver, dragOver) {allez.gotoAndPlay("rollon");}
on (rollOut, dragOut) {allez.gotoAndPlay("rolloff");}
gebeurt er niks. Ook dit:
allez.onRollOver = function(){
this.gotoAndPlay("rollon")
}
allez.onRollOut = function(){
this.gotoAndPlay("rolloff")
}
heeft geen effect.
Pfffff, Java is makkelijker hoor!
Maar kun je aub in beginnerstaal uitleggen wat nu prcies waar moet?
Ik ben hier al 3 dagen mee bezig en begin een beetje wanhopig te worden. :(
theFlashWizard
%Europe/Berlin %649 %2005, 16:35
root van wortels dus helemaal bovenaan.. nergens in..
frame script is het script op een frame.. klik op n frame druk op F9, zo kan je ook script op movieclips zetten of buttons, door er op te klikken en dan op F9 te drukken..
heb je de complete animatie nou al verplaatst in een mc?
kijk heel ff naar het voorbeeld.. dat bespaard me een heel hoop uitleggen
on (rollOver, dragOver) {allez.gotoAndPlay("rollon");}
on (rollOut, dragOut) {allez.gotoAndPlay("rolloff");}
kan je idd daar niet gebruiken.. on(..) kun je alleen direct op knoppen gebruiken en niet in een frame, zo kan je bijv op movieclips zelf alleen onClipEvent neerzetten
Markiehboy
%Europe/Berlin %652 %2005, 16:40
??
Wat is de root?? Ik ben maar een beginner hoor.
De root (oftewel _root) is alles wat NIET in een clip staat.
Waar zit dat frame script dan?
Hij bedoelt hier mee te zeggen dat je de code in het frame moet zeggen
en wat er mis is met je code
allez.onRollOver = function(){
this.gotoAndPlay("rollon")
}
allez.onRollOut = function(){
this.gotoAndPlay("rolloff")
}
moet zijn
allez.onRollOver = function(){
this.gotoAndPlay("rollon");
}
allez.onRollOut = function(){
this.gotoAndPlay("rolloff");
}
hij was de ";"
vergeet in de movieclip "allez" de frames die namen te geven ;)
nu moet het werken succes
marima
%Europe/Berlin %730 %2005, 18:31
Sorry Markiehboy, werkt gewoon niet hoor.
En FlashWizard, ik heb je voorbeeld bekeken, maar daar wordt ik ook niks wijzer van. Ik zie 1 layer met 1 frame! Kan daar niks in ontdekken van hoe het dan wel zou moeten.
heb je de complete animatie nou al verplaatst in een mc? Hoe moet dat dan?
theFlashWizard
%Europe/Berlin %755 %2005, 19:07
ga is een basis flash tuturial doen als je niet weet dat elke mc een timeline inzich bevat..
dubbel klik maar eens voor de lol op die mc..
Laiverd
%Europe/Berlin %756 %2005, 19:09
Stop(); moet sowieso stop(); zijn. Even syntax checken dus. Verder heb je dus niet gecheckt of je een movieclip hebt met de naam 'allez' en daarin twee framelabels 'rollon' en 'rolloff'. Rollon en rollof staan op dezelfde tijdelijn als de button, en dus moet het zijn:
on (rollOver, dragOver) {gotoAndPlay("rollon");}
on (rollOut, dragOut) {gotoAndPlay("rolloff");}
En verder zou ik echt even de tutorials van Flash doornemen; met name over het maken van buttons en het werken met/besturen van verschillende tijdlijnen en het gebruik van instancenames . Als je op een dergelijk manier zoals je nu doet een compleet menu wilt opbouwen, vraag je een beetje om moeilijkheden. Er zijn nl. nu zoveel plekken waar je je script neerzet, dat debuggen een heidense klus wordt. Ga inderdaad maar over op de mx manier van buttons scripten zoals hierboven beschreven, dat maakt het echt een stuk overzichtelijker.
Misschien moet je sowieso even helemaal terug naar de basis als je niet weet hoe je een complete animatie naar een movieclip verplaatst.
marima
%Europe/Berlin %781 %2005, 19:45
Uiteindelijk kom ik er heus wel uit hoor, maar sommige dingen kan ik in mijn boek gewoon niet vinden (zoals bijvoorbeeld dat dubbelklikken op een mc) en dus vraag ik het hier.
Ik vraag mij wel af hoe jullie het allemaal hebben geleerd dan.
theFlashWizard
%Europe/Berlin %783 %2005, 19:48
heb jij een boek over flash? helemaal doorgelezen? en je weet dan niet dat in een movieclip nog een timeline zit?
wat voor boek is dat dan wel niet? :P
ik heb de animatie basis op school geleerd, actionscript heb ik van tuturials, experimenteren en veel op het forum vragen..
marima
%Europe/Berlin %930 %2005, 23:19
Ik moest 38 jaar geleden op 14 jarige leeftijd al gaan werken dus die luxe van het op school leren van flash ken ik niet. Dan moet het uit een boek en daar kun je geen vragen aan stellen. Een boek is een boek en geen docent! En in een boek van 660 pagina's zie je ook wel eens iets over het hoofd.
Actionscript probeer ik ook door het lezen van tutorials onder de knie te krijgen en verder door veel zelf uit te proberen en veel te vragen. Op forums bijvoorbeeld.
marima
%Europe/Berlin %686 %2005, 17:28
Wou toch even laten weten dat het me is gelukt :) Een heel menu zelfs met 4 buttons.
Na het goed bestuderen van jullie opmerkingen en nog een ochtend spitten op internet om uit te zoeken waar foutmeldingen vandaan kwamen, 10 keer opnieuw starten, begonnen er steeds meer "ah, zo zit dat dus" lampjes te branden.
Het is dus best mogelijk om iets te leren van anderen P
Misschien moet er hier niet zo snel van uit gegaan worden dat als je een aantal termen niet kent, het dan ook wel niet zal lukken.
Wel jammer dat ik nu twee dagen bijna blind ben gelopen op een paar simpele dingen die heel eenvoudig uit te leggen zijn voor totaly freaking members.
Ik zit alleen nu nog met 1 vraag:
Als je te snel met de muis over de buttons gaat blijven ze omhoog staan.
Is hier een oplossing voor?
Ik zal de fla even meesturen voor wie zin heeft om te kijken.
Die tutorial waar de hele zaak mee is begonnen komt overigens van deze site uit de categorie beginnen met flash!!
Staat ie dan op een verkeerde plek of zuigt ie gewoon.
theFlashWizard
%Europe/Berlin %821 %2005, 20:43
je kan ook zoiets maken:
Laiverd
%Europe/Berlin %921 %2005, 23:06
Het is dus best mogelijk om iets te leren van anderen P
Misschien moet er hier niet zo snel van uit gegaan worden dat als je een aantal termen niet kent, het dan ook wel niet zal lukken.
[OT] Daar gaat het geloof ik niet om; ik ben ervan overtuigd dat iedereen met de juiste motivatie Flash en veel andere dingen kan leren. Waar het om gaat, is dat een goed en efficient leerproces toch echt begint bij de basis. Trial en error kan natuurlijk ook, maar da's niet efficient. Als je de basis kent, kun je ook efficienter je vragen formuleren. Natuurlijk kunnen Total Freaks ook die basis uitleggen, maar alhoewel in boeken niet veel staat, staat de basis er echt wel in. Het heeft dus ook niet zoveel zin daar hier naar te vragen; vaak zul je zelfs op het verkeerde spoor worden gezet, simpelweg omdat je de vragen niet goed stelt, of omdat hier ook niet iedereen evengoed weet waar ie het over heeft (mijzelf incluis). En dan wordt de verwarring dus alleen maar groter.
Succes.
John
marima
%Europe/Berlin %521 %2005, 13:31
Nou ja, ik ben in ieder geval door te blijven doorvragen wel op het goede been gezet en heb het toch voor mekaar gekregen, waarvoor wel mijn dank.
Rest mij nu nog wel de vraag:
Als je te snel met de muis over de buttons gaat blijven ze omhoog staan.
Is hier een oplossing voor?
theFlashWizard
%Europe/Berlin %739 %2005, 18:45
ja maar als je al je kennis gaat vergaren door "door te vragen" worden wij hier goed gek denk..
niet echt.. hij checkt het gewoon maar om de zoveel tijd..
noevra
%Europe/Berlin %459 %2005, 11:01
ik ben ook vrij nieuw in flash, en vond deze tutorial waar marima het over had erg onduidelijk. pas na het lezen van dit bericht snap ik het een beetje.
dus snap marima wel, zeker als beginner is het soms erg onduidelijk en bij sommige tutorials slaan mensen stukjes over die gezien worden als simpele dingen. er woordt dan wel vergeten dat niet iedereen dat al snapt, wil hier niemand mee afzaggen of afkrakken ofzo. maar stap voor stap tutorials zouden een stuk fijner zijn:)
Toch een top site dit hoor!!!
noevra
%Europe/Berlin %470 %2005, 11:17
heb echter nog wel 1 vraagje :#
In de tutorial woordt de scripting code gebruikt:
on (rollOver, dragOver) {
N.gotoAndPlay("rollon");
}
on (rollOut, dragOut) {
N.gotoAndPlay("rolloff");
}
waar jullie het allemaal over:
N.onRollOver = function(){
this.gotoAndPlay("rollOver")
}
N.onRollOut = function(){
this.gotoAndPlay("rollOut")
}
hebben.
Ik probeerde dus die eerste script, dit omdat bij die tutorial de dat plaatje niet tript. en bij de 2de wel. maar ik krijg errors als ik het probeer.
Dit is de error:
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Mouse events are permitted only for button instances
on (rollOver, dragOver) {
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 5: Mouse events are permitted only for button instances
on (rollOut, dragOut) {
Total ActionScript Errors: 2 Reported Errors: 2.
Ik snap hieruit dat ik het plaatje een button moet maken, maar dan ben ik dus weer de movie dingen kwijt. iemand idee hoe dit op te lossen is?
Alvast bedankt
theFlashWizard
%Europe/Berlin %506 %2005, 12:09
het eerste soort ( on() ) zet je op buttons zelf.
het 2de soort dat begint met een instancename zet je op een keyframe.
en hoe kan er in een plaatje 'movie dingen' zitten?
noevra
%Europe/Berlin %543 %2005, 13:02
ik bedoelde eigenlijk een mc weer omzetten naar button. :) maar werkt niet helemaal dus.
Ik probeer eigenlijk het zelfde te doen met die buttens in een ander bestand, maar dit wil niet echt werken. het is nog een erg simpel bestand en staat voor de rest bijna geen as in, maar wou eigenlijk dat die buttons die ik heb gemaakt weer langzaam terug vallen, inplaats van dat het meteen terug schiet zoals bij een standaart button. ik heb zon vermoeden dat het iets temaken heeft met de rollover. maar waar zouw ik die code moeten plaatsen. het lukt me nu wel met movieclip dat te krijgen. maar omdat ik nu een butten heb en geen mc lukt het me niet.... en in die tutorial is het wel een butten... dus wou ik het eigenlijk ook zo doen. maar kom er dus niet uit.
noevra
%Europe/Berlin %546 %2005, 13:06
dacht voeg even toe te verduidelijking. die button werkt dus gewoon. alleen is op een of andere manier niet helemaal goed omdat ik een zwart vlak heb(ja zelf gedaan ter verduidelijking)
die 2de is het bestand waar ik het in wil. weet het niet zo mooi nog allemaal, maar ben dan ook nog maar net begonnen met flash.
noevra
%Europe/Berlin %335 %2005, 08:03
wasgebeurt, niemand weet het of wat:P
theFlashWizard
%Europe/Berlin %385 %2005, 09:15
ik kan hier niet je fla bekijken maar ik zou eens opzoek gaan naar bijv de spoepele button rollOver tuturial ofzo.. teminste ik dacht dat hij ongeveer zo heette..
of kijk eens of je wel wat kan met andere tuturials..
noevra
%Europe/Berlin %443 %2005, 10:39
jep je had gelijk:) sorry had hem in eerste instantie niet gezien. thx 1 vraagje nog. niet echt boeind op zich vraag me alleen af waarvoor het dient.
ik gebruik nu deze script, (en werkt prima)on (rollOut) {
tellTarget ("Dright") {
gotoAndPlay(_totalframes-_currentframe+1);
}
}
on (rollOver) {
tellTarget ("Dright") {
if (_currentframe<>1) {
gotoAndPlay(_totalframes-_currentframe+0);
} else if (_currentframe=1) {
gotoAndPlay("?");
}
}
}
maar waarvoor dient de
} else if (_currentframe=1) {
gotoAndPlay("?");
}
theFlashWizard
%Europe/Berlin %497 %2005, 11:56
wanneer het huidige frame 1 is speel dan het frame af met het framelabel "?"
maar waarvoor dat ooit zo gemaakt is moet je mij niet vragen..
mischien is het als optie dat je dat zelf kan invullen.. :)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.