热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flex应用程序嵌入并与较旧的Flash8应用程序通信-FlexappembeddingandcommunicatingwitholderFlash8app

IcurrentlymaintainanapplicationthatswritteninFlash8(AS2)whichisusedtoembedandcontr

I currently maintain an application that's written in Flash 8 (AS2) which is used to embed and control some auto-generated SWFs. The auto-generated SWFs are also Flash 8 (actually, they work at least in 7, possibly even older), so my current app is able to directly reference variables and functions within the embedded SWF.

我目前维护一个用Flash 8(AS2)编写的应用程序,用于嵌入和控制一些自动生成的SWF。自动生成的SWF也是Flash 8(实际上,它们至少在7中工作,可能甚至更旧),因此我当前的应用程序能够直接引用嵌入式SWF中的变量和函数。

We're now working on a new version of this application, written in Flex. We need to duplicate the current app's functionality of embedding and controlling the auto-generated AS2 SWFs. However, AS3-based SWFs can't reference variables or functions within an embedded AS2-based SWF. Unfortunately we don't have control over the auto-generation tool, so we can't change that to output AS3-based SWFs.

我们现在正在开发这个应用程序的新版本,用Flex编写。我们需要复制当前应用程序嵌入和控制自动生成的AS2 SWF的功能。但是,基于AS3的SWF无法在嵌入式基于AS2的SWF中引用变量或函数。遗憾的是,我们无法控制自动生成工具,因此我们无法将其更改为输出基于AS3的SWF。

The only real solution to getting the AS3 and AS2 SWFs to communicate is to use LocalConnection. I'd need to create a wrapper AS2 SWF that would load the auto-generated SWF and act as a proxy, communicating with my Flex app via LocalConnection and doing whatever needs to be done to the auto-generated SWF. However, there's a problem with this. The proxy SWF needs to know what LocalConnection ID to use, but I can't find a way to communicate the ID to it (I can't just hard-code some random ID as I need to be able to support multiple instances of this app simultaneously).

让AS3和AS2 SWF进行通信的唯一真正解决方案是使用LocalConnection。我需要创建一个包装器AS2 SWF,它将加载自动生成的SWF并充当代理,通过LocalConnection与我的Flex应用程序通信,并对自动生成的SWF执行任何需要执行的操作。但是,这有一个问题。代理SWF需要知道要使用哪个LocalConnection ID,但我找不到将ID传递给它的方法(我不能只是硬编码一些随机ID,因为我需要能够支持这个的多个实例app同时)。

Has anyone solved this? Is there any way to get some kind of unique identifier to the embedded SWF?

有人解决过这个吗?有没有办法为嵌入式SWF获取某种唯一标识符?

3 个解决方案

#1


Not sure I get exactly how the application works so excuse me if I'm wrong. If the flex instance must load the AVM1 proxy wouldn't it be possible to inject a flash-var via the URL containing a generated ID for the LocalConnection to use ?

不确定我确切地知道应用程序是如何工作的,所以如果我错了,请原谅。如果flex实例必须加载AVM1代理,是否可以通过包含生成的LocalConnection ID使用的URL注入flash-var?

In addition to your comment, just added how to send variables to the AVM1 movie. This works fine locally at least (not tested on network):

除了您的评论,还添加了如何将变量发送到AVM1电影。这至少在本地工作正常(未在网络上测试):

AS3 - FP10:

AS3 - FP10:

loader = new Loader();

var request:URLRequest = new URLRequest("as2proxy.swf");
var variables:URLVariables = new URLVariables();
variables.id = "local_connection_id";
request.data = variables;

loader.load(request);

AS2 - FP7 (first frame on the timeline of "as2proxy.swf") :

AS2 - FP7(“as2proxy.swf”时间轴上的第一帧):

trace(id); // (_root.id)

BTW, stumbled on the following class from Libspark : http://www.libspark.org/svn/as3/ForcibleLoader/src/org/libspark/utils/ForcibleLoader.as

BTW,偶然发现Libspark的以下课程:http://www.libspark.org/svn/as3/ForcibleLoader/src/org/libspark/utils/ForcibleLoader.as

#2


Could the two communicate through a server (i.e. a mediator)?

两者可以通过服务器(即调解员)进行通信吗?

#3


Here's a fairly involved article on the subject of communicating across the AVM boundaries:

以下是关于跨AVM边界进行通信的相关文章:

http://asserttrue.com/articles/2006/05/16/library-type-assets-in-actionscript-3-0-using-assets-created-with-current-releases-of-flash-authoring


推荐阅读
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 7.4 基本输入源
    一、文件流1.在spark-shell中创建文件流进入spark-shell创建文件流。另外打开一个终端窗口,启动进入spark-shell上面在spark-shell中执行的程序 ... [详细]
author-avatar
nancy_liu_tj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有