我有一个带有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种情况)
var m:MovieClip = new mcA(); // work fine
var m:MovieClip = new mcB(); // work fine
var m1:MovieClip = new mcA();
var m2:MovieClip = new mcB(); // trace type error:
// it says xxxxMovieClip couldn't convent to xxx.xxx.Combobox;
我的swc非常简单,只有一个MovieClip和一些fl控件,这个MovieClip有一个连接名称。
由于在Flash作者中设计UI布局更容易,我不喜欢编码。
如果包含一个或多个fl控件的其他swc文件在具有链接名称的MovieClip中换行,则在编译时会导致错误。
答案 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)
我将链接名称设置为“container”
在影片剪辑中,我删除了一个组合框并给它一个实例名称(在“cb”的属性面板中)
然后这段代码在根时间轴上运行良好:
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]