Adding text scale animation to header content in z-order scrolling sample, and cleanup of ignored files

This commit is contained in:
David Li 2016-01-27 17:12:47 -08:00
Родитель 5336eb7fbf
Коммит 3773d28027
7 изменённых файлов: 121 добавлений и 126 удалений

14
.gitignore поставляемый
Просмотреть файл

@ -1,4 +1,10 @@
.vs/
bin/
obj/
*.csproj.user
# General Visual Studio files to ignore
.vs/
[Bb]in/
[Oo]bj/
[Dd]ebug/
[Rr]elease/
x64/
*.csproj.user
*.sdf
*.opendb

Просмотреть файл

@ -47,21 +47,28 @@
<TextBlock Text="Career" Style="{StaticResource DividingText}"></TextBlock>
</Border>
<TextBlock Style="{StaticResource BasicText}" xml:space="default" Text=
"Mr. Satya Nadella is the Chief Executive Officer of Microsoft Corporation since February 4, 2014. Nadella
joined Microsoft in 1992. Prior to becoming CEO, Nadella was the president of the Servers and Tools
Business (STB) at Microsoft. Satya Nadella was accountable for the overall business and technical vision,
strategy, operations, engineering and marketing for Microsoft's $15 billion business. STB is responsible for
Microsoft infrastructure software, developer tools and cloud platform, including products such as Windows Server,
SQL Server, Visual Studio, System Center and the Windows Azure Platform.
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce iaculis eget tellus sodales feugiat. Proin risus nunc,
facilisis ut tincidunt a, tempus at felis. In nec congue justo, vel interdum libero. Cum sociis natoque penatibus et
magnis dis parturient montes, nascetur ridiculus mus. In et sapien aliquet, rutrum ex congue, accumsan augue. Nulla
nec eleifend quam. Pellentesque et facilisis libero. Duis tristique, augue in consectetur imperdiet, turpis odio
consequat orci, malesuada semper sem lectus tristique enim. Nunc porta varius nibh, in congue mauris sodales at.
Phasellus tristique eleifend magna auctor euismod. Integer accumsan eu lorem a rhoncus.
&#x0a;&#x0a;
Prior to joining the Online Services Division, he led Microsoft Business Solutions (MBS), which develops and
markets the Microsoft Dynamics line of ERP and CRM products. Prior to that, he spent several years leading engineering
efforts in Microsoft's Server group. Before joining Microsoft, Nadella was a member of the technology staff at
Sun Microsystems Inc.
Nulla in porttitor ex. Nam vestibulum fermentum gravida. Donec vehicula ligula vel hendrerit finibus. Sed pulvinar
sagittis metus, eu condimentum nunc rutrum tristique. Vestibulum sit amet ultricies augue. Mauris dictum porta dignissim. In
non dignissim sem. Mauris eu eleifend eros. Nunc ac ante et elit sollicitudin egestas non vel ligula. In eu enim
purus. Praesent feugiat nulla enim, ut congue metus fermentum ac. Mauris vehicula quam sem. Suspendisse lacus purus,
ultrices et dapibus ac, interdum mollis nisl. Sed fermentum, purus a gravida luctus, nibh orci viverra diam, non posuere
risus velit ut arcu. Aliquam erat volutpat. Donec rutrum turpis non sem fermentum euismod.
&#x0a;&#x0a;
A native of Hyderabad (India), Nadella has a Bachelor's degree in Electrical Engineering from Mangalore University,
a Master's degree in Computer Science from the University of Wisconsin and an M.B.A. from the University of Chicago.
He and his wife have three children and reside in Washington state.">
Vestibulum laoreet justo placerat erat placerat, ut dictum ante eleifend. Curabitur pulvinar libero eros, a mattis nisl
finibus accumsan. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce a
vestibulum ante. Sed nec dui et urna blandit venenatis quis sit amet sapien. Integer tristique nec metus vitae viverra.
Mauris egestas augue a felis pretium aliquet. Donec ultricies urna non erat mattis, sit amet porta erat eleifend. Nullam in
consequat enim. Integer ipsum nunc, tempor sit amet tellus fermentum, tristique bibendum ipsum. Integer vitae venenatis
justo. Donec at nulla mollis, mollis sem nec, sagittis elit. Nulla in dapibus nisi, feugiat convallis justo. Morbi elit
libero, rutrum vel venenatis in, pulvinar sed lectus. Ut sem lorem, congue sit amet erat varius, interdum elementum arcu.
Curabitur ut neque sit amet lectus lacinia tempor faucibus gravida lorem. ">
</TextBlock>
@ -71,11 +78,11 @@ He and his wife have three children and reside in Washington state.">
</Border>
<TextBlock Style="{StaticResource BasicText}" Text=
"Satya Narayana Nadella (/ˈnədɛlæ/; born August 19, 1967) is an Indian-American business executive. He is the
current chief executive officer (CEO) of Microsoft.[7][8] He was appointed as CEO on 4 February 2014, succeeding
Steve Ballmer. Before becoming CEO of Microsoft, he was Executive Vice President of Microsoft's Cloud and
Enterprise group, responsible for building and running the company's Computing Platforms, Developer Tools and
Cloud Computing Services."
"Pellentesque dignissim ac lorem non viverra. Curabitur placerat sapien sem, sit amet dictum enim malesuada sit amet.
Curabitur tristique sit amet quam eget vehicula. Sed facilisis leo turpis, ut tincidunt mi mattis quis. In eget suscipit
erat. Vivamus aliquet rhoncus posuere. Cras bibendum lobortis nulla vel dignissim. Vivamus congue lacus id vestibulum porttitor.
Pellentesque sit amet volutpat metus. Nulla vitae quam eget nibh rutrum viverra. Vivamus mollis, mauris sed tempor commodo,
massa ex accumsan lectus, sit amet ultrices leo velit sed leo. Nunc in enim enim."
></TextBlock>
@ -84,31 +91,44 @@ Cloud Computing Services."
</TextBlock>
</Border>
<TextBlock Style="{StaticResource BasicText}" Text=
"Nadella[9][10][11] was born into a Telugu speaking family[11] in Hyderabad, Andhra Pradesh (now Telangana),
India. His father, Bukkapuram Nadella Yugandher, was a civil servant of the Indian Administrative Service.[12][13]
Nadella attended the Hyderabad Public School, Begumpet[14] before attaining a bachelor's degree in electrical engineering[15]
from the Manipal Institute of Technology in 1988 (then affiliated with Mangalore University), Manipal, Karnataka.[16][17][18][19][20]
"Phasellus eu tincidunt est, et blandit lectus. Integer ultricies faucibus hendrerit. Integer ultricies efficitur sem. In
ut molestie magna. Aliquam erat volutpat. Morbi mauris dui, cursus maximus libero a, egestas dignissim mi. Aliquam volutpat
neque non eros interdum scelerisque. Integer ut efficitur quam. Nullam vitae purus a risus luctus vulputate. Curabitur a
turpis metus. Vestibulum lectus dui, aliquet ac dolor lobortis, commodo cursus nulla. Donec dui quam, fringilla ut iaculis
nec, dictum a odio. Duis justo elit, vehicula et ex ac, tincidunt placerat ligula. Integer volutpat ultricies augue, euismod
volutpat dolor finibus ut. Duis tortor nisl, molestie non semper sed, consequat id urna. Proin tincidunt vestibulum lacus, ut
vulputate lorem.
&#x0a;&#x0a;
Nadella subsequently traveled to the U.S. to study for an M.S. degree in Computer Science at the University of
Wisconsin–Milwaukee,[21] receiving his degree in 1990.[22] Later he received an MBA from the University of Chicago
Booth School of Business.[23][24]
Pellentesque convallis auctor feugiat. Nulla sed massa tellus. Donec porta quam massa, vel pretium arcu accumsan viverra.
Quisque dignissim commodo mattis. Nullam eu dictum sem. Aenean faucibus ante eget nisl laoreet, a rhoncus ligula viverra.
Morbi pulvinar quam ex, sed tincidunt nulla posuere at. Vestibulum sit amet urna vel justo lacinia finibus. Ut laoreet aliquam
posuere. Etiam tortor dui, interdum vel magna ut, finibus mattis ante. Phasellus sem nunc, vestibulum quis lacus vitae, lacinia
egestas urna. Aenean et eros vitae ligula fermentum ornare. Mauris imperdiet ipsum quis sapien cursus, nec imperdiet leo aliquam.
Nunc non sapien id augue feugiat dapibus a sit amet enim. Curabitur ante orci, feugiat quis nulla et, dignissim dapibus tellus.
&#x0a;&#x0a;
Nadella said he &quot;always wanted to build things&quot;.[25] He knew that computer science was what he wanted to
pursue,[26] but that emphasis was not available at Manipal University. &quot;And so it [electrical engineering] was
a great way for me to go discover what turned out to become a passion,&quot; he says.[27]"
Pellentesque non tempor ipsum. Nunc ut tristique ex, eu iaculis tellus. Integer tincidunt commodo turpis sed pellentesque.
Aenean rutrum massa tortor, in mollis lectus placerat sed. Vivamus enim libero, rutrum in libero nec, ultricies volutpat risus.
Mauris quis massa nec justo fermentum dictum. Donec laoreet ante eget velit imperdiet molestie. Nullam tellus ligula, hendrerit
vel commodo at, scelerisque ac neque. Aliquam egestas sed elit vel lobortis.
&#x0a;&#x0a;
Morbi pretium purus ac dui malesuada iaculis. Maecenas consectetur nulla in odio vulputate, vel dapibus diam lobortis. Morbi
laoreet ligula sapien, bibendum scelerisque purus euismod sed. Vestibulum et varius risus, eu pulvinar neque. Pellentesque
consequat, ex a molestie congue, elit leo consectetur lectus, sed tempus enim dolor eget nunc. Pellentesque mollis ligula non
ornare porttitor. Nam fermentum ante quis ipsum porta, nec auctor quam imperdiet. "
>
</TextBlock>
</StackPanel>
<Grid Name="MainGrid" VerticalAlignment="Top">
<Grid Name="BackGrid"></Grid>
<Image Name="ParallaxingImage" Source="assets/RollingWaves.jpg" IsHitTestVisible="False"></Image>
<StackPanel Name="ProfileContent" HorizontalAlignment="Center" VerticalAlignment="Top">
<TextBlock Style="{StaticResource ProfileName}">Satya Nadella</TextBlock>
<TextBlock Style="{StaticResource ProfileTitle}">Chief Executive Officer</TextBlock>
</StackPanel>
</Grid>
</Grid>
</ScrollViewer>
<Grid Name="MainGrid" VerticalAlignment="Top">
<Grid Name="BackGrid"></Grid>
<Image Name="ParallaxingImage" Source="assets/RollingWaves.jpg" IsHitTestVisible="False"></Image>
<StackPanel Name="ProfileContent" HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="False">
<TextBlock Style="{StaticResource ProfileName}" IsHitTestVisible="False">Satya Nadella</TextBlock>
<TextBlock Style="{StaticResource ProfileTitle}" IsHitTestVisible="False">Chief Executive Officer</TextBlock>
</StackPanel>
</Grid>
</Grid>
</Page>

