PDA

Volledige versie bekijken : hoe eenvoudige dubbelsteen maken?


Roman
%Europe/Berlin %488 %2005, 12:42
hallo,

ik ben bezig met een eenvoudige dubbelsteen in flash. ik heb gewoon 1 frame voor de inleiding enzo en daarop een knop. nu wil ik dat als je op de knop drukt dat hij dan met random naar frame 2 t/m 6 gaat (hier zijn namelijk dobbelstenen getekend van 1 t/m 6)

hoe kan ik dit met een script doen?? graag wat uitleg bij de code :)

alvast bedankt,

Roman

theFlashWizard
%Europe/Berlin %495 %2005, 12:53
http://www.flashfocus.nl/forum/showthread.php?p=1999#post1999
en dan aan de handvan wat voor random getal je krijgt stuur je hem met bijv een gotoAndStop naar een frame

VAW
%Europe/Berlin %497 %2005, 12:56
Wat je wilt is dus een script dat je naar frame 2,3,4,5,6, of 7 gaat? Want een dobbelsteen heeft 6 zijdes, en je info is op frame 1.

dan zet je dit op frame 1 samen met een MC (geen button, met een MovieClip kan je handiger werken) waarvan de instanceName "mijnButton" is:

mijnButton.onRelease = function() { // doe hetvolgende bij het loslaten van je muis op deze MC
var randomGetal = random(6) + 2; // maak een random getal aan van 0 tot 5 (= random(6): 6 verschillende getallen), maar tel er 2 bij zodat je van frame 2 tot 7 hebt.
_root.gotoAndStop(randomGetal); // ga naar die random frame
} // einde van functie
stop(); // hij moet op frame 1 blijven totdat er op de button wordt geklikt

Roman
%Europe/Berlin %499 %2005, 12:59
ja hier snap ik niks van hoor :S ik ben nog maar een beginner in AS :P


hoe moet dat dan precies? moet ik een variable maken en dan die een random laten uitkiezen en die dan gebruiken voor de gotoandstop?

graag wat meer uitleg :)

bedankt,

Roman

Roman
%Europe/Berlin %500 %2005, 13:00
sorry dat was tegen de eerste reactie:)

Roman
%Europe/Berlin %508 %2005, 13:12
maar een MC kan je toch niet als een button gebruiken?? en warom is die handiger dan een normale button?


en oja waar moet de code staan? in de mc?

VAW
%Europe/Berlin %511 %2005, 13:15
Een MC kan je evengoed als een button gebruiken. Met een MC kan je veel meer aanvangen in as :). Als je een groot hitveld wel hebben daat ook doorschijnend moet zijn, zoals bij een button, maak je in je mc op de onderste layer een doorschijnend vlak aan.

Als je rollOvers etc zoals bij buttons wil, kan je ín je MC een hele animatie zetten. En dan zeg je met as (net zoals de code voor de onRelease) dat je bij onRollOver naar die frame in je MC wil.

En die code moet op het eerste frame van je .fla, op de scene 1, op de _root.

Roman
%Europe/Berlin %530 %2005, 13:44
ooh hij doet het! bedankt. :)

nu heb ik nog een probleem. ik heb een repeatknop gemaakt en overal bij de frames 2 t/m 7 neergezet. als ik nu in het 1e frame de code:

buttonopnieuw.onRelease = function() {
_root.gotoAndStop(1);
}

neerzet doet hij het niet. is dit omdat deze code alleen werkt als de knop in deze frame staat? en welke code kan ik wel gebruiken dat het in elke frame geldt?

bedankt,
Roman

VAW
%Europe/Berlin %535 %2005, 13:50
Een script zal inderdaad maar werken op de frame zelf. Dus zal je dat script best moeten herhalen op elk frame (2->7). Dat is het gemakkelijkste denk ik. Ikzelf ben ook niet zo'n héél ervaren scripter, dus het kan zijn dat er nog wel een mogelijkheid is.

