Detta beror på att alpha i AS anges med ett värde av 0 - 100 men i verkligheten är det ett tal mellan 0 och 256. Därför är värdet på _alpha alltid en multipel av 0.390625. Vilket är 100 / 256.
/Mirandir
2 svar · 235 visningar · startad av oskob
Hej!
Jag sitter och petar lite i flash och håller på att slita mitt hår över ett väldigt konstigt problem.
Jag en superenkel kod:
this.onEnterFrame = function () {
if ( _parent.test2._alpha > 0 ) {
_parent.test2._alpha -= 10;
}
}
Den ska helt enkelt minska alphan med 10 tills den når 0. Men tracar jag movieclipets alpha så gör den inte riktigt som jag säger. Det här är vad jag får:
100
89.84375
79.6875
69.53125
59.375
49.21875
39.0625
28.90625
18.75
8.59375
-1.171875
Jag har ingen aning om vad alla decimaler kommer ifrån. Även om jag försöker sätta den till ett fast värde, t.ex. _alpha = 20, så säger den att det blir 19.8765någonting. Helt knasigt. Jag har testat att göra nya movieclips och skriva om koden från början och flytta runt den för att utesluta att det är någon annan kod som ligger och tuggar någonstans. Är det här någon väldigt elak bugg eller vad är det frågan om tror ni?
Tack på förhand för svar!
Detta beror på att alpha i AS anges med ett värde av 0 - 100 men i verkligheten är det ett tal mellan 0 och 256. Därför är värdet på _alpha alltid en multipel av 0.390625. Vilket är 100 / 256.
/Mirandir
Ja det förklarar ju en del! Finns det något sätt att komma runt detta? T.ex. en property för att sätta alphan i 256 steg istället för 100.
Är detta något nytt? Väldigt konstigt att jag inte stött på det här förut.