在IIS7上部署FluorineFx找不到Fluorine.aspx问题的解决

在IIS7下部署FlourineFx在打开Console的时候会提示Fluorine.aspx找不到的404错误。我开始遇到的时候也很郁闷,还好有万能的Google告诉我有这篇帖子:http://forum.fluorinefx.com/viewtopic.php?f=17&t=151

相信很多使用Win7作为开发环境的同学都会遇到这样的问题,所以把在解决方法记在这里,免得大家走弯路。

  1. 打开IIS7 Manger
  2. 选择部署Fluorine网关的网站
  3. 功能视图->IIS->模块
  4. 添加托管模块:名称-FluorineGateway,类型-FluorineFx.FluorineGateway
  5. 重开Console,搞定!

11月28日 第6届 FLASH开发者交流会

活动在线报名地址:http://www.wedoswf.com/events/2

主讲者和专题介绍

  • 从娑婆物语谈 Isometric TileBased 游戏开发
    主讲人:蔡浩宇(网名:Hugh Tsai)
    蔡浩宇现就读于上海交通大学计算机系,独立游戏开发者,ACG狂热份子,笃信技术宅可以拯救世界,致力于萌化游戏及相关产品创作。
    蔡浩宇的博客:http://hughchy.wordpress.com
  • 松耦合代码之开发方法与工具演示
    主讲人:刘争辉(网名:eidiot)
    06年开始使用AS3,开发过Flash整站、社区、游戏等多种类型产品。爱好新技术,对 Robotlegs、AS3-signals 等前沿开源项目做出贡献,并翻译了 Robotlegs 最佳实践文档。目前就职于北京 MagnetJoy 公司从事 Social Game 开发。
    刘争辉的博客:http://eidiot.net/
  • AIR Android开发的一些心得
    主讲人:邱彦林(网名:walktree)
    多年来,一直从事和Flash技术平台相关的开发工作,曾出版第一本Flex中文教程《Flex第一步》。现就职于Sonic杭州分公司,专注于RIA企业应用的研发。
    邱彦林的博客:http://www.fluidea.cn/blog

    [更多精彩主题即将揭晓...]

议程安排

2010年11月28日 星期日

  • 12:30 ~ 13:00 参会人员签到,入场
  • 13:15 ~ 15:00 主题讨论
  • 15:00 ~ 15:15 茶歇和聊天
  • 15:15 ~ 17:30 主题讨论
  • 18:00 技术交流和讨论

会议地点

畅星大厦•上海
地址:上海浦东新区碧波路888号畅星大厦3楼会议厅
电话:021-38984558
网站:http://www.changxing.sh.cn
交通:地铁2号线张江站(步行5-10分钟即到)

>> 在 Google 地图上查看

Posted in RIA

Molehill 3d APIs – Show on MAX 2010 Develop

Molehill” is the code name for a new set of low-level, GPU-accelerated 3D APIs that will enable advanced 3D experiences across screens through the Adobe® Flash® Platform runtimes. These new low-level APIs will provide advanced 3D and 3D engine developers the flexibility to leverage GPU hardware acceleration for significant performance gains. Today, Adobe Flash Player 10.1, renders thousands of non z-buffered triangles at approximately 30 Hz. With the new 3D APIs, developers can expect hundreds of thousands of z-buffered triangles to be rendered at HD resolution in full screen at around 60 Hz. Using the new 3D APIs in Flash Player and AIR will make it possible to deliver sophisticated 3D experiences across almost every computer and device connected to the Internet.

The 3D capabilities enabled by the new APIs will also be available to the broader developer community through popular ActionScript® 3D frameworks, such as Alternativa3D, Away3d, Flare3D, Sophie3D or Yogurt3D.

PV3D初探 – 球形全景

昨晚开始研究PV3D,选了一个常用的的球形全景做测试,对Viewport, Camera的使用有了些了解。全景图片比较大,载入可能比较慢,请耐心等待。(全景图是网上找的,出处不详,如有版权问题请提醒我)

代码:

