今天公司要做个关于flash方面的东东,以前只知道flash,没接触过,看过美工做过flash,的确很漂亮,但都是静态的。但现在要做flash编程,开始是真的从心底叫苦,苦啊,没办法,苦要也做,那就做把,上网查了些资料,还参考了其他一些书籍,还是搞了点点名堂,哈哈。具体做法是:(我是基于Flash CS3来编程的,听说CS3和CS2有很大区别,不是很清楚)
1.step_1:在FlashCS3平台下新建一个Flash文件:
2:step_2:在当前时间轴上画布上画个正方形,画满。(可以省去)
3.step_3:在当前画布上画个10*10的蓝色的小正方体,选择-》Modify->convert to symbol (或者F8) 转为元件到如下图:
取个名把:Square(正方形),OK就可以了。
然后看到库面板,如看不到Window->Library(Ctrl+L)如图:
右键点击Square,选择Linkage,打开如下面板:
勾选Export for ActionScript,Import for runtime sharing,在Class处填写类名Square,Ok完毕
到时候就可以直接new Square();来创建元件了。这里先在舞台画布上点击元件,然后delete,删除掉。
4.step_4:在关键帧上按F9或者右键点击选择Actions打开编程窗口。
4.1在这里写如下代码:
var square:Square = new Square(); square.x=400; square.y=200; addChild(square);
按Ctrl+Enter运行就可以看到结果了,画布上把Square画出来了。我第一感到好神奇。
4.2现在做个从外部传参数的例子:
//从网页取得参数 var xpoint = loaderInfo.parameters["x"]; var ypoint = loaderInfo.parameters["y"]; var square:Square = new Square(); //int(param);将param转为整数 square.x=int(xpoint); square.y=int(ypoint); addChild(square);
然后写个html文件:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="366" height="400" id="map"> <param name="menu" value="FALSE" /> <param name="src" value="test.swf" /> <param name="allowFullScreen" value="always" /> <param name="flashvars" value="x=321&y=123" /> <embed src="test.swf" menu="false" allowFullScreen="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" width="366" height="400" name="map" bgcolor="#555555" flashvars="x=321&y=123"></embed> </object>
4.3再写个向服务器传参数的例子:
//从网页取得参数 var xpoint = loaderInfo.parameters["x"]; var ypoint = loaderInfo.parameters["y"]; var square:Square = new Square(); //int(param);将param转为整数 square.x=int(xpoint); square.y=int(ypoint); addChild(square); square.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(event:Event):void{ var _x:int = event.target.x; var _y:int = event.target.y; var url:String = "flash.do"; //创建请求对象 var request:URLRequest = new URLRequest(url); //包装参数 var variables:URLVariables = new URLVariables(); variables.xp = _x; variables.yp = _y; request.data = variables; request.method=URLRequestMethod.GET; navigateToURL(request, "_blank"); /** //去掉navigateToURL(request, "_blank"); //这种方式可以向服务器发送数据并能装载返回的数据 var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, connectHandler); loader.load(request); */ }
在服务器就可以request.getParameters("xp"); request.getParameters("yp");
呵呵,这里只做了个简单的测试,没有深入这些机制,以后再发。