diff --git a/swf/src/read.rs b/swf/src/read.rs index 71a1b5558..3a18a07b3 100644 --- a/swf/src/read.rs +++ b/swf/src/read.rs @@ -2356,7 +2356,9 @@ impl Reader { self.read_u16()?; } else { 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); } if self.read_bit()? { diff --git a/swf/src/write.rs b/swf/src/write.rs index b3c5b8f25..9152e854d 100644 --- a/swf/src/write.rs +++ b/swf/src/write.rs @@ -2237,8 +2237,7 @@ impl Writer { self.write_bit(clip_events.contains(ClipEventFlag::Data))?; if self.version >= 6 { self.write_ubits(5, 0)?; - let has_construct = self.version >= 7 && clip_events.contains(ClipEventFlag::Construct); - self.write_bit(has_construct)?; + self.write_bit(clip_events.contains(ClipEventFlag::Construct))?; self.write_bit(clip_events.contains(ClipEventFlag::KeyPress))?; self.write_bit(clip_events.contains(ClipEventFlag::DragOut))?; self.write_u8(0)?;