swf: Allow construct clip events in SWFv6
This commit is contained in:
parent
d9ac9fa076
commit
eb0b16790c
|
@ -2356,7 +2356,9 @@ impl<R: Read> Reader<R> {
|
||||||
self.read_u16()?;
|
self.read_u16()?;
|
||||||
} else {
|
} else {
|
||||||
self.read_ubits(5)?;
|
self.read_ubits(5)?;
|
||||||
if self.read_bit()? && self.version >= 7 {
|
if self.read_bit()? {
|
||||||
|
// Construct was only added in SWF7, but it's not version-gated;
|
||||||
|
// Construct events will still fire in SWF6 in a v7+ player. (#1424)
|
||||||
event_list.insert(ClipEventFlag::Construct);
|
event_list.insert(ClipEventFlag::Construct);
|
||||||
}
|
}
|
||||||
if self.read_bit()? {
|
if self.read_bit()? {
|
||||||
|
|
|
@ -2237,8 +2237,7 @@ impl<W: Write> Writer<W> {
|
||||||
self.write_bit(clip_events.contains(ClipEventFlag::Data))?;
|
self.write_bit(clip_events.contains(ClipEventFlag::Data))?;
|
||||||
if self.version >= 6 {
|
if self.version >= 6 {
|
||||||
self.write_ubits(5, 0)?;
|
self.write_ubits(5, 0)?;
|
||||||
let has_construct = self.version >= 7 && clip_events.contains(ClipEventFlag::Construct);
|
self.write_bit(clip_events.contains(ClipEventFlag::Construct))?;
|
||||||
self.write_bit(has_construct)?;
|
|
||||||
self.write_bit(clip_events.contains(ClipEventFlag::KeyPress))?;
|
self.write_bit(clip_events.contains(ClipEventFlag::KeyPress))?;
|
||||||
self.write_bit(clip_events.contains(ClipEventFlag::DragOut))?;
|
self.write_bit(clip_events.contains(ClipEventFlag::DragOut))?;
|
||||||
self.write_u8(0)?;
|
self.write_u8(0)?;
|
||||||
|
|
Loading…
Reference in New Issue