@@ -17,47 +17,47 @@ def load(self, swf, tag: int):
17
17
self .fps = swf .reader .read_byte ()
18
18
self .frames_count = swf .reader .read_uint16 ()
19
19
20
- transforms_count = swf .reader .read_uint32 ()
20
+ if tag in (3 , 14 ,):
21
+ pass
22
+ else :
23
+ transforms_count = swf .reader .read_uint32 ()
21
24
22
- for i in range (transforms_count ):
23
- bind_index = swf .reader .read_uint16 ()
24
- matrix_id = swf .reader .read_uint16 ()
25
- color_transform_id = swf .reader .read_uint16 ()
25
+ for i in range (transforms_count ):
26
+ bind_id = swf .reader .read_uint16 ()
27
+ matrix_id = swf .reader .read_uint16 ()
28
+ color_transform_id = swf .reader .read_uint16 ()
26
29
27
- if not (bind_index in self .transforms ):
28
- self .transforms [bind_index ] = {'matrices' : [], 'color_transforms' : []}
29
- self .transforms [bind_index ]['matrices' ].append (matrix_id )
30
- self .transforms [bind_index ]['color_transforms' ].append (color_transform_id )
30
+ if not (bind_id in self .transforms ):
31
+ self .transforms [bind_id ] = {'matrices' : [], 'color_transforms' : []}
32
+ self .transforms [bind_id ]['matrices' ].append (matrix_id )
33
+ self .transforms [bind_id ]['color_transforms' ].append (color_transform_id )
31
34
32
35
binds_count = swf .reader .read_uint16 ()
33
36
34
37
for i in range (binds_count ):
35
38
bind_id = swf .reader .read_uint16 () # bind_id
36
39
self .binds .append (bind_id )
37
40
38
- for i in range (binds_count ):
39
- blend = swf .reader .read_byte () # blend
40
- self .blends .append (blend )
41
+ if tag in (12 , 35 ,):
42
+ for i in range (binds_count ):
43
+ blend = swf .reader .read_byte () # blend
44
+ self .blends .append (blend )
41
45
42
46
for i in range (binds_count ):
43
47
swf .reader .read_string () # bind_name
44
48
45
49
while True :
46
- inline_data_type = swf .reader .read_ubyte ()
47
- swf .reader .read_int32 () # data_length
50
+ frame_tag = swf .reader .read_ubyte ()
51
+ frame_length = swf .reader .read_int32 ()
48
52
49
- if inline_data_type == 0 :
53
+ if frame_tag == 0 :
50
54
break
51
55
52
- if inline_data_type == 11 :
56
+ if frame_tag == 11 :
53
57
swf .reader .read_int16 () # frame_id
54
58
swf .reader .read_string () # frame_name
55
- elif inline_data_type == 31 :
56
- for x in range (4 ):
57
- swf .reader .read_ubyte ()
58
- swf .reader .read_ubyte ()
59
- swf .reader .read_string ()
60
- swf .reader .read_string ()
59
+ else :
60
+ swf .reader .read (frame_length )
61
61
62
62
def render (self , swf ):
63
63
# shape_min_x = 0
0 commit comments