Autor Zpráva
Rív
Profil *
Tak sem se začal učit ve flashi, mám malinko naprogramováno v PHP a ještě méně v JS, atak to nejsou zas takový muka... narazil jsem vška na problém. Pokoušel jsem se dělat položku, u níž by se při najetí plynule změnila průhlednost, což zas nebyl takový problém... horší je to, že když párkrát zkusím najet a sjet z položky, jako by se snižuje doba, za kteoru k přechodu dojde. Nevím co to je za problém, ale zkoušel jsem si takovou malou kontolu s dynamickým polem, které mi ukazovalo číselný průběh zprůhlednňování a zviditelňování - normálně dojde k přeměně průhlendosti od 100% do 20% a zpět od 20% do 100%, jen stále zrychluje (a občas se objevují i hodnoty v desetiných číslech což nepobíram). Nějaké rady co s tím ? Popřípadě jak to celé nějak zjednodušit/odlehčit ?


on (rollOver)

{
i = objekt._alpha;
akce = "zmiz";
setInterval(prolnout, 10)
function prolnout()
{
objekt._alpha = i; //nastaví průhlednost podle momentální hodnty proměné "i"
if(akce == "zmiz" and i>=20){i--} //při najetí znižuje průhlednost až do 20%
else if(akce == "objev" and i<=100){i++} //při vyjetí ji zvyšuje zpět do 100%
}
}
on (rollOut)
{
i = objekt._alpha;
akce = "objev";
setInterval(prolnout, 10)
}
Vit
Profil
hmm děláš podle mně chybu v definování proměnné "i" kdy vystane problem že když na to najedeš dřív než to zmizí tak hodnota alpha je jina než když mněl na začátku.
Rív
Profil *
To je naopak žádoucí, protože se počítá s tim, že na to můžeš najet dřív než se to vrátí do původního stavu, a v takovém případě potřebuješ aby to probíhalo od současný hodnoty. Musí se počítat s tim, že stávající honota může bejt v ten okamžik jakákoli, takže to by nijak ovlivnit nemělo.
Hm.... exportnu a postnu to sem.
Rív
Profil *
elderin.mysteria.cz/button.swf
krekoma
Profil
problém je podle mne v tom, že ty neustále spouštíš časované provádění funkcí a nikdy toto spouštění nevypínáš. Po použití funkce setInterval() dostaneš identifikátor, pod kterým si můžeš představit časovač který spouští tvou funkci. Na vhodném místě pak musíš použít clearInterval(id), kde id je identifikátor toho časovače. Zjednodušeně řečeno pro každý setInterval bys měl použít clearInterval jinak se ti spouštění funkcí bude násobit a aplikace se bude chovat nestandardně.
moltom
Profil *
Tento problem ma zaujal, tak som sa nan pozrel a dospel som k takemuto rieseniuL=:

_root.onEnterFrame = function() {
_global.alpha = _root.button3_mc._alpha;
}

var alphaDn:Number;
var alphaU:Number;

_root.button3_mc.onRollOver = function () {
clearInterval(alphaU);
alphaDn = setInterval(alphaDown,10);

function alphaDown() {
var i:Number= alpha;
_root.alpha_txt.text = Math.round(i);


if(i<=110 && i >30) {
_root.button3_mc._alpha -= 3;
}
updateAfterEvent();
}
}

_root.button3_mc.onRollOut = function () {
clearInterval(alphaDn);
alphaU = setInterval(alphaUp,10);

function alphaUp() {
var i:Number= alpha;
_root.alpha_txt.text = Math.round(i);

if(i<=100 && i >0) {
_root.button3_mc._alpha += 3;
}
updateAfterEvent();
}

}

Pricom staci na plochu umiestnit mc s nazvom button3_mc a tento script skopirovat na hlavnu casovu os...

K spominanemu zrychleniu nedochadza, avsak problemom je v tomto pripade fakt, ze sa znizovanie/zvysovanie alphy nikdy nezastavi presne na hodnotach 100 a 20...to este treba nejako osetrit - najlepsie upravenim tych podmienok tak, aby sa hodnota i znizovala/zvysovala po desiatkach...

tu sa to da pozriet...

http://www.moltom.com/FLASH/blur.swf
Toto téma je uzamčeno. Odpověď nelze zaslat.

0