Просмотреть файл

@ -35,35 +35,6 @@ namespace Z_ORderScrolling
this.Loaded += MainPage_Loaded;
}
/// <summary>
/// Method used to walk throughthe tree doing a search to find a child element of a given type.
/// </summary>
/// <typeparam name="T">The type of the element to retrieve.</typeparam>
/// <param name="rootElement">The root to start the search at.</param>
/// <returns></returns>
private static T GetChildElement<T>(DependencyObject rootElement)
{
int childCount = VisualTreeHelper.GetChildrenCount(rootElement);
for (int i = 0; i < childCount; i++)
{
DependencyObject current = VisualTreeHelper.GetChild(rootElement, i);
if ((current.GetType()).Equals(typeof(T)))
{
return (T)Convert.ChangeType(current, typeof(T));
}
}
for (int i = 0; i < childCount; i++)
{
DependencyObject current = VisualTreeHelper.GetChild(rootElement, i);
T temp = GetChildElement<T>(current);
if (temp != null)
return temp;
}
return default(T);
}
/// <summary>
/// MainPage_Loaded is used for all of our initialization to keep the UI thread mostly free.
/// </summary>
@ -83,8 +54,6 @@ namespace Z_ORderScrolling
InitializeFrontVisual(scrollProperties, maskedBrush);
InitializeBehindVisual(scrollProperties, maskedBrush);
_scrollBar = GetChildElement<ScrollBar>(Scroller);
UpdateSizes();
}
@ -96,19 +65,20 @@ namespace Z_ORderScrolling
private void InitializeBackgroundImageVisual(CompositionPropertySet scrollProperties)
{
//
// Get the visual for the background image, and let it parallax up until the ParallaxPoint.
// ParallaxPoint is later defined as the amount of the image to leave showing.
// Get the visual for the background image, and let it parallax up until the BackgroundPeekSize.
// BackgroundPeekSize is later defined as the amount of the image to leave showing.
//
_backgroundVisual = ElementCompositionPreview.GetElementVisual(ParallaxingImage);
//
// If the scrolling is positive (i.e., bouncing), don't translate at all. Then check to see if
// we have parallaxed as far as we should go. If we haven't, keep parallaxing otherwise use
// the scrolling translation to keep the background stuck with the background peeking out.
//
_backgroundTranslationAnimation = _compositor.CreateExpressionAnimation(
"BaseOffset + Vector3(" +
"0," +
"scrollingProperties.Translation.Y > 0 ? 0 :" +
"(ParallaxRatio * -scrollingProperties.Translation.Y) < ParallaxPoint ? " +
"(ParallaxRatio * scrollingProperties.Translation.Y) : (-ParallaxPoint)," +
"0)");
"BaseOffset + (scrollingProperties.Translation.Y > 0 ? 0 : " +
"( (1-ParallaxRatio) * -scrollingProperties.Translation.Y) < BackgroundPeekSize ? " +
"(ParallaxRatio * -scrollingProperties.Translation.Y) : -BackgroundPeekSize-scrollingProperties.Translation.Y)");
_backgroundTranslationAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
_backgroundTranslationAnimation.SetScalarParameter("ParallaxRatio", _parallaxRatio);
@ -130,16 +100,16 @@ namespace Z_ORderScrolling
//
_profileContentVisual = ElementCompositionPreview.GetElementVisual(ProfileContent);
_profileContentTranslationAnimation = _compositor.CreateExpressionAnimation(
"Vector3(Target.Size.X/2, Target.Size.Y/2 + Background.Offset.Y - Background.Size.Y/2, 0) + " +
"Lerp(" +
"Vector3(0, 0, 0)," +
"Vector3(0, 1+ShowRatio/2 * Background.Size.Y ,0)" +
"Clamp( (BaseOffset.Y - Background.Offset.Y)/ParallaxPoint,0,1)" +
")");
_profileContentTranslationAnimation.SetReferenceParameter("Target", _profileContentVisual);
"(-scrollingProperties.Translation.Y + Background.Offset.Y + Background.Size.Y/2)/2");
_profileContentTranslationAnimation.SetReferenceParameter("Background", _backgroundVisual);
_profileContentTranslationAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
_profileContentTranslationAnimation.SetScalarParameter("ShowRatio", _backgroundShowRatio);
_profileContentScaleAnimation = _compositor.CreateExpressionAnimation(
"Lerp(1,ShrinkRatio, " +
"Clamp( (Background.Offset.Y - Background.Size.Y/2) / (Background.Size.Y - BackgroundPeekSize),0,1))"
);
_profileContentScaleAnimation.SetScalarParameter("ShrinkRatio", _contentShrinkRatio);
_profileContentScaleAnimation.SetReferenceParameter("Background", _backgroundVisual);
}
@ -159,29 +129,16 @@ namespace Z_ORderScrolling
ElementCompositionPreview.SetElementChildVisual(MainGrid, _frontVisual);
//
// "Terms" and explanation of the following expression:
// "Terms" in the following expression:
//
// (CrossoverTranslation + scrollingProperties.Translation.Y)/CrossoverTranslation
//
// Since scrollingProperties.Translation.Y is negative. This creates a normalized value that goes from
// 0 to 1 between no scrolling and the CrossoverTranslation.
//
// (maxClamp - minClamp)
//
// This calculates the difference between the two clamps. This will be scaled by the normalized value
// above.
//
// minClamp
//
// We add the minClamp back to the whole equation in order to create an equation that runs from minClamp
// to maxClamp.
//
_frontPropertiesScalarScaleAnimation = _compositor.CreateExpressionAnimation(
"Clamp(" +
"(CrossoverTranslation + scrollingProperties.Translation.Y)/CrossoverTranslation * (maxClamp-minClamp) + minclamp," +
"minClamp," +
"maxClamp" +
")");
"Lerp(minClamp, maxClamp, Clamp((CrossoverTranslation + scrollingProperties.Translation.Y)/CrossoverTranslation,0,1))"
);
_frontPropertiesScalarScaleAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
_frontPropertiesScalarScaleAnimation.SetScalarParameter("minClamp", _finalScaleAmount);
_frontPropertiesScalarScaleAnimation.SetScalarParameter("maxClamp", _initialScaleAmount);
@ -202,6 +159,11 @@ namespace Z_ORderScrolling
_frontVisibilityAnimation =
_compositor.CreateExpressionAnimation("-scrollingProperties.Translation.Y <= CrossoverTranslation ? 1 : 0");
_frontVisibilityAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
_frontTranslationAnimation =
_compositor.CreateExpressionAnimation("scrollingProperties.Translation.Y > 0 ? BaseOffset : BaseOffset-scrollingProperties.Translation.Y");
_frontTranslationAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
}
/// <summary>
@ -244,7 +206,7 @@ namespace Z_ORderScrolling
// the visibility swaps between frontVisual and backVisual, they are perfectly aligned.
//
_behindTranslateAnimation = _compositor.CreateExpressionAnimation(
"initialOffset + 1 * (CrossoverTranslation + scrollingProperties.Translation.Y)");
"(BaseOffset - scrollingProperties.Translation.Y) + 2 * (CrossoverTranslation + scrollingProperties.Translation.Y)");
_behindTranslateAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
}
@ -254,11 +216,11 @@ namespace Z_ORderScrolling
//
// First, calculate all of the new sizes and distances we will need.
//
var backgroundImageSize = new Vector2((float)ParallaxingImage.ActualHeight - (float)_scrollBar.ActualWidth, (float)ParallaxingImage.ActualHeight);
var backgroundImageSize = new Vector2((float)ParallaxingImage.ActualHeight, (float)ParallaxingImage.ActualHeight);
var profileImageSize = new Vector2((float)ParallaxingImage.ActualHeight, (float)ParallaxingImage.ActualHeight) * _initialScaleAmount;
var crossOverPoint = profileImageSize.Y * _finalScaleAmount / 2 + _followMargin;
var crossoverTranslation = (profileImageSize.Y * _finalScaleAmount / 2 + _followMargin) / (1 - _parallaxRatio);
var offset = new Vector3((float)ParallaxingImage.ActualWidth / 2, (float)ParallaxingImage.ActualHeight, 0);
var parallaxPoint = backgroundImageSize.Y * _backgroundShowRatio;
var backgroundPeekSize = backgroundImageSize.Y * _backgroundShowRatio;
// Push the text content down to make room for the image overhanging.
//
@ -270,10 +232,12 @@ namespace Z_ORderScrolling
_frontVisual.AnchorPoint = new Vector2(.5f, .5f);
_frontVisual.Offset = offset;
_frontVisual.Size = profileImageSize;
_frontPropertiesScalarScaleAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
_frontVisibilityAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
_frontTranslationAnimation.SetScalarParameter("BaseOffset", offset.Y);
_frontPropertiesScalarScaleAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
_frontVisibilityAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
_frontVisual.Properties.StartAnimation("ScalarScale", _frontPropertiesScalarScaleAnimation);
_frontVisual.StartAnimation("Opacity", _frontVisibilityAnimation);
_frontVisual.StartAnimation("Offset.Y", _frontTranslationAnimation);
//
@ -282,9 +246,9 @@ namespace Z_ORderScrolling
_backVisual.AnchorPoint = new Vector2(.5f, .5f);
_backVisual.Offset = offset;
_backVisual.Size = profileImageSize;
_behindTranslateAnimation.SetScalarParameter("initialOffset", offset.Y);
_behindTranslateAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
_behindOpacityAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
_behindTranslateAnimation.SetScalarParameter("BaseOffset", offset.Y);
_behindTranslateAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
_behindOpacityAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
_backVisual.StartAnimation("Opacity", _behindOpacityAnimation);
_backVisual.StartAnimation("Offset.Y", _behindTranslateAnimation);
@ -292,12 +256,13 @@ namespace Z_ORderScrolling
//
// Resolve all property parameters and references on _backgroundVisual
//
_backgroundTranslationAnimation.SetScalarParameter("ParallaxPoint", parallaxPoint);
_backgroundVisual.AnchorPoint = new Vector2(.5f, .5f);
_backgroundTranslationAnimation.SetScalarParameter("BackgroundPeekSize", backgroundPeekSize);
_backgroundVisual.Size = backgroundImageSize;
_backgroundVisual.AnchorPoint = new Vector2(.5f, .5f);
_backgroundVisual.CenterPoint = new Vector3(backgroundImageSize / 2, 1);
_backgroundTranslationAnimation.SetVector3Parameter("BaseOffset", new Vector3(backgroundImageSize / 2, 0) - new Vector3((float)_scrollBar.ActualWidth,0,0));
_backgroundVisual.StartAnimation("Offset", _backgroundTranslationAnimation);
_backgroundTranslationAnimation.SetScalarParameter("BaseOffset", backgroundImageSize.Y / 2);
_backgroundVisual.Offset = new Vector3(backgroundImageSize / 2, 0);
_backgroundVisual.StartAnimation("Offset.Y", _backgroundTranslationAnimation);
_backgroundVisual.StartAnimation("Scale.X", _backgroundScaleAnimation);
_backgroundVisual.StartAnimation("Scale.Y", _backgroundScaleAnimation);
@ -306,9 +271,12 @@ namespace Z_ORderScrolling
//
_profileContentVisual.Size = new Vector2((float)ProfileContent.ActualWidth, (float)ProfileContent.ActualHeight);
_profileContentVisual.AnchorPoint = new Vector2(0.5f, 0.5f);
_profileContentTranslationAnimation.SetScalarParameter("ParallaxPoint", parallaxPoint);
_profileContentTranslationAnimation.SetVector3Parameter("BaseOffset", new Vector3(backgroundImageSize / 2, 0));
_profileContentVisual.StartAnimation("Offset", _profileContentTranslationAnimation);
_profileContentVisual.Offset = new Vector3(0);
_profileContentVisual.Offset = new Vector3(_profileContentVisual.Size / 2, 0);
_profileContentScaleAnimation.SetScalarParameter("BackgroundPeekSize", backgroundPeekSize);
_profileContentVisual.StartAnimation("Offset.Y", _profileContentTranslationAnimation);
_profileContentVisual.StartAnimation("Scale.X", _profileContentScaleAnimation);
_profileContentVisual.StartAnimation("Scale.Y", _profileContentScaleAnimation);
}
/// <summary>
@ -362,6 +330,7 @@ namespace Z_ORderScrolling
private ExpressionAnimation _behindTranslateAnimation;
private SpriteVisual _frontVisual;
private ExpressionAnimation _frontTranslationAnimation;
private ExpressionAnimation _frontPropertiesScalarScaleAnimation;
private ExpressionAnimation _frontVisibilityAnimation;
@ -371,14 +340,14 @@ namespace Z_ORderScrolling
private Visual _profileContentVisual;
private ExpressionAnimation _profileContentTranslationAnimation;
private ScrollBar _scrollBar;
private ExpressionAnimation _profileContentScaleAnimation;
private float _initialScaleAmount = .8f;
private float _finalScaleAmount = .4f;
private float _followMargin = 50f;
private float _backgroundShowRatio = .6f;
private float _followMargin = 20f;
private float _backgroundShowRatio = .8f;
private float _backgroundScaleAmount = .25f;
private float _parallaxRatio = .6f;
private float _parallaxRatio = .2f;
private float _contentShrinkRatio = .7f;
}
}

Двоичный файл не отображается.