文档管理中心
我的

摇一摇

动效概述

摇一摇触发手机动效,同时通过#shake变量控制动画的可见性。

可在主题App中搜索《橙意漫屏》进行体验和参考。

素材准备

效果和脚本展示

<?xml version="1.0" encoding="utf-8"?>
<Lockscreen version="1" frameRate="30"  displayDesktop="true" screenWidth="1080" vibrate="true">
	<Var name="w" expression="#screen_width" persist="true" const="true" />
	<Var name="h" expression="#screen_height" persist="true" const="true" />
	<Var name="qh" expression="(#screen_height-2400)/2" persist="true" const="true" />
	<Var name="shake_rec" expression="ifelse(ge(#shake,1),1,0)"/>

	<ExternalCommands>
        <!--灭屏-->
		<Trigger action="resume">
			<VariableCommand name="cheng" expression="ifelse(ge(#cheng,2),0,#cheng+1)" condition="eq(#random_wallpaper,1)*eq(#chengyi2,1)" />
			<VariableCommand name="cheng" expression="2" condition="eq(#chengyi2,0)" />
			<VariableCommand name="shake_rec" expression="0"/>
			<Command target="anim_3.animation" value="stop" condition="eq(#cheng,2)*eq(#auto_play,0)"/>
		</Trigger>
        <!--亮屏-->
		<Trigger action="pause">
			<VariableCommand name="shake_rec" expression="0"/>
			<VariableCommand name="flag"      expression="0"/>
		</Trigger>
	</ExternalCommands>

	<Var name="vibrate" expression="0"/>
	<VariableBinders>
		<!--摇一摇触发-->
		<SensorBinder type="accelerometer" vibrate="#vibrate" shakeTime="1000" delay="640">
			<Variable name="x_acc" index="0"/>
		</SensorBinder>
	</VariableBinders>

	<Var name="shake_record" expression="#shake" threshold="1">
		<Trigger>
		        <!-- #shake_rec≥1且#auto_play≥0时,则执行变量赋值命令 --> 
			<VariableCommand name="flag" expression="#flag+1" condition="eq(#shake_rec,1)*eq(#auto_play,0)"/>
			<Command target="anim_3.animation"  value="play"  condition="eq(#shake_rec,1)*eq(#cheng,2)*eq(#flag,1)*eq(#auto_play,0)" />
			<!-- #shake_rec≥1且#auto_play≥0时,则延时3210ms后执行变量赋值命令--> 
			<VariableCommand name="shake_rec" expression="0"   delay="3210" condition="eq(#shake_rec,1)*eq(#flag,1)" />
			<!-- #shake_rec≥1且#flag≥1时,则延时3500ms后执行变量赋值命令--> 
			<VariableCommand name="flag" expression="0"   condition="eq(#shake_rec,1)*eq(#flag,1)" delay="3500"/>
		</Trigger>
	</Var>

	<Image name="anim_3" x="#w/2" y="#h/2" align="center" alignV="center"  src="1_0.jpg"  visibility="eq(#cheng,2)">
		<SourcesAnimation repeat="1">
			<Source src="1_0.jpg" time="0"/>
			<Source src="1_1.jpg" time="50"/>
			<Source src="1_2.jpg" time="100"/>
			<Source src="1_3.jpg" time="150"/>
			<Source src="1_4.jpg" time="200"/>
			<Source src="1_5.jpg" time="250"/>
			<Source src="1_6.jpg" time="300"/>
			<Source src="1_7.jpg" time="350"/>
			<Source src="1_8.jpg" time="400"/>
			<Source src="1_9.jpg" time="450"/>
			<Source src="1_10.jpg" time="500"/>
			<Source src="1_11.jpg" time="550"/>
			<Source src="1_12.jpg" time="600"/>
			<Source src="1_13.jpg" time="650"/>
			<Source src="1_14.jpg" time="700"/>
			<Source src="1_15.jpg" time="750"/>
			<Source src="1_16.jpg" time="800"/>
			<Source src="1_17.jpg" time="850"/>
			<Source src="1_18.jpg" time="900"/>
			<Source src="1_19.jpg" time="950"/>
			<Source src="1_20.jpg" time="1000"/>
		</SourcesAnimation>
	</Image>
	<!--上滑解锁-->
	<Button x="0" y="0" w="1080"  h="#h-400">
		<Triggers>

			<Trigger action="up">
				<ExternCommand condition="gt((#touch_begin_y-#touch_y),150)" command="unlock"/>
				<VariableCommand name="chengyi2" expression="1" />
			</Trigger>
		</Triggers>
	</Button>
</Lockscreen>