源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Flex 放大镜效果实现代码

  • 时间:2020-04-19 08:19 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Flex 放大镜效果实现代码
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="utf-8"?> <mx:Application layout="vertical" verticalScrollPolicy="off" horizontalScrollPolicy="off" backgroundColor="#FFFFFF" backgroundGradientColors="#FFFFFF,#FFFFFF" applicationComplete="onApplicationComplete();" xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ [Embed(source="assets/magnify.pbj", mimeType="application/octet-stream")] private var shaderObj:Class; private var shader:Shader; private var shaderFilter:ShaderFilter; /** * Initialize the shader */ private function onApplicationComplete():void { // create the shader shader = new Shader( new shaderObj() ); shader.data.center.value = [image.width/2, image.height/2]; setShader(); // setup event listeners stage.addEventListener( Event.ENTER_FRAME, onEnterFrame, false, 0, true ); } /** * Each frame, only reapply the filter if necessary */ private function onEnterFrame( event:Event ):void { setShader(); } /** * Update all the shader's properties, create a new ShaderFilter, * and reapply it to the image */ private function setShader():void { var centerX:Number = image.mouseX; var centerY:Number = image.mouseY; if( centerX < 0 || centerY < 0 || centerX > image.width || centerY > image.height ) { var currentX:Number = shader.data.center.value[0]; var currentY:Number = shader.data.center.value[1] centerX = currentX + ((image.width / 2)-currentX) / 2; centerY = currentY + ((image.height / 2)-currentY) / 2; } shader.data.center.value = [centerX, centerY]; shader.data.innerRadius.value = [innerRadiusSlider.value]; shader.data.outerRadius.value = [outerRadiusSlider.value]; shader.data.magnification.value = [magnificationSlider.value]; shaderFilter = new ShaderFilter( shader ); image.filters = [shaderFilter]; } ]]> </mx:Script> <mx:Form> <mx:FormItem label="Inner Radius"> <mx:HSlider id="innerRadiusSlider" minimum="0" maximum="200" value="50" liveDragging="true" /> </mx:FormItem> <mx:FormItem label="Outer Radius"> <mx:HSlider id="outerRadiusSlider" minimum="0" maximum="200" value="100" liveDragging="true" /> </mx:FormItem> <mx:FormItem label="Magnification"> <mx:HSlider id="magnificationSlider" minimum="1" maximum="50" value="4" liveDragging="true" /> </mx:FormItem> </mx:Form> <mx:Image id="image" source="assets/YellowFlowers.jpg" /> </mx:Application>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部