| 鉴's profile鉴赏空间PhotosBlogLists | Help |
|
February 11 如何在duplicateMovieClip中传递变量(转载) 在论坛上看到一个HTML里的FLASH图片切换效果,JS跟FLASH通信,本来觉得没啥特别的,不过仔细看了下发现里面有行代码比较“怪异”,在使用duplicateMovieClip复制MC时,它传递了三个参数:MC新名称、深度、Object类型的一个变量。顿时奇怪了,这个Object有什么作用了?查了下帮助手册,才发现,一直以来自己居然忽视了这么好一个东东,呵呵 太惭愧了下面就来说说这个object到底能干些啥了! 这是文档里对duplicateMovieClip方法的说明: public duplicateMovieClip (name:String, depth:Number, [initObject:Object]) : MovieClip 参数 name:String - 已重制的影片剪辑的唯一标识符。 depth:Number - 一个唯一整数,指定要放置新影片剪辑的深度。使用深度 -16384 可将新影片剪辑实例放置在创作环境中创建的所有内容之下。介于 -16383 和 -1(含)之间的值是保留供创作环境使用的,不应与此方法一起使用。其余的有效深度值介于 0 和 1048575(含)之间。 initObject:Object [可选] - (Flash Player 6 和更高版本支持。)包含用于填充复制影片剪辑的属性的对象。此参数使动态创建的影片剪辑能够接收剪辑参数。如果 initObject 不是对象,则忽略它。initObject 的所有属性都已复制到新实例中。使用 initObject 指定的属性对于构造函数是可用的。 正是因为intiObject参数可选,我才忽视了这个参数的作用,我想肯定也有朋友跟我一样,这也是我写这篇文章的目的,呵呵 给某些朋友也提个醒。 从参数说明中可以看出,我们使用initObject参数可以在MC复制时初始化MC的属性,这里的属性可以理解为两方面: 第一、它是MovieClip类的属性,例如,_x _y _alpha等等我们经常使用的属性 第二、不是MC固有的属性,而是一个自定义的变量,例如自定义一个link变量。 在没有使用initObject参数前,我完成MC复制以后还需要一个with来初始化MC的属性,例如: 程序代码
for( i=0;i<5;i++){ _mc.duplicateMovieClip("_mc"+i,i); var _mc = eval("_mc"+i); with (_mc){ _x=120*i; } } 程序代码
for (i=0; i<5; i++) { _mc.duplicateMovieClip("_mc"+i, i); var _mc = eval("_mc"+i); //_mc里设置一个_txt文本,用来记录i,假设link等于i _mc._txt.text = i; _mc._x = 120*i;//为每个MC赋予按钮事件,让它能够trace出指定的link _mc.onRelease = function() { trace(i); }; } 测试我们发现,复制出来的5个MC的文本显示的确实是0到4,不过当我们点击的时候我们会发现trace出来的都是5,奇怪了,为何我们看到的link是0到4,而我们trace出来的为何是5了?如果对程序内存分配稍微有些了解的话这个就很好理解了,在FLASH里,对于5个MC,我们trace的link变量是占用同一个内存地址。那么如何解决这个问题了?我之前的做法是在复制MC时就给MC一个变量,用来记录link。 程序代码
for (i=0; i<5; i++) { _mc.duplicateMovieClip("_mc"+i, i); var _mc = eval("_mc"+i); _mc._txt.text = i; _mc._x = 120*i; _mc.link=i; _mc.onRelease = function() { trace(this.link); }; } 现在如果使用initObject参数,那么上面的问题就可以很容易解决了,同时精简了代码量。 程序代码
for (i=0; i<5; i++) { var _obj={link:i,_x:120*i,num:i}; _mc.duplicateMovieClip(”_mc”+i, i,_obj); var _mc = eval(”_mc”+i); _mc._txt.text = _mc.num; _mc.onRelease = function() { trace(this.link); }; } 再查阅一下attachMovie方法,它也有一个initObject参数,方式使用和duplicateMovieClip的一样。因此在我们动态复制MC时,如果好好利用这个参数,那么是可以让我们的复制更简洁,更方便。 January 11 如何用flash调用windows user account想去实现用flash 调用windows user account,但是flash自己根本无法做到。 有人说用php 调用win32 api. 来实现。 但是用php实现window api真是件困难的事情。 因为要涉及在php中调用php_w32api.dll。php本身版本之间就用很多差异。像w32api_register_function这个function 在php4.23以后的版本就不能用了。完全被这个manual 误导了 http://au2.php.net/w32api
最后改用ASP 很快就实现了这个功能。
username=<% Dim objNet Dim username Set objNet=CreateObject("WScript.NetWork") response.write(objNet.UserName) Set objNet = Nothing %> 如何能完全卸载mysql有的时候想卸载 mysql但是不能成功。 用一下命令可以实现。
cmd
sc delete mysql Win32 Functions (转载)Alphabetical Listing of Win32 Functions
December 26 MFC中常用类, 宏, 函数介绍(转载)//-----------------------------------------
常用类
CRect:用来表示矩形的类,拥有四个成员变量:top left bottom right。分别表是左上角和右下角的坐标。可以通过以下的方法构造:
下面介绍几个成员函数:
此外矩形可以和点(CPoint)相加进行位移,和另一个矩形相加得到“并”操作后的矩形。
CPoint:用来表示一个点的坐标,有两个成员变量:x y。 可以和另一个点相加。 CString:用来表示可变长度的字符串。使用CString可不指明内存大小,CString会根据需要自行分配。下面介绍几个成员函数:
CStringArray:用来表示可变长度的字符串数组。数组中每一个元素为CString对象的实例。下面介绍几个成员函数:
常用宏 RGB TRACE ASSERT VERIFY 常用函数 CWindApp* AfxGetApp(); HINSTANCE AfxGetInstanceHandle( ); HINSTANCE AfxGetResourceHandle( ); int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );用于弹出一个消息框
|
||||||
|
|