无法从多个swc转换为MovieClip到ComboBox

时间:2012-09-11 10:03:54

标签: actionscript-3

我有一个带有swcA.swc和swcB.swc的AS3项目。 swcA有一个名为mcA的ActionScript类的mc导出。

mcA有一个儿童组合框。 swcB与swcA具有相同的情况,如下所示:

swcA
    mcA (a definition)
       combobox (a child of mcA)

swcB
    mcB (a definition)
      combobox (a child of mcB)

在我的代码中:( 3种情况)

  1. var m:MovieClip = new mcA(); // work fine

  2. var m:MovieClip = new mcB(); // work fine

  3. var m1:MovieClip = new mcA();

    var m2:MovieClip = new mcB();  // trace type error:
                                   // it says xxxxMovieClip couldn't convent to xxx.xxx.Combobox;
    
  4. 我的swc非常简单,只有一个MovieClip和一些fl控件,这个MovieClip有一个连接名称。

    由于在Flash作者中设计UI布局更容易,我不喜欢编码。

    如果包含一个或多个fl控件的其他swc文件在具有链接名称的MovieClip中换行,则在编译时会导致错误。

1 个答案:

答案 0 :(得分:0)

没有看到SWC FLA文件很难说,但我会这样做。但取决于设计。

将combox组件放在库中,确保链接然后导出一个名为assets的SWC。将SWC链接到您的项目。

在您的AS3中,您可以:

var mc1:MovieClip = new MovieClip();
var cb1:ComboBox = new ComboBox();
mc1.addChild(cb1);
addChild(mc1);
// Accessible via mc1.cb1. and cb1.

你也可以这样做:

var sp1:Sprite = new Sprite();
var cb2:ComboBox = new ComboBox();
sp1.addChild(cb2);
addChild(sp1);
// Accessible via sp1.cb2. and cb2.

这些天我倾向于在精灵剪辑上使用精灵,除非它们是基于时间轴或大量图形化定制的。

在创建资产后创建资产时经常会出现flash错误。例如来自图形的movieclip。我倾向于删除并重新创建movieclip并在其中放置组合框并分配链接。这可以很好地分配给你想要的任意数量的变量。

d

PS。

我刚打开flash并创建了一个movieclip(绘制框选择并按F8)

  1. 我将链接名称设置为“container”

  2. 在影片剪辑中,我删除了一个组合框并给它一个实例名称(在“cb”的属性面板中)

  3. 然后这段代码在根时间轴上运行良好:

    import flash.display.MovieClip;
    
    var mc1:MovieClip = new container();
    addChild(mc1);
    
    var mc2:MovieClip = new container();
    addChild(mc2);
    
    var mc3:MovieClip = new container();
    addChild(mc3);
    
    trace(mc1.cb); // Found [object ComboBox]
    trace(mc2.cb); // Found [object ComboBox]
    trace(mc3.cb); // Found [object ComboBox]
    
相关问题