11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 2207|回复: 1
上一主题 下一主题

[高级教程] 【9RIA—沐枫】—【基础小知识】第25节(伪3D图片浏览效果)

[复制链接] TA的其它主题
发表于 2018-2-6 21:02:36 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
转载:9RIA游戏开发者社区(天地会)
作者:沐枫(原天地会大神)


【基础小知识】系列教程(总目录)——沐枫大神出品



直接看代码
[Actionscript3] 纯文本查看 复制代码
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;

import others.LoaderImg;

public class Wei3DTuPianLiuLan extends Sprite
{
private var yuanxinX:uint=230;
private var yuanxinY:uint=150;//图片运动的圆心
private var fX:uint=200;//在X轴上运动的范围
private var fY:uint=100;//在Y轴上运动的范围
private var angle:Number=0;//角度
private var arr:Array=[];

public function Wei3DTuPianLiuLan()
{
for(var i:uint=1;i<10;i++)
{
var img:LoaderImg=new LoaderImg("images/"+i.toString()+".jpg");//实例化LoaderImg类并传入链接,加载图片
angle+=360/9;
img.angle=angle;
var hudu:Number=angle*Math.PI/180;
img.x=yuanxinX+Math.cos(hudu)*fX;
img.y=yuanxinY+Math.sin(hudu)*fY;
img.scaleX=0.5*(1+Math.sin(hudu)*0.5);//根据弧度值缩放和改变位置
img.scaleY=0.5*(1+Math.sin(hudu)*0.5);
stage.addChild(img);
arr.push(img);
}
stage.addEventListener(Event.ENTER_FRAME,onZhuanHandler);
}
//———————————————可自行加交互事件————————————————— 
protected function onZhuanHandler(event:Event):void
{
// TODO Auto-generated method stub
for each(var img:LoaderImg in arr)
{
img.angle++;
var hudu:Number=img.angle*Math.PI/180;
img.x=yuanxinX+Math.cos(hudu)*fX;
img.y=yuanxinY+Math.sin(hudu)*fY;
img.scaleX=0.5*(1+Math.sin(hudu)*0.5);
img.scaleY=0.5*(1+Math.sin(hudu)*0.5);
}
}
}
}


下面是LoaderImg类
[Actionscript3] 纯文本查看 复制代码
package others//图片加载类
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;

public class LoaderImg extends Sprite
{
public var angle:Number;
private var loader:Loader;//远程加载对象

public function LoaderImg(img_url:String)
{
var url:URLRequest=new URLRequest(img_url);//请求对象
loader=new Loader();
loader.load(url);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaderCompleteHandler);
}

protected function onLoaderCompleteHandler(event:Event):void
{
// TODO Auto-generated method stub
var img:DisplayObject=loader.content;
img.width=100;
img.height=150;
this.addChild(img);
}
}
}


总体来说 ,应该不难理解,主要运用了sin  cos方法。

下面是源文件:

伪3D图片浏览.zip (1.95 MB, 下载次数: 132)
发表于 2019-5-20 11:18:05 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表