前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >flash 显示 qq客服状态

flash 显示 qq客服状态

作者头像
菩提树下的杨过
发布于 2018-01-22 07:39:38
发布于 2018-01-22 07:39:38
94100
代码可运行
举报
运行总次数:0
代码可运行

前几天看到有园友写了一篇“ flash查看对方qq是否在线 ”,正好今天有一个朋友搞flash全站,想使用这个功能,但是有些小要求,点击图标后,要求弹出QQ对话框,于是改进了一下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.globalization.StringTools;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	import flash.display.Bitmap;
	import flash.display.Loader;
	import flash.ui.Mouse;
	import flash.ui.MouseCursor;


	public class Main extends Sprite 
	{		      
		private var qq:String = "278919507";
        private var loader:Loader = new Loader(); 
        private var bit:Bitmap ;
		private var box:Sprite;
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}

		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);		
			box = new Sprite();
			upData();
		}
		
		public function upData():void
        {      
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCom);  
			var sUrl:String = "http://wpa.qq.com/pa?p=2:" + qq + ":41?" + Math.random();
			trace(sUrl);			
            loader.load(new URLRequest(sUrl)); 
		}           

        private function onCom(e:Event) :void 
        {            
			bit = Bitmap(loader.content);	
         	bit.height = 22;
			bit.width = 74;		
			box.addChild(bit);			
			addChild(box);			
			box.x = box.y = 10;
			
			//点击图标,以及切换鼠标
			box.addEventListener(MouseEvent.CLICK, onClick);
			box.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
			box.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
			
		}     
		
		private function onClick(e:MouseEvent):void
		{
			var sUrl:String = "http://wpa.qq.com/msgrd?v=3&uin=" + qq + "&site=qq&menu=yes";
			navigateToURL(new URLRequest(sUrl),"_blank"); 
			trace("test");
		}
		
		private function onMouseOver(e:MouseEvent):void
		{
			Mouse.cursor=MouseCursor.BUTTON; 
		}
		
		private function onMouseOut(e:MouseEvent):void
		{
			Mouse.cursor=MouseCursor.ARROW; 
		}

        
	}

}

在flash cs5环境下一切正常,但是单独运行swf时会失败:并不能加载图片。原因是wpa.qq.com下没有策略文件,默认的安全沙箱保护机制并不允许跨域加载图片。

