PDA

Volledige versie bekijken : Random foto's


Snake-nl
%Europe/Berlin %850 %2005, 21:25
Hallo,

Ik ben nieuw op dit forum en ik kon mijn antwoord helaas nergens vinden hier dus vandaar dat ik het zo probeer. :)

Ik ben nu bezig met flash en ik heb het volgende probleem:

Ik heb allemaal foto's die allemaal achter elkaar van rechts naar links (soort van slideshow) over het scherm bewegen. Nu wil ik het zo maken dat als mensen met de muis klikken (willekeurige plek) dat er random een foto/plaatje word geopend. Vervolgens als ze weer met de muis klikken (willekeurige plek) moet de foto sluiten en de "slideshow" weer beginnen met spelen.

Ik ben nog niet echt goed met actionscript helaas :( en ik ben bang dat ik dit moet maken mbv actionscript.

Maar is dit op een manier mogelijk? of is dit gewoon heel simpel en ben ik gewoon een super flash n00b :D

Alvast bedankt voor het lezen ;)

Jobu
%Europe/Berlin %919 %2005, 23:04
Volgens mij zal je toch een area moeten bepalen waar er willekeurig geklikt moet worden dmv een mc te maken van bv. een achtergrond.
Op die mc plaats je dan een .onRelease die je foto weergeeft.
dus:
mc.onRelease = function(){
code dat je foto weergeeft
}
Dit is wel heel basic wat ik hier geef, maar het kan je al op stap helpen bij je eerste kennismaking met AS. ;)

