Director中调用AS3.0对象-getVariable 附源码 - 20151228update
2012-03-01 11:16
323 查看
把文件想象成一个推车,一个swf文件就是一个挂着“swf”牌子的推车。
在AS2的年代,推车上可能会有些散落的数据,它不属于任何任何小盒子(按钮,movieclip之类);
AS3的完全面向对象,也就是不允许这种散落的没有被装进盒子的零碎出现。
因此最简单的方法就是在这个推车上首先放一个最外层的盒子,对AS3而言就是最外层的那个movieclip。
于是,在AS3年代要从swf推车上拿数据,首先得打开最外层的movieclip盒子,然后才能拿散落在盒子里的数据。
至于这些数据为什么一定要是static。。。没有特别好的想法,先记住就是了。
--inserted 20120409--
估摸。。static是为了解决最终2进制程序的地址重定位问题。
-----------------------
步骤:
1.获取flash sprite
2.将flash sprite 的 propDirectAccess设为true
3.spriteRef.getVariable()获得flash的顶级movieclip的Ref
4.movieRef.getVariable()获取member,该member须是public static
源码在此下载:usingas3_getvariable(趣盘真恶心,万能的笔者自己都下载不下来了。 2013/9/17)
2015/12/28 update
AS3.0 源码
Lingo源码(swf放在了sprite 1)(用dr12并没有设置propDirectAccess为true,也能访问到。)
相关日志:
Lingo和Flash交互
在AS2的年代,推车上可能会有些散落的数据,它不属于任何任何小盒子(按钮,movieclip之类);
AS3的完全面向对象,也就是不允许这种散落的没有被装进盒子的零碎出现。
因此最简单的方法就是在这个推车上首先放一个最外层的盒子,对AS3而言就是最外层的那个movieclip。
于是,在AS3年代要从swf推车上拿数据,首先得打开最外层的movieclip盒子,然后才能拿散落在盒子里的数据。
至于这些数据为什么一定要是static。。。没有特别好的想法,先记住就是了。
--inserted 20120409--
估摸。。static是为了解决最终2进制程序的地址重定位问题。
-----------------------
步骤:
1.获取flash sprite
2.将flash sprite 的 propDirectAccess设为true
3.spriteRef.getVariable()获得flash的顶级movieclip的Ref
4.movieRef.getVariable()获取member,该member须是public static
源码在此下载:usingas3_getvariable(趣盘真恶心,万能的笔者自己都下载不下来了。 2013/9/17)
2015/12/28 update
AS3.0 源码
package { import flash.display.MovieClip; public class MainMovie extends MovieClip { public static var testString:String = "is it ok?"; public function MainMovie() { // constructor code } } }
Lingo源码(swf放在了sprite 1)(用dr12并没有设置propDirectAccess为true,也能访问到。)
on mouseUp me flaInstance = sprite(1).GetVariable("MainMovie",false) flaMember = flaInstance.getVariable("testString",false) alert flaMember end
相关日志:
Lingo和Flash交互
相关文章推荐
- [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作
- spring getBean源码调用大致流程
- PHP中 对象自动调用的方法:__set()、__get()、__tostring()
- 源码 GetServerVariable
- vs 调用com对象 Msxml2.XMLHTTP 获取网页源码
- JavaScript 调用sharepoint内置webservice(UpdateListItems和GetListItem())
- SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法
- Struts2中Action对象的set方法和get方法调用规则
- C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】
- SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法
- 使用java反射中的getMethod,invoke方法调用对象方法的实例
- 源码 GetServerVariable
- iframe子窗体和父窗体互相调用,通过document.getElementById("name_iframe").contentWindow获取iframe的window对象,支持多浏览器!
- HTML5通过调用canvas对象的getContext()方法来获取绘图环境
- Hibernate中的对象状态,及自动更新原因,Hibernate set对象后不调用update却自动更新
- C#源码刷新网页 最小化托盘http get和post请求配置保存版权时间限制定时调用 单实例运行,如果已经运行则激活窗口到最前显示
- MFC中去掉untitledvoid CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle) { // TODO: 在此添加专用代码和/或调用基类 if (theApp.m_pDoc->GetTitle().GetLength() < 1) { CString szAppName; szAppName.Format(AFX_IDS_APP_T
- PHP面向对象学习源码备份(二)——调用父类构造函数
- C#代码调用js函数,js函数中的document.getElementById("对象ID")得null值解决办法
- java调用(axis2)WebService传递对象类型参数(源码)