Running Fuse 0.29.0 on El Capitan.
This is probably not a bug…it’s likely I’m doing something wrong, but thought this seemed like the right place.
I’m trying figure out the ordering of ActivatingAnimation
and DeactivatingAnimation
. When paging through a PageControl
left-to-right, the ActivatingAnimation
appears to be triggered before the DeactivatingAnimation
of the previous page. When paging right-to-left, it looks like the DeactivatingAnimation
is being triggered first.
Some source to repro with some notes of what I’m trying to accomplish…
- Basically I’m just messing around trying to reproduce the iOS camera app.
- The code below is pared down to a green panel with text Hello World. (this is supposed to be the camera view)
- In front of that panel is a
PageControl
to switch between the different modes of operation. - When switching from one mode to another, the camera view is supposed to blur. I handle this with the
ActivatingAnimation
andDeactivatingAnimation
. - You might ask why I need the
DeactivatingAnimation
when I already set the blur radius to 0 on theActivated
trigger, but I’ll be posting another bug report on that.
<App>
<JavaScript>
var Observable = require("FuseJS/Observable");
module.exports = {
pagesView: Observable(
{name: "TIME-LAPSE"},
{name: "SLO-MO"},
{name: "VIDEO"},
{name: "PHOTO"},
{name: "SQUARE"},
{name: "PANO"}
)
};
</JavaScript>
<Panel>
<Panel>
<LinearNavigation ux:Name="nav">
<NavigationMotion GotoEasing="QuadraticOut" GotoDuration="0.3" />
</LinearNavigation>
<SwipeNavigate SwipeDirection="Left"/>
<Panel ux:Name="self" ux:InnerClass="Mode">
<ActivatingAnimation>
<Change self.Opacity="1" Duration="0.5"/>
<Change text.Color="#ffaa00" Duration="0.5" />
<Set blur.Radius="2" />
<DebugAction Message="{name}" />
<DebugAction Message="activating" />
</ActivatingAnimation>
<Activated>
<Set blur.Radius="0" />
<DebugAction Message="{name}" />
<DebugAction Message="activated" />
</Activated>
<DeactivatingAnimation>
<Set blur.Radius="0" />
<DebugAction Message="{name}" />
<DebugAction Message="deactivating" />
</DeactivatingAnimation>
<EnteringAnimation Scale="0.25">
<Move RelativeTo="Size">
<Keyframe Time="0.25" X="-0.2" />
<Keyframe Time="0.5" X="-0.4" />
<Keyframe Time="0.75" X="-0.6" />
<Keyframe Time="1" X="-0.8" />
</Move>
</EnteringAnimation>
<ExitingAnimation Scale="0.25">
<Move RelativeTo="Size">
<Keyframe Time="0.25" X="0.2" />
<Keyframe Time="0.5" X="0.4" />
<Keyframe Time="0.75" X="0.6" />
<Keyframe Time="1" X="0.8" />
</Move>
</ExitingAnimation>
<Panel HitTestMode="LocalBounds" Height="100%" Color="#00000000">
<DockPanel>
<Text Dock="Bottom" Y="-90" ux:Name="text" Margin="10" FontSize="12" Alignment="Center" Color="#ffffff" Value="{name}"></Text>
</DockPanel>
</Panel>
</Panel>
<Each Items="{pagesView}">
<Mode />
</Each>
</Panel>
<Panel Height="100%" Color="#007700">
<Blur ux:Name="blur" Radius="2" />
<Text Alignment="Center" Value="Hello World" Color="#ffffff"/>
</Panel>
</Panel>
</App>
Here’s an example of the logging I get when going from time-lapse to slo-mo:
LOG: TIME-LAPSE
LOG: deactivating
LOG: SLO-MO
LOG: activating
LOG: SLO-MO
LOG: activated
Bug when going the opposite direction:
LOG: TIME-LAPSE
LOG: activating
LOG: SLO-MO
LOG: deactivating
LOG: TIME-LAPSE
LOG: activated
The effect is that I don’t get the blur effect when going right-to-left. Is this ordering by design?
Thanks!
-Atish