0

我正在尝试创建 3 个不同的对象,每个对象都是从不同的 swc 加载的。每个 swc 使用相同的 fl.controls.ComboBox,在运行时我收到一个错误,提示无法从 MovieClip 转换为 ComboBox。

我尝试在链接类型中将库的发布设置更改为“外部”,但这迫使我将整个库包含到项目中,这大大增加了其可执行文件的大小。

在不同的 swc 上使用 fl.controls.ComboBox(或任何其他类型的控件)而不会出现代码冲突的正确方法是什么?

4

1 回答 1

1

我不明白你的问题。因为常识最好的情况是只有组件在单个 SWC 中附加库,并且以编程方式使组合框是正常的。

我你看完整的源代码和.fla 清楚地解决了,但我想你的问题如下。

你把SWC中的每个组合框都换行了吗?区分每个个体的SWC,从组合框中是参考以下过程。例如,存在三种SWC。
如果假设数字 1 是城市选择组合框,数字 2 是有趣的选择组合框,数字 3 是生日组合框。您应该转换为 CityComboBox、SelectionComboBox、BirthdayComboBox 电影剪辑,一旦在崩溃中使用,则不会发生。你必须遵循代码。

private var comboBox0:CityComboBox;
private var comboBox1:SelectionComboBox;
private var comboBox2:BirthdayComboBox;
private var cityComboBox:ComboBox;
private var selectionComboBox:ComboBox;
private var birthdayComboBox:ComboBox;

public function Constructor()
{
   comboBox0 = new CityComboBox();
   .
   .
   .
   cityComboBox = comboBox0.getChildAt(0) as ComboBox;
}

在此处输入图像描述

在此处输入图像描述


ps

以我的经验,除非你创建一个每个 SWC 映射每个 Class,否则 SWC 不需要被分成每个。(当然,根据情况不同的方式是。)如果你是一个单一的 SWC,在一个电影剪辑或在你脑海中创建的组件库整洁且不存在崩溃。如果问题很简单,您知道哪一部分。因为它们都在一个地方 DisplayObject, Naming, Linkage 这样的崩溃是可以避免的。

于 2012-08-15T00:36:33.330 回答