package
{
	import flash.events.Event;
	import org.papervision3d.cameras.CameraType;
	import org.papervision3d.materials.BitmapFileMaterial;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.view.BasicView;

	/**
	 * 全景测试
	 * @author Xuanfei Liu
	 */
	public class Panorama extends BasicView
	{
		private var sphere:Sphere;
		private var material:BitmapFileMaterial;

		public function Panorama()
		{
			super(600, 400, true, false, CameraType.FREE);
			camera.z = 0;
			camera.focus = 400;
			camera.zoom = 1;
			material = new BitmapFileMaterial("assets/sphere.jpg");
			material.opposite = true;//这行很关键,要把材质贴在球体内部
			material.smooth = true;
			sphere = new Sphere(material, 400, 40, 40);
			scene.addChild(sphere);
			startRendering();
		}

		override protected function onRenderTick(e:Event = null):void
		{
			camera.rotationY += (mouseX - stage.stageWidth/2) * 0.01;
            camera.rotationX += (200 * mouseY / stage.stageHeight - 100 - camera.rotationX) * 0.1;
			super.onRenderTick(e);
		}
	}
}

有时间我再试试Cube全景,有人能提供立方体全景图吗?

Flash RIA的可用性 —— 在Flash Camp 2010上的演讲

周六的Flash Camp 2010活动圆满结束,见到了赶来捧场的云开大哥和做了精彩演讲导致我肚子很饿的接口帝小S弟,很开心。唯一的遗憾是Adobe的平台技术总监Gray Zhu由于航班的原因没有到现场。

我在活动上的演讲题目是“Flash RIA的可用性”,这个话题很大,我这次主要是从Flash开发者的角度讲了一些可用性相关的点,希望由点及面引起开发者对可用性问题的思考,所以演讲的内容偏向常识方面,包括:

  • Flash的浏览器兼容性
  • Flash RIA 如何符合用户的网页浏览习惯
  • 如何利用全屏模式
  • 如何适应不同的屏幕分辨率
  • 如何创建全球化应用

Slideshare的转码有问题,建议把PPT下载下来看。

在这里查看演示,点右键有福利

2010年9月26日更新:
视频出来了…

2010年9月27日更新:
活动视频列表: http://v.ku6.com/playlist/index_3851258.html
活动回顾: http://www.wedoswf.com/posts/988

广告时间:FLASH CAMP 2010

第5届FLASH开发者交流会将于9月18日举行,这次的活动升级为 Flash Camp 2010

Adobe的平台技术总监Gary Zhu会介绍 Adobe 平台技术的发展和Flash移动应用软件的开发,还有诸多高手带来游戏开发和AIR应用的经验之谈。我有幸得到邀请分享Flash RIA可用性方面的一些体会。

活动在线报名地址:http://www.wedoswf.com/events/1

嗯,广告很短,总算完成作业了 :P

9.18,我们不见不散!

Posted in RIA

Flex简单画线组件

一眨眼一定到月底了,这个月的两篇作业还没做,为了证明我是个言而有信的人,临时抱佛脚补上两篇,晚点比没有强!

之前做项目的时候需要在UI上画一些虚线和直线,于是封装了这个Flex简单画线组件,实现在任意两点间画线,可以指定线型,颜色,粗细,虚线还可以指定线段长度和间隔。

具体实现不解释了,代码会说话。

