public virtual void OnDeserialize(BinaryReader stream, StringCacheTable cache_table) { var count = stream.ReadInt32(); for (int i = 0; i < count; i++) { var command = CommandDeserializtionFactory.Create(stream, cache_table); AddCommand(command);//todo: use AddCommandRange() } //ImageFilePath=stream.ReadString(); ImageFilePath = cache_table[stream.ReadUInt32()]; FromOsbFile.OnDeserialize(stream); FrameStartTime.OnDeserialize(stream); FrameEndTime.OnDeserialize(stream); layer = (Layer)stream.ReadByte(); Z.OnDeserialize(stream); Postion.OnDeserialize(stream, cache_table); Scale.OnDeserialize(stream, cache_table); Color.OnDeserialize(stream, cache_table); OriginOffset.OnDeserialize(stream, cache_table); Rotate.OnDeserialize(stream); IsAdditive.OnDeserialize(stream); IsHorizonFlip.OnDeserialize(stream); IsVerticalFlip.OnDeserialize(stream); FileLine.OnDeserialize(stream); //try to rebuild base trasform reset action var pos = Postion; var start = FrameStartTime; var end = FrameEndTime; var color = Color; var scale = Scale; var additive = IsAdditive; var rotate = Rotate; var horizon = IsHorizonFlip; var vertical = IsVerticalFlip; BaseTransformResetAction += (StoryboardObject obj) => { obj.Postion = pos; obj.FrameStartTime = start; obj.FrameEndTime = end; obj.Color = color; obj.Scale = scale; obj.IsAdditive = additive; obj.IsHorizonFlip = horizon; obj.IsVerticalFlip = vertical; obj.Rotate = rotate; }; }
public override void OnDeserialize(BinaryReader stream, StringCacheTable cache) { base.OnDeserialize(stream, cache); var count = stream.ReadInt32(); for (int i = 0; i < count; i++) { var command = CommandDeserializtionFactory.Create(stream, cache); AddSubCommand(command); } }
public void CommandTest() { var command = new FadeCommand(); command.StartTime = 1000; command.EndTime = 2000; command.StartValue = 1; command.EndValue = 0; command.Easing = EasingTypes.None; MemoryStream stream = new MemoryStream(); StringCacheTable cache = new StringCacheTable(); using (var writer = new BinaryWriter(stream)) { command.OnSerialize(writer, cache); } var bytes = stream.ToArray(); stream.Dispose(); stream = new MemoryStream(bytes); using (var reader = new BinaryReader(stream)) { var fade = CommandDeserializtionFactory.Create(reader, cache); Assert.AreEqual(command.StartTime, fade.StartTime); Assert.AreEqual(command.EndTime, fade.EndTime); Assert.AreEqual(command.Event, fade.Event); var x = fade as FadeCommand; Assert.IsNotNull(x); Assert.AreEqual(command.StartValue, x.StartValue); Assert.AreEqual(command.EndValue, x.EndValue); Assert.AreEqual(command.Easing, x.Easing); } }