Director中调用AS3.0对象-getVariable 附源码 - 20151228update
Posted on 2012-03-01 11:16 mumuliang 阅读(824) 评论(4) 编辑 收藏 举报把文件想象成一个推车,一个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 源码
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
相关日志: