I'm having a problem where if I apply a dropshadow filter to a parent clip, it's children will sometimes align to non-integer pixels, but as soon as you roll over a button in the children, they visibly snap back to a whole pixel. It's definitely due to the dropshadow filter, because if I disable it then all of the children are on whole-pixels and stay there. The parent clip's coordinates are whole pixels, with and without the filter.
Anybody have any idea what's up? And how to avoid this? Not only is it visually annoying, to see everything jump a pixel (in alignment as well as size sometimes) when you roll over a clip with button actions, but it's only certain children, so then pixel alignment is broken afterwards.
I've checked the coordinates of all clips, before and after the "jump" and they're all report being on whole pixels, but with the dropshadow filter applied to the parent, it seems that what gets drawn and what the code reports are two different things.
did you try cacheAsBitmap it might be a pixel/vector thing, filters work with pixels, so best to make sure flash is using pixels all the time?
cacheAsBitmap is forced when applying bitmaps so there isn't much you can do on that front.
It may have something to do with clip (or child clip) scale. Jerkstore, maybe post an example with code as there are no obvious gotchas and it might be in the implementation that this is happening.
if you're applying the filter to a movieclip that contains a bitmap, try turning on smoothing for that bitmap. Also see if you're applying a filter distance that is a whole number too.
Thanks for the reply guys.
Filter is being applied to all-vector stuff - no bitmaps.
The filter distance is definitely a whole number, as are the x/y blur amounts.
I'll try and post some sample code in a bit, through it's kind of an involved set of classes and clips so I'll have to figure out a way to pull the relevant parts out.
Does the issue persist with different stage quality settings?
if you effectively apply a filter that makes no difference and then swap to one you want then is there still a relative shift between. Did you try forcing an updateAfterEvent or moving it one pixel back and then forwards just incase flash missed it, like we used to trace _height on textfields to get autosize info to resolve to correct height. But a cut down ver is the only way to fix this type of stuff so your on the right track.
Originally posted by: Arsis Does the issue persist with different stage quality settings?
Actually, that seems to have fixed it.
I had the quality of my movie set to BEST and by removing any quality setting entirely, it no longer seems to experience the pixel shift.
Nevermind, it fixed it momentarily (or so it seemed). It's doing it again now.
It seems like it's mostly dynamic text that is jumping, and not other vector objects.
Looking at it more, I'd definitely describe it more as a "quality" shift than a pixel shift. Grrrrrr...
Well, for the time being I think it's "fixed" but I'm still not really sure what the issue was.
But I'm delaying the creation of the child clips until the parent (with the dropshadow) has actually animated onto screen. So it's more of a two-step load now, rather than loading a fully-populated parent, but that seems to prevent the children from freaking out when they're first interacted with.
Works for now 