打印

[AS3] 怎么控制另一个swf !~

我怎么用第1个swf.控制第2个swf的方法和实例;
从1加载2进来.怎么控制?
是不是我的写得很乱的问题?
怎么写才好? 非常谢谢!~


第1个swf.文挡类;
package{
import flash.display.MovieClip;
import flash.display.Sprite;
public class sample_1 extends Sprite{
  private var One : one;
  
  public function sample_1(){
   init();
   }
   private function init(){
    One = new one(mc_1);
   
    addChild(One);
   
    }
  }
}
/////////////////////////////////////
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.display.MovieClip;
public class one extends Sprite {
  private var mc:MovieClip;
  public function one(mc:MovieClip) {
   this.mc = mc;
mc.addEventListener(Event.ENTER_FRAME,onEnterFrame);
  }
  public function init():void {
   mc.x = 100;

  }
  private function onEnterFrame(evt:Event):void{
   //这里怎么用swf_2 的inti()的方法!想让two的mc.y = 100;
   //谁帮帮忙!~
   }
}
}
/////////////第2个swf的文挡类.
package{
import flash.display.MovieClip;
import flash.display.Sprite;
public class sample_2 extends Sprite{
  private var Two:two;
  
  public function sample_2(){
   init();
   }
   private function init(){
    Two = new two(mc_2);
   
    addChild(Two);
   
    }
  }
}
//////
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.display.MovieClip;
public class two extends Sprite {
  private var mc:MovieClip;
  public function two(mc:MovieClip) {
   this.mc = mc;
  }
  public function init():void {
   mc.y = 100;

  }
}
}

[ 本帖最后由 wuduowei 于 2008-6-27 14:00 编辑 ]
是很混乱,两个文档类什么关系啊?又不加载SWF,又不是复合.
www.inshow.com
从1加载2.呢?
复合的方法是怎么样的?
谁有个好例子可以给我看看吗?
我刚学习AS不久.谢谢
我怎么控制加载进来的实例?
我是一个个加载进来控制吗?
还是整体加载进来控制?

[ 本帖最后由 wuduowei 于 2008-6-27 14:07 编辑 ]
如果是加载,可以直接控制loader的坐标,也可利用loader的context属性,直接使用2中PUBLIC的方法
复合(组合)或者聚合JAVA中分的很细,大概讲下就是:
A类组合B类,在B类加个属性private var b:A;(也就是在B中new个A),聚合关系弱一点,是has a的关系,组合是contain a的关系
www.inshow.com

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
聚合和组合可能说反了,总之一个是拥有的关系,也就是拥有一个对象的声明,另一个是使用的关系,一个对象使用另一个对象。
www.inshow.com

TOP

非常谢谢你!
如果是加载,可以直接控制loader的坐标,也可利用loader的context属性,直接使用2中PUBLIC的方法
这个loader的context属性具体怎么用法? 可以给我简单写一下吗?我听得有点模糊.谢谢你!~

TOP

loader.context的就是你load的SWF的文档类,把它存到某个变量里用就可以。

。。你要new 一个loader对象,然后执行它的load方法把第2个SWF载入,否则两个SWF会一点关系都没有。

注意load进来的swf2,parent,root属性永远都是在SWF2内部的。如果你swf2想去调swf1的属性,那么你得把SWF1的引用给赋给SWF2的某个属性。

那个和context没什么关系
承接FLASH相关项目,具体至:www.yiyiflashstudio.com

TOP

大概是下面的意思,没按规矩写,整理下
private var ld:Loader=new Loader();
private var req:URLRequest=new URLRequest("swfUrl.swf");

构造(){
ld.contentLoaderInfo.addEventListener(Event.INIT, initLoad);
ld.load(req);
}

private function initLoad(e:Event):void{
       var obj:Object=ld.content;
       obj.方法();//这里就能直接使用被加载进来swf文档类的公共方法
}
www.inshow.com

TOP

谢谢~~~~!!~

TOP

引用:
原帖由 flashyiyi 于 2008-6-27 15:34 发表
loader.context的就是你load的SWF的文档类,把它存到某个变量里用就可以。

。。你要new 一个loader对象,然后执行它的load方法把第2个SWF载入,否则两个SWF会一点关系都没有。

注意load进来的swf2,parent,roo ...
好心人真多.先谢谢你. 我刚才学.比较钝~!~
方便的话.可以给我简单写一下代码.举个例子吗? 谢谢!~

TOP