zoukankan      html  css  js  c++  java
  • Flex、flash(as3)获取SWF后面的参数

    写了一个例子。

    先说flash as3吧,可以用root.loaderInfo.parameters

    AS3类 GSPManager.as 代码:   

    package
    {
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.text.TextField;    
        public class GSPManager extends Sprite
        {
            public 
    function GSPManager()
            {
                
    this.addEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
            }
            
            private 
    function addedToStageHandler(e:Event):void
            {
                
    this.removeEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
                
                init();
            }
            private 
    function init():void
            {            
                
    var out_txt:TextField = new TextField();
                
    //边框
                out_txt.border = true;
                
    //边框颜色
                out_txt.borderColor = 0x80FF3300;
                
    //大小
                out_txt.width = 100;
                out_txt.height 
    = 20;
                
    //位置
                out_txt.x = (stage.stageWidth - out_txt.width)/2;
                out_txt.y = (stage.stageHeight - out_txt.height)/2;
                //添加到舞台
                addChild(out_txt);
                
                
    //获得参数对象
                var param:Object = root.loaderInfo.parameters;
                  
    if (param["name"]!=null
                {
                          out_txt.text 
    = param["name"+ param["num"];
                          trace(
    "value:"+param["name"]);
                                  
    //判断
                  } 
                
    else 
                {
                        out_txt.text 
    = "null";
                        trace(
    "value:null");
                  }
            }        
        }
    }

    GetSwfParam.fla 绑定的文档类为GSPManager.as ,在文档类绑定框里写GSPManager这个就可以了

    之后编译出来的GetSwfParam.swf 就可以添加到页面了

    Java web页面代码:  

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      
    <head>
      
    </head>
      
      
    <body>
        
    <object id="g" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/_cabs/flash/swflash.cab#version=6,0,29,0" width="300" height="200">
          
    <param name="movie" value="GetSwfParam.swf?name=sange&num=66" />
        <param name="quality" value="high" />
        <param name="allowScriptAccess" value="sameDomain" />    
        <param name="scale" value="exactfit" />
        <embed name="g" src="GetSwfParam.swf" quality="high" scale="exactfit" align="middle" play="true" loop="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="200" ></embed>
      </object>
      </body>
    </html>

     这里要说的是swf后有很多参数就用&符号 , 比如GetSwfParam.swf?name=sange&num=66&id=1

    现在说Flex了,因为让同事也做了这样的东西,但他只会Flex,他没弄出来,所以我试下,发现用root没反映,但我很肯定Flex应该也可以弄出来,发现跟flash as3确实不同,不能用root,因为Flex中没有root这个概念。问了群里的人,收获大了,原来就Application,哈哈,不就是根节点么,也就相当于root,就是名称不一样。

    Flex就用Application.application.parameters

    GetSwfParam.mxml 代码: 

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#ffffff" layout="absolute" creationComplete="init()">
        
    <mx:Script>
            
    <![CDATA[
                private 
    function init():void
                {
                    
    //获得参数对象                
                    var param:Object = Application.application.parameters;
                    
    if(param["name"!= null)
                    {
                        mytxt.text 
    = param["name"];
                    }
                    
    else
                    {
                        mytxt.text 
    = "null";
                    }
                }
            ]]
    >
        
    </mx:Script>
        <mx:TextInput id="mytxt" x="60" y="47"/>
    </mx:Application>

    把编译好的swf添加到页面就可以了。同上,Java web页面代码不变。

  • 相关阅读:
    vue从详情页回到列表页,停留在之前的tab上
    vue-touch监听手指左滑右滑事件
    vue事件代理
    vue通过ref获取组件渲染后的dom(this.$refs.xxxRef.$el)
    vue水印-第二种方法:通过指令
    # 有时候代码超时
    # 今天的leetcode1268又用上了二分搜索。
    # linux命令小常识
    # 大家好
    今天尝试配置maven的时候
  • 原文地址:https://www.cnblogs.com/AS30/p/2212448.html
Copyright © 2011-2022 走看看