Hi Nick,

2009/8/19 Nick Sabalausky <bus_mailingli...@semitwist.com>:
> Some things I wanted to check on before actually filing bug reports (and
> these all seem to be common to all of the 0.2.12.x versions, as far as I
> could tell. Ie, including your custom ones, but not exclusive to them):
>
> - When a movieclip has multiple frames, each containing transparency, each
> of the frames "show through" to all previous frames. I'd be very surprised
> (and somewhat disappointed too, actually) if this is intended behavior, but
> I'm not certain, so I thought I'd ask.

If you mean that the *contents* of each frame have the same depth then
yes, that's intended behaviour and a feature of the SWF format. The
idea is that if some elements of your animation are constant between
frames then you can keep them from one frame to the next with zero
bandwidth.

If there's a clip placed in frame 1, and you no longer want it in
frame 2 but you are also not replacing it, the solution is to
explicitly remove it in frame 2. Unfortunately there's no way to do
this currently in the simple dialect. Please do report a bug
requesting that feature.

(I suppose a <remove-all> or similar might be helpful too).


> - When placing clips in swfmill-simple, is the depth attribute supposed to
> be required? If so, there should probably be an error or warning when it's
> omitted (There doesn't seem to be, currently). If not, then there's a bug
> when doing so: If there's multiple frames, all omitting the depth attribute,
> then only the first frame is ever actually shown.

In the sense that there's no code to choose a default for you, yes,
it's supposed to be required :). What actually happens is that swfmill
generates <PlaceObject2 depth="" ... >, which I am guessing translates
into depth="0" in the output SWF. That usually works, more by luck
than judgement, but what doesn't work is the code that kicks in if
you're replacing a previous object at the same depth.

Two possible solutions:
 * Report an error and die if there is no explicit depth.
 * Choose a reasonably sane default somehow.

Three possible ways to choose a default:
 * Always 0 (confusing/unhelpful, but closest to current behaviour).
 * The lowest unused depth in the current frame (behaves weirdly if
you don't replace all objects in every frame).
 * The lowest unused depth in all frames (but then the default
behaviour is for all objects persist from one frame to the next).

Normally I'd prefer to choose a default but I think that, whatever
default we choose, the resulting behaviour will be confusing once
multiple frames come into play. An alternative would be to make depth
mandatory if there are multiple frames, but optional otherwise.

A lack of error-reporting is a general problem with swfmill. I intend
to make it much stricter in general. If you report any specific cases
where you would like it to be stricter that will help to make sure I
don't miss those.

Cheers,
Dan.

_______________________________________________
swfmill mailing list
swfmill@osflash.org
http://osflash.org/mailman/listinfo/swfmill_osflash.org

Reply via email to