Volledige versie bekijken : _visible afhankelijk van muispositie
depieje
%Europe/Berlin %843 %2005, 21:14
Hi,
ik heb via tutorials en voorbeeldfla's een scrollable contentmc gemaakt. Dit werkt allemaal maar nu zou ik nog iets willen toevoegen. Ik heb bovenaan een pijl_omhoog staan en onderaan een pijl_omlaag. Logisch, maar nu zou ik willen dat wanneer er kan gescrolled worden naar beneden de pijl_omlaag zichtbaar wordt en wanneer er omhoog kan gescrolled worden dat de pijl_omhoog zichtbaar wordt.
Kan enig as-freak mij hieruit helpen aub?
hier (http://www.dc-it.be/content.fla) vind je de .fla
grtz,
depieje
Pimm
%Europe/Berlin %850 %2005, 21:24
Pas de actions op frame 2 van Symbol 2 aan in dit:// Setting the xmouse to 0 in the centre of the movie:
ymouse = _ymouse - (heightmovie / 2);
// Setting the speed:
speed = (ymouse) / scrollspeed;
// If the speed is negative, the speed will be made positive here:
if (speed < 0) {
speed = -(speed);
}
// If the mouse moves to left, the photo will scroll to the right:
// (That makes sense.... Doesn't it!! ;-)
if (ymouse < 0) {
ytext = ytext + speed;
}
// If the mouse moves to the right, the photo will scroll to the left:
if (ymouse > 0) {
ytext = ytext - speed;
}
// Checking for the left end of the image:
if (ytext > 0) {
ytext = 0;
this._parent.pijlomhoog._visible = false;
} else {
this._parent.pijlomhoog._visible = true;
}
// Checking for the right end of the image:
if (ytext < -(heighttext - heightmovie)) {
ytext = -(heighttext - heightmovie);
this._parent.pijl_omlaag._visible = false;
} else {
this._parent.pijl_omlaag._visible = true;
}
// Placing the moviclip (photo) on it's new postition:
setProperty("content_home", _Y, ytext);Ik houd echter meer van dit:// Setting the xmouse to 0 in the centre of the movie:
ymouse = _ymouse - (heightmovie / 2);
// Setting the speed:
speed = (ymouse) / scrollspeed;
// If the speed is negative, the speed will be made positive here:
if (speed < 0) {
speed = -(speed);
}
// If the mouse moves to left, the photo will scroll to the right:
// (That makes sense.... Doesn't it!! ;-)
if (ymouse < 0) {
ytext = ytext + speed;
}
// If the mouse moves to the right, the photo will scroll to the left:
if (ymouse > 0) {
ytext = ytext - speed;
}
// Checking for the left end of the image:
if (ytext > 0) {
ytext = 0;
if (this._parent.pijlomhoog._alpha > 40) {
this._parent.pijlomhoog._alpha -= 20;
}
} else {
if (this._parent.pijlomhoog._alpha < 100) {
this._parent.pijlomhoog._alpha += 20;
}
}
// Checking for the right end of the image:
if (ytext < -(heighttext - heightmovie)) {
ytext = -(heighttext - heightmovie);
if (this._parent.pijl_omlaag._alpha > 40) {
this._parent.pijl_omlaag._alpha -= 20;
}
} else {
if (this._parent.pijl_omlaag._alpha < 100) {
this._parent.pijl_omlaag._alpha += 20;
}
}
// Placing the moviclip (photo) on it's new postition:
setProperty("content_home", _Y, ytext);
depieje
%Europe/Berlin %870 %2005, 21:53
Hey hartstikke bedankt!
het werkt...en inderdaad jouw keuze lijkt veel mooier, ik sluit me aan bij het voorstel van een as-pro... :)
bedankt,
depieje
Laiverd
%Europe/Berlin %875 %2005, 22:00
Verre van ideale code en opzet, maar met
// If the mouse moves to left, the photo will scroll to the right:
// (That makes sense.... Doesn't it!! ;-)
if (ymouse < 0) {
_root.pijlomhoog._visible = true;
_root.pijl_omlaag._visible = false;
ytext = ytext + speed;
}
// If the mouse moves to the right, the photo will scroll to the left:
if (ymouse > 0) {
_root.pijlomhoog._visible = false;
_root.pijl_omlaag._visible = true;
ytext = ytext - speed;
}
wordt het wellicht wel wat je wilt.
John
depieje
%Europe/Berlin %948 %2005, 23:45
Laiverd,
ik ben al tot het gewenste resultaat bekomen door de code van PIMM te gebruiken.
Jij hebt het echter over een 'verre van ideale code', kan je me dan een betere manier tonen om dit aan te pakken?
zoals je ziet aan de commentaar is het van een horizontale scroller 'stolen' ;)
grtz,
depieje
Laiverd
%Europe/Berlin %036 %2005, 01:52
Je hebt nu een opzet waarin je continu loopt op twee frames, voortduren controleert of de muis zich op een bepaalde positie bevindt, en er pas wat gebeurt indien de muis zich inderdaad op die positie bevindt. Dat is dus zonde van de rekenkracht van je computer, en inefficient. Je wilt een situatie wanneer er alleen een loop is om te scrollen wanneer er gescrolled moet worden: event-based in plaats van timebased.
Je kunt 'm event based maken door onder/boven je movieclip twee onzichtbare buttons te maken (bv. up_btn en down_btn), en met een rollOver een onEnterFrame te triggeren waarin de code wordt uitgevoerd die ervoor zorgt dat de boel gaat scrollen.
Verder wil je echt alle code in het eerste frame op de hoofdtijdlijn van je movie, en niet ergens diep weggestopt in je movie.
Heb nu geen tijd om een volledig uitgewerkt voorbeeld te maken, maar ik denk dat er wel ergens een wat meer up to date voorbeeld is te vinden. De code die je nu hebt en de oplossing is de benadering van Flash 5. We zijn alweer wat verder en er zal dus vast wat nieuws zijn. Wellicht www.kirupa.com?
John
Pimm
%Europe/Berlin %615 %2005, 15:46
Laiverd heeft gelijk weet je? Alleen, als je niet snapt waar hij het over heeft, kun je er maar beter niet aan beginnen. Erg makkelijk is het namelijk niet. Pro's als Laiverd vergeten nog wel eens dat er ook nog noobs bestaan :)
theFlashWizard
%Europe/Berlin %739 %2005, 18:44
dat idee valt best wel mee.. zo wordt het meestal in hand-make scrollbars ook gebruikt.. en daar zijn echt zat goede voorbeelden van.. ook voor noobs ;)
depieje
%Europe/Berlin %859 %2005, 21:37
Ik wil daar wel eens wat tijd instoppen om dat deftig en degelijk uit te werken maar ik weet niet goed hoe er aan te beginnen. Kan iemand me misschien op weg zetten of een vb. doorgeven want voor de moment weet ik niet hoe ik er moet aan beginnen.
grtz,
depieje
theFlashWizard
%Europe/Berlin %861 %2005, 21:41
kijk bijv eens naar voorbeelden hoe scrollbars werken met knoppen.. dan is kijke of je dat kan omgooien naar het aanpassen van de verticale positie van een mc..
Laiverd
%Europe/Berlin %866 %2005, 21:48
Als je al wel iets van as snapt, is het boek van Colin Moock een aanrader: Actionscript the Definitive guide. In een later stadium kun je dan overgaan op Essential Actionscript van dezlefde schrijver, dat zich meer richt op OOP (Object Oriented Programming) met actionscript.
Wat voor mij werkt is zo'n boek gewoon van voor naar achter doornemen en alle voorbeelden zelf maken. Het inzicht in hoe je dingen handiger kunt oplossen groeit dan bijna vanzelf. Probeer ook te denken in bouwstenen in plaats van een compleet huis: deel je applicatie op in zo klein mogelijke onderdelen (zonder het geheel uit het oog te verliezen). Vaak kun je die bouwstenen zo bouwen dat ze op meer plaatsen inzetbaar zijn. Bijkomend voordeel voor de beginnende programmeur: je hebt iets kleins en overzichtelijks dat je kunt maken.
En dwing jezelf om alle code op het eerste frame van je movie te zetten; dat zal niet altijd lukken (en is soms ook niet handig), maar het dwingt je wel om op een andere manier over de structuur van je site na te denken. Het heeft mij ook jaren gekost en ik weet ook niet alles (integendeel), maar m'n movies zijn nu wel 1 frame lang ;) En da's best overzichtelijk.
Tenslotte: wees georganiseerd; geef je symbolen, instances en layers logische namen, zodat je over vijf jaar ook nog weet wat ze zijn door enkel naar de naam te kijken. Ik geef een movieclip die ik als button gebruik bv altijd de extensie _btn mee.
En verder; iets kleins bedenken en gewoon aan de gang gaan.
John
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.