Ik kom net op een idee: als je die code samen met de button in 1 lange frame op een nieuwe layer zet (dat zich uitstrekt over 2 -> 7) zou het wel moeten werken denk ik...

SaphuA
%Europe/Berlin %548 %2005, 14:09
button.onRelease = function(){
var r = 6+random(6);
this.onEnterFrame = function() {
if (--r>0) {
dice.gotoAndStop(random(6)+2);
} else {
delete onEnterFrame;
}
};
}

SaphuA
%Europe/Berlin %552 %2005, 14:15
button.onRelease = function() {
if (!this.onEnterFrame) {
var r = 6+random(6)+random(6);
this.onEnterFrame = function() {
if (--r>0) {
trace(random(6));
} else {
delete this.onEnterFrame;
}
};
}
};

Roman
%Europe/Berlin %662 %2005, 16:53
daar snap ik niks van:S zou er wat uitleg bij kunnen? ik weet niet eens war ik hem moet plaatsen

bedankt,
Roman

Roman
%Europe/Berlin %666 %2005, 17:00
bedankt van dat idee met dat uitgestrekte frame:), alleen het werkt nog niet...


mijn code is nu:
knoprandom.onRelease = function() {
var randomGetal = random(6) + 2;
_root.gotoAndStop(randomGetal);
}

buttonopnieuw.onRelease = function() {
_root.gotoAndStop(1);
}

stop();

wat is hier mis mee??
als je in het beginscherm op START druk dan gaat de dobbelsteen rollen, maar als hij dan bijv op frame 5 staat, wil die niet meer terug naar 1 :S

bedankt,
Roman

BlijBlauw
%Europe/Berlin %674 %2005, 17:11
alleen op frame 5, of overal?

1. Staat je opnieuw button op elk frame?
2. Staat de functiocode op elk frame?
3. Heet te mc die je gebruikt wel buttonopnieuw?

Roman
%Europe/Berlin %684 %2005, 17:25
ja ik heb voor het script een lange, uitgerekte frame gebruikt die alle frames "bedekt"
jah de knop staat in elk frame,

en ja, de instance name van die button is buttonopnieuw

als hij via random bij 1 oog komt doet die knop het wel :S

bedankt,
Roman

VAW
%Europe/Berlin %693 %2005, 17:38
Dan vrees ik dat die uitgestrekte frame toch geen goede oplossing was. Probeer het eens met in elk frame dezelfde code te kopiëren?

Roman
%Europe/Berlin %701 %2005, 17:49
oke, ga ik proberen :)

ik laat t nog wel horen:)

doei,
roman

Roman
%Europe/Berlin %704 %2005, 17:54
ooh, oke hij doet het :d

eigenlijk was het de bedoeling om alle script in 1 frame te doen, moet kunnen volgens mij maarja ik ben ook maar een beginner dus ik kan niet alles meteen willen...

bedankt voor de hulp!! :D

doei,
Roman

SaphuA
%Europe/Berlin %717 %2005, 18:13
Ok, je hebt je dobbelsteen MC, met frame 1 t/m 6. Elk het aanta ogen bijbehorend aan hun frame. Deze MC geef je de instance 'dice', en je plaatst de volgende code op het frame van je movie (dus niet de MC).

dice.onRelease = function() { //--Als er op de dobbelsteen wordt gedrukt
if (!dice.onEnterFrame) { //--Als hij nog niet aan het rollen is
var r = 10; //--Het aantal keer dat de dobbelsteen 'rolt'
dice.onEnterFrame = function() { //--Het rollen
if (--r>0) { //--Aantal keer rollen is nog niet voorbij
dice.gotoAndStop(random(6)+1); //--Stop de dobbelsteen op een random frame
} else { //--Aantal keer rollen is wel voorbij
delete dice.onEnterFrame; //--Stop het rollen
}
};
}
};