首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex获取窗体大小 Flex与JS相互调用

2012-10-29 
Flex获取窗体大小 Flex与JS互相调用使用ExternalInterface.addCallback 来发布 ActionScript 要提供给 Jav

Flex获取窗体大小 Flex与JS互相调用


使用ExternalInterface.addCallback 来发布 ActionScript 要提供给 JavaScript 调用的函数或方法,执行完 ExternalInterface.addCallback 后,通过 ExternalInterface.call 方法调用 JavaScript 中的方法获取屏幕参数。

详细复制下面代码运 行
1.favzone.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
????backgroundColor="#FFFFFF"
????creationComplete="init()">
????<mx:Script>
????????<![CDATA[
????????import mx.core.Container;
????????import flash.external.ExternalInterface;
????????import mx.containers.Canvas;
????????[Bindable]
????????private var screenWidth:int = new int();
????????[Bindable]
????????private var screenHeight:int??= new int();????
????????????????
????????internal function init():void{
????????????ExternalInterface.addCallback("setScreenSize",setScreenSize);
??????????????ExternalInterface.call("getScreenSize",setScreenSize);
????????}
????????
????????private function setScreenSize(width:int,height:int):void
????????{
????????????this.screenWidth = int(width);
????????????this.screenHeight = int(height);
????????}????????????
????????]]>
????</mx:Script>
????
????<mx:Text??text="screenWidth:{screenWidth}"/>
????<mx:Text??text="screenHeight:{screenHeight}" y="42"/>
</mx:Application>

calljs.js

function thisMovie(movieName) {
????if (navigator.appName.indexOf("Microsoft") != -1) {
????????return window[movieName];
????} else {
????????return document[movieName];
????}
}

// send to flex
function getScreenSize()
{
???? var size = [];
???? size = getSize();
???? thisMovie("favzone").setScreenSize(size[0],size[1]);
}
//get size
function getSize() {
??var myWidth = 0, myHeight = 0;
??if( typeof( window.innerWidth ) == 'number' ) {
????myWidth = window.innerWidth;
????myHeight = window.innerHeight;
??} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
????myWidth = document.documentElement.clientWidth;
????myHeight = document.documentElement.clientHeight;
??} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
????myWidth = document.body.clientWidth;
????myHeight = document.body.clientHeight;
??}
??var size = [];
??
??size[0] = myWidth;
??size[1] = myHeight;
??return size;
}

最 后在调用favzone.swf的页面中引用这个js
<script src="calljs.js" language="javascript"></script>

热点排行