CR的代码文本

all for learning about the world
  订阅 订阅  :: 管理

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

 

相关日志:

Lingo和Flash交互