Flex 4已经使用swfobject了:
- <script type="text/javascript">
- var swfVersionStr = "10.0.0";
- var xiSwfUrlStr = "playerProductInstall.swf";
- var flashvars = {};
- flashvars.firstname = "Nick";
- flashvars.lastname = "Danger";
- var params = {};
- params.quality = "high";
- params.bgcolor = "#ffffff";
- params.allowscriptaccess = "sameDomain";
- var attributes = {};
- attributes.id = "TestProject";
- attributes.name = "TestProject";
- attributes.align = "middle";
- swfobject.embedSWF(
- "FlashVarTest.swf", "flashContent", "100%", "100%", swfVersionStr,
- xiSwfUrlStr, flashvars, params, attributes);
- swfobject.createCSS("#flashContent", "display:block;text-align:left;");
- </script>
读取flashvars中firstname和lastname变量的写法:
- var first_name : String = FlexGlobals.topLevelApplication.parameters.firstname;
- var last_name : String = FlexGlobals.topLevelApplication.parameters.lastname;
Flex中获取Application对象的方式
Flex应用程序中的根标签是 (Spark application容器),或 (MX Application容器)。application容器是所有Flex组件的根,就像HTML文档中的<html>标签一样,所有的组件和脚本都将包含在application标签内。通常所有的全局对象或函数,也都会分别作为属性或方法添加至application中。通常代码中要通过首先获取application对象才能获得全局对象或方法。下面是两种在代码中获取application对象的方式,假设当前的应用程序名为MyApplication。
-
通过FlexGlobals类:
FlexGlobals类包含了通用于同一Application Domain内的所有应用程序的变量的类,其包含 的公共属性只有两个,一个是constructor属性,两一个是topLevelApplication属性
var application:MyApplication = FlexGlobals.topLevelApplication as MyApplication ;
-
通过SystemManager的application属性
SystemManager用来管理Flex应用程序窗口。每个Flex应用只包含一个SystemManager。SystemManager类中的application属性用来获得application对象。UIComponent对象作为FlexUI组件的上层类,通过UIComponent的systemManager属性,就可以获得全局仅有的SystemManager对象。这样在继承自UIComponent的所有UI组件内部都可以很方便的获取application对象,假如,有继承自UIComponent类的名为MyComponent的自定义组件,在其内部可以通过以下代码获得application:
var sysManager:SystemManager = this.systemManager as SystemManager ; var application:MyApplication = sysManager.application as MyApplication;
注意,上述两种获取application对象的方式,都需要根据具体应用程序的名称和类型进行合适的类型转换。