我在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代码中但它没有解决问题。
我不知道问题的根源。
请帮帮我。
感谢。
答案 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)