一个简单的小地图,在做一些网站的时候,有时会用一张地图图片展示公司的位置,这次的项目就有。就做个示例玩玩
地图位置有误,效果演示。
增加一个简单的效果好像就不错了
滚动代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | mapWidth是你的map的宽度 containerWidth是可显示区域的大小 private function hoverScroll(e:Event):void { TweenLite.killTweensOf(map); var amountToXScroll:Number = (mapWidth / containerWidth) - 1; var mouseXpos:int = mouseX; var target:Number = (containerWidth / 2) - ((mouseXpos - (containerWidth / 2)) * amountToXScroll); var nuX:Number = target - (map.x + (mapWidth / 2)); map.x += Math.ceil(nuX / 10); //scroll on the y var amountToYScroll:Number = (mapHeight / containerHeight) - 1; var mouseYpos:int = mouseY; var targetY:Number = (containerHeight / 2) - ((mouseYpos - (containerHeight / 2)) * amountToYScroll); var nuY:Number = targetY - (map.y + (mapHeight / 2)); map.y += Math.ceil(nuY / 10); } |
鼠标离开的时候缓动到中心点就可以了
sfxr-一个很不错的游戏音效生成器,游戏中常用的音效都有,可以根据你自己的需要进行相应的设置在导出即可,简单方便。
国内类似的活动确实比较少,是个机会,准备尝试下。
主办单位:奥多比系统软件(北京)有限公司
协办单位:www.csdn.net网站
赛程安排:2010年6月1日-2010年10月31日
* 第一阶段(2010年06月01日~2010年07月31日):大赛启动,报名、作品上传。
* 第二阶段(2010年08月1日~2010年08月31日):网友投票、评论,进行案例分析。
* 第三阶段(2010年09月01日~2010年09月30日):停止报名及作品上传,专家评审,计总分。
* 第四阶段(2010年10月01日~2010年10月31日):大赛结果公布;获奖作品宣传展示
参赛类别:本次大赛按5个类别分开征集作品和评奖。
参赛流程:
作品要求:
* 1 参赛作品必须使用Adobe Flash平台技术开发;
* 2 参赛作品适用于PC、平板电脑或者各类移动终端设备等;
奖项设置:
* 每个参赛类别设三个奖项
o 一等奖:1名;奖金4000元
o 二等奖:1名;奖金2000元
o 三等奖:1名;奖金1000元
* 作品特别奖项
o “最佳创意奖”:1名,奖金2000元(从所有参赛作品评选出)
o “最佳人气奖”:1名,奖金1000元
* CSDN特别奖项
o “热心投票奖”:3名/周,奖品最新期《程序员》杂志一本(大赛第二阶段)
* 荣誉
o 1、此次大赛的颁奖将在2010年10月份举行。
o 2、此次大赛的获奖作品,将会被Adobe公司推荐给其合作伙伴,作为成功案例广为宣传和展示。
o 3、此次大赛的获奖作品,将会持续在Adobe公司以及CSDN的网站上进行展示,供网友下载。
o 4、此次大赛的获奖个人或团队,将有机会接受CSDN的专访,向整个行业分享各自的成功经验并提升在业界的知名度。
o 注:Adobe公司和CSDN网站有权自行决定以上奖品的价值,并有权根据实际需要更换相应价值的奖品。
评奖规则
* 1、评分标准:本次大赛采用百分制,按分为3个部分,其中专家评分占80%,网友投票占10%,作品下载排名占10%,按总分进行排名。
* 2、专家评分,对作品的创意性、实用性、复杂性、稳定性、兼容性等5方面综合评定,专家对该作品的评分,得分占80%。
* 3、依据网友对该作品的投票总数进行排名,评分的得分占总分的10%。
如果同一作品出现多个版本,那么将取多个版本得分的平均分参加排名。
* 4、依作品下载数排名。下载量得分占总分的10%。
如果同一作品出现多个版本,那么将取多个版本下载次数的总和参加排名。
参赛要求
* 1、参赛者必须为年满16周岁的中华人民共和国公民,地域、职业不限。
* 2、参赛者注册时须提供真实姓名,常用电子邮箱,联系电话等资料备案。
* 3、作品主题内容必须健康、合法,没有任何不良信息以及商业宣传行为。
* 4、作品必须保证原创性,不违反任何中华人民共和国的有关法律,不会侵犯任何第三方知识产权或者其他权利;一经发现或经权利人指出,主办方将取消其参赛资格。
* 5、比赛期间,参赛者不得将作品转让或出售给任何第三方,参赛者同意对任何违反上述规定所造成的纠纷负全部责任,并且保证主办方不受任何损失。
* 6、参赛者在比赛过程中提供的所有个人信息只用于主办方评选、颁奖,主办方将对其中所有涉及个人隐私的内容予以保密。同时参赛者必须保证提供的信息真实、可靠。
* 7、作品著作权归作者所有,所有参赛的作者无条件同意主办方有权享有对参赛作品的永久性免费使用权,参赛等于同意在Adobe网站和CSDN网站上发表并允许网友免费下载。
* 8、请认真阅读以上条款,提交作品即表示同意并遵守以上条款。
* 特别声明:本活动的最终解释权归Adobe公司和CSDN网站。本次活动因故无法进行时,Adobe公司和CSDN网站有权决定取消、终止、修改或暂停本次活动。
来源页面:http://adobec.csdn.net/page/html/dsdetail?menu=2


PhotoWall,本来想用PV3D来实现照片效果的,PV3D用的不好,所以还是选择了个简单的。
做这个主要是继续学习AMFPHP,这个程序可以通过AMFPHP将图片保存到服务器,用起来还是非常方便的。
PHP端代码:
file_put_contents保存图片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <!--p header("Content-Type:text/html;charset=utf-8"); define( "DATABASE_SERVER", "localhost"); define( "DATABASE_USERNAME", "root"); define( "DATABASE_PASSWORD", "123456"); define( "DATABASE_NAME", "amfphp"); class PictureWallServer { var $output_dir = "temp"; var $server_url = "http://127.0.0.1/amfphp/services/com/ZhangHaoyun/PictureWall/"; var $_db; public function __construct() { try { $thi-->_db = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD); mysql_query("set names UTF8"); mysql_select_db(DATABASE_NAME, $this->_db); } catch (Exception $exc) { return 'ERROR #1: Could not connect to the database'; } } /** * Save image from the given bytearray * and return the path of the saved image */ function save($ba, $title) { if(!file_exists($this->output_dir) || !is_writeable($this->output_dir)) trigger_error ("please create a 'temp' directory first with write access", E_USER_ERROR); $data = $ba->data; $title = "/".$title.".jpg"; file_put_contents($this->output_dir .$title, $data); $picurl = $this->server_url .$this->output_dir .$title; $ip=$_SERVER["REMOTE_ADDR"]; $sql="INSERT INTO picwall ( picurl,ip,time) VALUES ('$picurl', '$ip', now());"; $rs=mysql_query($sql, $this->_db); if($rs) { return "sucess\n".$picurl."\n".$ip; } else { return "failed"; } } /** *Load image url from MySql */ function load() { $sql = "SELECT * FROM picwall"; $rs = mysql_query($sql, $this->_db); return $rs; } } ?> |
Flash端给出获取摄像头图像并发送的代码,其余的自行下载查看,就不占用地方了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | package com.zhanghaoyun.picturewall.view { import com.adobe.images.JPGEncoder; import com.adobe.images.PNGEncoder; import com.zhanghaoyun.picturewall.events.PicWallEvent; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.media.Camera; import flash.media.Video; import flash.net.NetConnection; import flash.net.Responder; import flash.ui.Mouse; import flash.utils.ByteArray; import flash.events.EventDispatcher; /** * ... * @author ZhangHaoyun * @web http://www.zhanghaoyun.com */ public class GetImage extends MovieClip { private var video:Video; private var camera:Camera; private var w:int; private var h:int; private var bmpd:BitmapData; private var bmp:Bitmap; private var gateway:String = "http://127.0.0.1/amfphp/gateway.php"; private var connection:NetConnection = new NetConnection(); private var responderSet:Responder; private var _title:int; public function GetImage() { w = vs.width; h = vs.height; //tip.visible = false; video = new Video(w, h); camera = Camera.getCamera(); if (camera == null) { trace("找不到摄像头"); tip.visible = true; tip.text = "找不到摄像头"; } else { trace("找到摄像头:" + camera.name); camera.setMode(w ,h ,50 ,true); video.attachCamera(camera); vs.addChild(video); tip.text = "点击拍摄获取照片"; btn_pai.addEventListener(MouseEvent.CLICK, paishe); connection.connect(gateway); responderSet = new Responder(onResultSet, onFault); } btnReturn.addEventListener(MouseEvent.CLICK, returnMain); } private function returnMain(e:MouseEvent):void { var pe:PicWallEvent = new PicWallEvent(PicWallEvent.RETURN); dispatchEvent(pe); clear(); } private function onResultSet(result:Object):void { trace("sendOk"); var pe:PicWallEvent = new PicWallEvent(PicWallEvent.PIC_SEND_OK); dispatchEvent(pe); tip.text = ""; } private function onFault(fault:Object):void { trace("Fault"); for(var i in fault) { trace(i + "=>" + fault[i]); } tip.text = "send fail"; } private function paishe(e:MouseEvent):void { tip.text = "点击确定上传或者从拍"; getImage(); btn_pai.removeEventListener(MouseEvent.CLICK, paishe) btn_chongPai.addEventListener(MouseEvent.CLICK, chongPai); btn_upload.addEventListener(MouseEvent.CLICK, upload); } private function chongPai(e:MouseEvent):void { tip.text = "点击拍摄获取照片"; image.removeChildAt(0); btn_pai.addEventListener(MouseEvent.CLICK, paishe) btn_chongPai.removeEventListener(MouseEvent.CLICK, chongPai); } private function getImage():void { bmpd = new BitmapData(w, h, true, 0); bmpd.draw(video); bmp = new Bitmap(bmpd); image.addChild(bmp); } private function upload(e:MouseEvent):void { var jpgEncoder:JPGEncoder = new JPGEncoder(); var bytes:ByteArray = jpgEncoder.encode(bmpd); clear(); tip.text = "sending..." connection.call("com.ZhangHaoyun.PictureWall.PictureWallServer.save", responderSet, bytes, _title); } public function set title(value:int):void { _title = value; } private function clear():void { camera = Camera.getCamera(null); camera = null; video.attachCamera(null); } } } |
只是练习AMFPHP的通信,代码没有优化,想到什么就写的什么,也难免有BUG,请见谅。
点击下载该示例文件