于是用aspx做了个中转,在自已的服务器上先把qq的图标下载到服务器,然后as3再去请求自己的服务器上的图片,因为自己的服务器能完全控制(包括放置策略文件),所以能解决安全沙箱的问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-03-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Flash/Flex学习笔记(52):使用TweenLite
TweenLite是第三方出品的专用于各种缓动动画的类库,其性能据说已经超过了Adobe官方的Tween. 从网上找到了一篇中文的说明文档:http://files.cnblogs.com/yjmyzz/tweenLite%e4%b8%ad%e6%96%87%e6%89%8b%e5%86%8c%e4%b8%8e%e5%8f%82%e6%95%b0%e8%af%b4%e6%98%8e.pdf 这是官方的测试示例: AS3类库下载: http://files.cnblogs.com/yjmyzz/greenso
菩提树下的杨过
2018/01/22
7450
Flash/Flex学习笔记(39):弹性运动
动画中的弹性运动 从视觉效果上接近 物理经典力学中的单摆运动或弹簧(胡克定律F=Kx)振动 先看下面的模拟演示: 规律: 小球先从出发点(初始为最左侧)向目标点(中心点)加速狂奔,奔的过程中速度越来越大,但加速度越来越小,等经过目标点时,发现速度太大刹不住车(此时速度达到最大值,但加速度减为0),奔过头了!于是加速度发生逆转,从0开始变为负值,从而导致速度越来越小,等速度减到0时,也奔到了最右侧(此时负加速度也达到最大值),然后在负加速度的影响下,开始掉头又狂奔....这样不断下去,直接摩擦力让它筋疲力尽,
菩提树下的杨过
2018/01/19
6680
Flash/Flex学习笔记(31):对象拖拽与投掷
对象拖拽: 这其实就是以前所学知识:Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag) + Flash/Flex学习笔记(23):运动学原理 的综合运用,要提一下的是下面代码中对于EnterFrame的添加与移除操作 package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.eve
菩提树下的杨过
2018/01/23
6820
Flash/Flex学习笔记(36):自己动手实现一个滑块控件(JimmySilder)
先看最终的演示: 滑块条的应用实在太广泛了:mp3播放器中声量的大小控制,视频播放时的画面亮度调节,阅读新闻时字体大小的实时调整,对象的大小互动控制... 分析: 1.任何一个滑块条控件的UI部分,基本上可以分为:背景滑块条 + 滑块按钮 二个部分 所以我分成了三部分: JimmySilderBar(背景条),JimmySilderButton(拖动钮),JimmySilder(真正的滑动控件,将前二个组合在一起),为了重用,这三个部分都做成MovieClip元件放在库里,这样以后要换风格或颜色时,只要在库
菩提树下的杨过
2018/01/23
1.2K0
Flash/Flex学习笔记(36):自己动手实现一个滑块控件(JimmySilder)
Flash/Flex学习笔记(30):不用startDrag和stopDrag的对象拖动
对于从Sprite类继承来的对象,要实现拖放当然是Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag) 里讲的方法最方便,但是对于不是从Sprite类继承得来的对象,这startDrag/stopDrag是不能用的,这时候只能采用最通常用做法:利用Mouse_Down,Mouse_UP,Mouse_Move事件来处理 注意:对象的Mouse_Move事件,只有当鼠标在对象上时才能被监听,如果用户鼠标移动过快,超出了对象的范围,该事件就不起作用了,所以监听Mouse_Move
菩提树下的杨过
2018/01/23
1K0
Flash/Flex学习笔记(38):缓动动画
缓动 与 匀变速 看上去很类似,但其实有区别: 匀变速的公式为 V = V0 + at --速度v与时间t是线性(正比)关系,而且这种运动不需要确定目标点,速度可以按照这种规律一直变下去 而缓动指的是物体越接近目标时速度越慢,速度跟距离成反比关系,用公式描述为 V = k S  (0<k<1),这种运动需要先确定一个目标点,比如车辆定点停车:先指定一个位置,然后汽车从远处开过来,快到停车点时,逐渐慢下来,直到准确停在指定位置。 先看个演示: 代码: package { import flash.displ
菩提树下的杨过
2018/01/23
6060
as3+php上传图片的三种方式
1)设置FlashDevelop使用flash player10(debug版本,因为有一个demo使用了本地预览)
meteoric
2018/11/15
1.5K0
Flash/Flex学习笔记(42):坐标旋转
坐标旋转是个啥概念呢? 如上图,(蓝色)小球 绕某一中心点旋转a角度后,到达(红色)小球的位置,则红色小球相对中心点的坐标为: x1 = dx * cos(a) - dy * sin(a) y1 = 
菩提树下的杨过
2018/01/23
7090
Flash/Flex学习笔记(42):坐标旋转
Flash/Flex学习笔记(25):摩擦力与屏幕环绕
摩擦力: 假如一个物体在某个方向上沿直线运行,摩擦力会使该方向上的速度越来越小,直到停止。 上图示意了该过程,物体以moveAngle角度正向运动,最终的速度speed矢量为vx矢量与vy矢量的矢量
菩提树下的杨过
2018/01/19
5470
Flash/Flex学习笔记(25):摩擦力与屏幕环绕
Flash/Flex学习笔记(43):动量守恒与能量守恒
动能公式: 动量公式: 动量守恒: 能量守恒: 根据这些规律可以得到下列方程组: 解该方程组,得到下面的公式: 把这二个公式相减,可以得到: 即: 我们也经常利用这个公式简化运算 基本的动量守恒演示
菩提树下的杨过
2018/01/22
5100
Flash/Flex学习笔记(43):动量守恒与能量守恒
Flash/Flex学习笔记(40):弹性运动续--弹簧
上一篇里演示的弹性运动加上摩擦力因素后,物体最终基本上都会比较准确的停在目标位置。但是我们回想一下现实世界中的弹簧,如果把弹簧的一头固定起来(即相当于目标点),而另一端栓一个球,把球拉开或压缩一定距离然后松手,事实上小球永远也不可能到达弹簧固定的那一端(因为弹簧即使压缩到最紧,也总有一定的长度) 所以如果要在Flash里模拟现实中的弹簧,真正的目标点绝不是弹簧的端点,而是目标点再偏移一段距离(即弹簧自然伸展时的长度) var ball:Ball = new Ball(6); addChild(ball);
菩提树下的杨过
2018/01/23
9450
Flash/Flex学习笔记(40):弹性运动续--弹簧
Flash/Flex学习笔记(24):粒子效果
粒子爆炸: 仍然要用到以前的小球类,不过稍加改造 package { import flash.display.Sprite; //小球 类 public class Ball extends Sprite { public var radius:uint;//半径 public var color:uint;//颜色 public var vx:Number=0;//x轴速度 public var vy:Number=0;//y轴速度 public function Bal
菩提树下的杨过
2018/01/23
6880
Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag)
Flash中只有影片MovieClip(准确的讲是Sprite)可以调用startDrag,endDrag,创建对象拖动最简单的办法只要调用这二个方法即可 myobj.addEventListener(MouseEvent.MOUSE_DOWN,pickup); myobj.addEventListener(MouseEvent.MOUSE_UP,place); function pickup(e:MouseEvent ):void { //trace("鼠标按下"); e.target.star
菩提树下的杨过
2018/01/23
8390
浏览器窗口尺寸改变时的图片自动重新定位
俗话说:拳不离手,曲不离口。学过的技能不用,放长了就生疏了,今天以前的同事问我:用户改变浏览器窗口尺寸时,flash中的图片如何重新定位于4个角上。花了近一刻钟才回忆想来:stage有Resize事件,呵呵 代码如下: 1.先把加载图片的逻辑封装一下 package { import flash.display.Sprite; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLReq
菩提树下的杨过
2018/01/22
9710
浏览器窗口尺寸改变时的图片自动重新定位
【汇总】flash单个文件上传
之前有朋友给我发送email,询问我是否有单个文件上传的源代码,因为当时写这个好像是在09年,所以放哪了一时也没找着。后来整理硬盘的时候,找到了源码,所以决定来个汇总(之前写过的关于flash+js上传文件的例子):
meteoric
2018/11/16
1.2K0
ActionsScript 3.0简易涂鸦板
需要注意的是,该例子使用到了Button (属于flash cs3/cs4 中fl组件,位于fl.controls包下,而此编辑器默认不包含fl包)
meteoric
2018/11/14
6890
flex+php截图Demo
一、直接将byteArray转为bitmap通过loader(flash.display.Loader)显示在舞台上;
meteoric
2018/11/15
8320
Flash/Flex学习笔记(35):如何正确监听Stage对象的事件
如果想在一个自定义类中注册对stage对象的监听事件,然后在另一个文档类中使用该类的实例(或在fla的时间轴上使用该类的实例),你会很郁闷的发现:在构造函数中始终无法引用到this.stage(用trace(this.stge)会一直返回null),既然引用都得不到,当然也就无法注册事件了,正确的做法如下: package{ import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent;
菩提树下的杨过
2018/01/23
1.1K0
Flash/Flex学习笔记(37):不用系统组件(纯AS3)的视频播放器--只有8.82K
以前为了赶项目,利用系统组件制作过一款视频播放器(见Flash/Flex学习笔记(6):制作基于xml数据源的flv视频播放器),但是系统组件实在是太大了,最终生成的swf居然有103K,随着AS3的深入学习,昨天又弄了一个只用AS3的播放器,最终只有8.82K,呵呵,这肥减得那是相当厉害。 用到了上一篇(Flash/Flex学习笔记(35):自己动手实现一个滑块控件(JimmySilder))里自己写的的滑块控件,主要代码如下(关键是NetConnection与NetStream对象的使用): impor
菩提树下的杨过
2018/01/23
8560
Flash/Flex学习笔记(32):播放音乐并同步显示lyc歌词(适用于Silverlight)
题外话:个别朋友总是问我同样的问题,做为一名c#/silverlight程序员为啥还要学flash ? 回 答:看日本片时,就不能对照看欧美的么? 不体会日本的细腻,又怎能感觉到欧美的粗放;同样都是w
菩提树下的杨过
2018/01/23
8160
推荐阅读
相关推荐
Flash/Flex学习笔记(52):使用TweenLite
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验