Je kan mss wat inspiratie opdoen op kirupa (http://www.kirupa.com) . Daar zijn hele goeie, en simpel uitgelegde tutorials te vinden.

Veel succes nog!

theFlashWizard
%Europe/Berlin %022 %2005, 01:31
onderandere basic as tututrials staan in deze txt:
http://members.lycos.nl/tut1/uploadbestanden/tuturials.txt

Snake-nl
%Europe/Berlin %525 %2005, 13:37
@jobu

Ik heb wel een button gemaakt die even groot is als mijn stage. Dus nu maakt het niet uit waar mensen klikken. Maar ik begrijp je action script niet helemaal. :S sorry.

Wat bedoel je met: code dat je foto weergeeft. Want ik heb gewoon de plaatjes die hij moet laten zien ook in flash geinporteerd. (of is dit fout)

Ik heb al naar veel tutorials gezocht maar daar word je dan dood gegooid met scripts waar ik al helemaal niks van snap :(

(mijn stage is 1280x1024 en de foto's zijn ook allemaal 1280x1024 dus ze moeten mooi in het midden worden geplaatst)

Sorry voor de lastige en velen vragen

Jobu
%Europe/Berlin %545 %2005, 14:05
Ga eens een kijkje nemen op http://www.kirupa.com/developer/mx/photogallery.htm ... ik denk dat je hiermee je ding wel mee zal kunnen doen ... :)

Snake-nl
%Europe/Berlin %611 %2005, 15:40
die code heb ik zo aangepast dat hij mijn foto's laad bij 1 klik. (helaas gaat dit nog niet random)

Maar zodra ik dat in een andere movieclip gebruik werkt het niet meer :S

Ik snap er niks meer van :(

Snake-nl
%Europe/Berlin %615 %2005, 15:46
heb nu dit AS:

this.pathToPics = "";

this.pArray = ["foto1.jpg", "foto2.jpg", "foto3.jpg", "foto4.jpg", "foto5.jpg", "foto6.jpg", "foto7.jpg", "foto8.jpg", "foto9.jpg", "foto10.jpg", "foto11.jpg", "foto12.jpg", "foto13.jpg", "foto14.jpg", "foto15.jpg", "foto16.jpg", "foto17.jpg", "foto18.jpg", "foto19.jpg", "foto20.jpg"];
this.fadeSpeed = 25;
this.pIndex = 0;
// MovieClip methods ----------------------------------
// d=direction; should 1 or -1 but can be any number
//loads an image automatically when you run animation
loadMovie(this.pathToPics+this.pArray[0], _root.photo);
MovieClip.prototype.changePhoto = function(d) {
// make sure pIndex falls within pArray.length
this.pIndex = (this.pIndex+d)%this.pArray.length;
if (this.pIndex<0) {
this.pIndex += this.pArray.length;
}
this.onEnterFrame = fadeOut;
};
MovieClip.prototype.fadeOut = function() {
if (this.photo._alpha>this.fadeSpeed) {
this.photo._alpha -= this.fadeSpeed;
} else {
this.loadPhoto();
}
};
MovieClip.prototype.loadPhoto = function() {
// specify the movieclip to load images into
var p = _root.photo;
//------------------------------------------
p._alpha = 0;
p.loadMovie(this.pathToPics+this.pArray[this.pIndex]);
this.onEnterFrame = loadMeter;
};
MovieClip.prototype.loadMeter = function() {
var i, l, t;
l = this.photo.getBytesLoaded();
t = this.photo.getBytesTotal();
if (t>0 && t == l) {
this.onEnterFrame = fadeIn;
} else {
trace(l/t);
}
};
MovieClip.prototype.fadeIn = function() {
if (this.photo._alpha<100-this.fadeSpeed) {
this.photo._alpha += this.fadeSpeed;
} else {
this.photo._alpha = 100;
this.onEnterFrame = null;
}
};


maar nu plaatst hij de foto's niet gecentreerd op mijn scherm maar ergens helemaal rechtsonder in een hoekje. :S

theFlashWizard
%Europe/Berlin %801 %2005, 20:14
kijk.. niet lullig bedoelt hoor.. maar hiervoor heb je dus die scripts nodig.. en tja.. als je ze niet snapt zal je ze toch moeten leren.. ik zou dus toch ff doorzetten en toch die tuturials nog n x proberen..

owja.. en zet je actionscript tussen de [ as ] [ /as ] tags (zonder spaties natuurlijk)

Snake-nl
%Europe/Berlin %806 %2005, 20:21
Het is me gelukt :D

Dank voor de snelle reacties en de hulp. :D

En dat van dit tekstvlak
wist ik helaas niet sorry voor dat.

Maar hij werkt nu :D

theFlashWizard
%Europe/Berlin %811 %2005, 20:28
mooi zo :)
gewoon onthoude voor de volgende x ;) dan zulle we je waarscheinlijk nog sneller helpe.. ;)

Eddie B
%Europe/Berlin %929 %2006, 22:18
Ik heb dus op jullie aanraden even op Kirupa gekeken en vond daar deze tut. (http://www.kirupa.com/developer/actionscript/loading_random_movie.htm)
Nou heb ik zelf twee plaatjes, het gaat om een header voor een website waarop ik graag twee verschillende wil laten zien.
Ik heb (bijna) alles gedaan wat er in die tut. staat en krijg dus deze code:

filename = ["http://home.quicknet...../image02.swf", "http://home.quicknet......./image01.swf"];
i = filename.length;
k = Math.floor(Math.random()*i);
loadMovie(path+filename[k], movieTarget);


Maar echt lekker werken doet hij niet. Ik krijg meestal niets of maar één van de plaatjes als ik verschillende keren op refresh klik. Kan iemande mij vertellen wat er nou niet klopt? Want ik snap er niets van :(

theFlashWizard
%Europe/Berlin %972 %2006, 23:19
mischien heb je hier wat aan:
http://www.flashfocus.nl/forum/showpost.php?p=82219&postcount=6

Eddie B
%Europe/Berlin %918 %2006, 22:01
Misschien, help ff als je wil ben ook nog maar een n00b. Moet ik nog dingen aanpassen?

var movies:Array = ["http://home.quicknet.nl/....../image02.swf","http://home.quicknet.nl/...../image02.swf"];

function pickOne(){
var theOne:Number = makeRandom(2,movies.length);
var theMovie:String = movies[theOne];
loadMovie(theMovie,holder);
}

function makeRandom(min,max){
return Math.floor(Math.random()*(max-min)+min)
}

Fibonacci
%Europe/Berlin %526 %2006, 13:38
Hey!

ik ben ook ff met dat script van theFlashWizard bezig en heb op dit moment de volgende situatie: ik heb een movieclip met daarin een andere movieclip als holder van de te laden images. De mc waar de holder in zit heet Holder, en de holder zelf heet holder_mc...

Dit script gebruik ik nu: var orgImages:
Array = ["pic1.gif","pic2.gif","pic3.gif"];
var images:Array = orgImages.concat();

function pickOne(){
var theOne:Number = makeRandom(0,images.length);
var theImage:String = images[theOne];
loadMovie(theImage, Holder.holder_mc);
images.splice(theOne,1);
if(images.length <= 0) images = orgImages.concat();
}

function makeRandom(min,max){
return Math.floor(Math.random()*(max-min)+min)
}

Er wordt alleen never te nimmer een image ingeladen :S
De afbeeldingen zelf staan in de map "images" ik heb de swf nu ook in deze map staan, dus dat kan het niet zijn...

Weet iemand zo waar het mis gaat?

theFlashWizard
%Europe/Berlin %534 %2006, 13:49
let even op je naam gebruik. Als je zulke namen gebruikt in grotere projecten kom je in de problemen omdat je je eigen logica niet meer gaat snappen.
Een goed gebruik is ook om instancenames en namen voor variabelen met kleine letter te laten beginnen.

Volgens mij wordt er ingeladen vanaf de html waar de swf in staat, de html staat ook in de map images?

Ook weet ik niet zeker of je met mx 2004 pro al gif's kan inladen. Ik weet alleen dat het met flash8 wel kan. dit kun je terug vinden in flash help onder loadMovie.
Actionscript Tutorials -> loadMovie (http://www.flashfocus.nl/forum/showthread.php?t=6338#loadMovie)

owja en wat dacht je ervan om de functie pickOne uit te voeren? :P anders gebeurt er idd niks ;)
Onder dit script voorbeeld staan een aantal voorbeelden hoe je de functie kan uitvoeren.
over functies: Actionscript Tutorials -> functies (http://www.flashfocus.nl/forum/showthread.php?t=6338#functies)

Fibonacci
%Europe/Berlin %545 %2006, 14:05
hehe, goede tips! :P

die laatste nog wel het beste :D

Fibonacci
%Europe/Berlin %686 %2006, 17:28
Ok, dat werkt nu allemaal!

het werkte overigens ook niet omdat ik gebruik maakte van gifjes ipv jpg.

Maar is het met dit script eenvoudig de afbeeldingen te koppelen aan een url?
moet ik hiervoor bijvoorbeeld net als bij alle afbeeldingen de links ook in een array zetten?

of hoe werkt zoiets precies?

theFlashWizard
%Europe/Berlin %743 %2006, 18:50
dan moet je idd een 2de array maken met links.
Dan moet je de jpg's een mc dieper inladen. (dit moet omdat onRelease's op mc's waarin je dingen inlaad zoals jpg's verwijdert worden na inladen)
en dan moet je een onRelease hangen aan de mc.
Deze onRelease moet dan een getUrl uitvoeren naar een arrayitem uit de links array.

over events: Actionscript Tutorials -> events (http://www.flashfocus.nl/forum/showthread.php?t=6338#events)
over arrays: Actionscript Tutorials -> Arrays (http://www.flashfocus.nl/forum/showthread.php?t=6338#arrays)

Fibonacci
%Europe/Berlin %467 %2006, 12:13
dikke prima, het probleem is opgelost hoor!

tnx nog voor de hulp flashwizard! :)

theFlashWizard
%Europe/Berlin %606 %2006, 15:33
helemaal zelfstandig gelukt al? super! :)