在Flex中加载AS2 swf文件时出现组合框下拉问题

时间:2010-03-04 09:53:02

标签: flex combobox actionscript-2

我在AS2 swf文件中发现了关于组合框下拉列表的问题。

我的情景是: 有多个swf文件是从ActionScript2.0编译的,并使用Flex在swfLoader组件中加载这些swf文件。

我发现有两个问题无法解决: 1.当我在一个flex应用程序中加载多个as2.0 swf文件时,加载的第一个文件将完美地工作但第二个文件有问题。当我点击他们的组合框组件时,下拉列表没有显示。 2.首次加载的swf文件也有弹出窗口的问题。当弹出窗口显示无法正常工作时,我无法对其进行任何操作,如点击按钮,关闭弹出窗口等。

我通过在flex中添加空内容AS2.0 swf文件解决它是第一个加载的swf文件并且它发生了一些奇怪的事情:当我点击组合框上的按钮时,下拉列表出现但它出现在位置上( x:0,y:0)其容器。

我还添加了代码:

this._lockroot = true;

在每个ActionScript2.0代码中但它没有解决问题。

我不知道问题的根源。

请帮帮我。

感谢。

2 个答案:

答案 0 :(得分:0)

对不起我的错误,这是我实施的细节。

在Flex中,我使用这行代码加载五个.swf文件

  

swfBase = new SWFLoader();   swfBase.load( “资产/ base.swf”);   mainView.addChild(swfBase);   swfTreatmentPlan1 =新的SWFLoader();   swfTreatmentPlan1.load( “资产/ TreatmentPlan1.swf”);   swfOverview = new SWFLoader();   swfOverview.load( “资产/ Overview.swf”);   swfTreatmentPlan2 =新的SWFLoader();   swfTreatmentPlan2.load( “资产/ TreatmentPlan2.swf”);   swfCharLib = new SWFLoader();   swfCharLib.load( “资产/ CharacteristicLib.swf”);

当我想交换.swf文件以在flex屏幕上显示时,我使用这个逻辑:

私有函数menuChange(event:Event):void {  var selectedNode:XML = Tree(event.target).selectedItem as XML  var data:String = selectedNode。@ data.toString();

mainView.removeChild(currSWF);

currSWF =此[数据]为SWFLoader;

mainView.addChild(currSWF); }

mainView是Canvas,用于show .swf文件。

我使用LocalConnection来处理Flex和ActionScript2.0 swf文件之间的通信。

对于ActionScript2.0,我将使用此代码创建ComboBox。

this.createClassObject(ComboBox,“selArchived”,this.getNextHighestDepth()); selArchived.setSize(130,22); selArchived.move(__ x + 7,__ y + 35); selArchived.addEventListener(“change”,Delegate.create(this,objArchivedChange));

我为这样的组合框指定了数据提供者:

this.selArchived.dataProvider = arrTmp;

全部。

每个ActionScript2.0代码我都使用这个简单的机制来实例化组合框。

感谢

答案 1 :(得分:0)

詹姆斯和其他人,我通过硬编码swapDepths容器movieclip解决了这个问题。 例如,如果你的comboBox在mc_container中,那么当你创建它时(或者它已经在舞台上)为as2执行mc_container.swapDepths(1)或为AS3执行mc_container.setChildIndex(mc_container,1)