package me.xuanfei.common.component
{
	import flash.display.CapsStyle;
	import flash.display.Shape;

	import mx.core.UIComponent;

	public class SimpleLine extends UIComponent
	{
		public static const SOLID:String = "solid";
		public static const DASH:String = "dash";

		private var _shape:Shape = new Shape();
		private var _type:String = SOLID;
		private var _x1:Number = 0;
		private var _y1:Number = 0;
		private var _x2:Number = 200;
		private var _y2:Number = 0;
		private var _thickness:Number = 0;
		private var _color:uint = 0x000000;

		private var _dashPattern:Array = [3, 2]

		public function SimpleLine()
		{
			super();
		}

		override protected function updateDisplayList(w:Number,h:Number):void{
			super.updateDisplayList(w,h);			

			_shape.graphics.lineStyle(thickness, color, 1, true, "normal", CapsStyle.NONE);
			_shape.graphics.moveTo(x1, y1);
			switch(type)
			{
				case SOLID:
					_shape.graphics.lineTo(x2, y2);
					break;
				case DASH:
					drawDash();
					break;
			}
			addChild(_shape);
		}  

		private function drawDash():void
		{
			var w:Number = x2 - x1;
			var h:Number = y2 - y1;
			var length:Number = Math.sqrt((w)*(w) + (h)*(h));

			var units:Number = length/(dashPattern[0]+dashPattern[1]);
			var dashSpaceRatio:Number = dashPattern[0]/(dashPattern[0]+dashPattern[1]);

			var dashW:Number = (w/units)*dashSpaceRatio;
			var spaceW:Number = (w/units)-dashW;
			var dashH:Number = (h/units)*dashSpaceRatio;
			var spaceH:Number = (h/units)-dashH;

			while (length > 0)
			{
				x1 += dashW;
				y1 += dashH;
				length -= dashPattern[0];
				if (length < 0)
				{
					x1 = x2;
					y1 = y2;
				}

				_shape.graphics.lineTo(x1, y1);
				x1 += spaceW;
				y1 += spaceH;
				_shape.graphics.moveTo(x1, y1);
				length -= dashPattern[1];
			}

			_shape.graphics.moveTo(x2, y2);
		}

		[Bindable]
		public function get type():String
		{
			return _type;
		}

		public function set type(value:String):void
		{
			_type = value;
		}

		[Bindable]
		public function get x1():Number
		{
			return _x1;
		}

		public function set x1(value:Number):void
		{
			_x1 = value;
		}

		[Bindable]
		public function get y1():Number
		{
			return _y1;
		}

		public function set y1(value:Number):void
		{
			_y1 = value;
		}

		[Bindable]
		public function get x2():Number
		{
			return _x2;
		}

		public function set x2(value:Number):void
		{
			_x2 = value;
		}

		[Bindable]
		public function get y2():Number
		{
			return _y2;
		}

		public function set y2(value:Number):void
		{
			_y2 = value;
		}

		[Bindable]
		public function get thickness():Number
		{
			return _thickness;
		}

		public function set thickness(value:Number):void
		{
			_thickness = value;
		}

		[Bindable]
		public function get color():uint
		{
			return _color;
		}

		public function set color(value:uint):void
		{
			_color = value;
		}		

		[Bindable]
		public function get dashPattern():Array
		{
			return _dashPattern;
		}

		public function set dashPattern(value:Array):void
		{
			_dashPattern = value;
		}
	}
}

在MXML中调用也很简单:

<comp:SimpleLine type=”dash” color=”#999999″ x2=”200″/>

这样就可以画一条200px宽的水平灰色虚线(comp是声明的Namespace)。

用swffit改变Flash控件的大小

swffit

为了适应不同的屏幕分辨率,我们通常把Flash控件的高度和宽度设置为100%,这样做的副作用就是如果Flash内容的大小超出屏幕的分辨率也不会出现滚动条。

swffit能解决上述问题,基于swfobject,swffit提供了相应的js和as的接口来实时的改变flash控件的大小。使用方法类似于swfaddress,页面中引用swffit.js,flash中可以按需引用as2或者as3版本的SWFFit.as,如果需要事件回调,还可以引入SWFFitEvent.as.

例子 | 下载

UIMovieClip动画在Flex中的位移问题

在界面效果复杂或者组件需要复杂的开场动画时,常常会在Flash中用时间轴或者Tween类制作动画,并发布为UIMovieClip组件,在Flex中引用。

由于Flex会自动计算UIMovieClip的大小,所以如果动画过程中Symbol有位移或者大小的变化,就会造成在Flex中显示的时候组件本身会发生连续位移。

第一反应是设置组件的explicitWidth和explicitHeight来固定大小,结果位移是没有了,但是动画过程中,原件会不断的缩放。

解决这个问题,我采用的方法是在Flash中加入一层透明的图形填充来标示实际的组件大小,这样Flex中组件的大小就固定了。

这个方法比较Dirty,如果你有更好的方法,欢迎留言!

Flash Debug Player引起Firefox 3.6.6崩溃的解决办法

最近把我的Firefox升级到最新的3.6.6以后,调试Flash的时候,只要有异常,弹出异常窗口以后,Firefox就不响应了,过一会会显示Flash插件崩溃的信息,只能通过任务管理器强行关闭Firefox。

反复多次之后,我求助了Google大神,原来这个问题还挺普遍的,具体可以看这里

按照帖子里说的,解决方案如下:

  1. Firefox地址栏输入about:config,打开高级设置,如果有警告直接忽略
  2. 在Filter里搜索dom.ipc.plugins
  3. 双击dom.ipc.plugins.enabled.npswf32.dll设为false
  4. 也可以把dom.ipc.plugins.timeoutSecs设为-1来禁用插件崩溃的timeout
  5. 重启Firefox,搞定!