• swf之间的交互(上)全局变量VS全局派发事件


    1全局变量:

    通过定义一个全局的类里面定义静态变量用来存储swf1中要传给swf2的参数值,swf2通过读取静态变量中的值来获取swf1中传过来的值。。。。。。。这个很好理解就不多说了。

    2全局派发(以一个demo来说明)

    ----自定义一个事件(注意继承自Event)给他一个私有变量用来存储传递的参数(当然根据情况可以多个)

    package event
    {
    import flash.events.Event;

    public class MessageEvent extends Event
    {
    private var msg:String;
    public function MessageEvent(msg:String,type:String, bubbles:Boolean=false, cancelable:Boolean=false)
    {
    super(type, bubbles, cancelable);
    this.msg=msg;
    }
    public function getmessage():String
    {
    return msg;
    }
    }
    }

    ....创建一个全局派发类继承自EventDispatcher(使用单例模式提高效率,便于管理)

    package event
    {
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;

    public class MessageDispatch extends EventDispatcher
    {
    private static var instance:MessageDispatch;
    public function MessageDispatch(target:IEventDispatcher=null)
    {
    super(target);
    }
    public static function getInstance():MessageDispatch
    {
    if(instance==null)
    {
    instance
    =new MessageDispatch();
    }
    return instance;
    }

    public var msg:String
    }
    }

    ...实现

    swf1:left.swf

    <?xml version="1.0" encoding="utf-8"?>
    <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s
    ="library://ns.adobe.com/flex/spark"
    xmlns:mx
    ="library://ns.adobe.com/flex/mx"
    height
    ="300" width="300">
    <s:layout>
    <s:BasicLayout/>
    </s:layout>

    <fx:Script>
    <![CDATA[
    import event.MessageDispatch;
    import event.MessageEvent;
    protected function button1_clickHandler(event:MouseEvent):void
    {
    MessageDispatch.getInstance().dispatchEvent(
    new MessageEvent(t.text,"sent"));
    MessageDispatch.getInstance().msg
    =t.text;
    }
    ]]
    >
    </fx:Script>

    <fx:Declarations>
    <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <s:TextArea x="10" y="10" width="277" height="218" id="t"/>
    <s:Button x="218" y="236" label="按钮" click="button1_clickHandler(event)"/>
    </s:Panel>

     swf2:right.swf

    <?xml version="1.0" encoding="utf-8"?>
    <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s
    ="library://ns.adobe.com/flex/spark"
    xmlns:mx
    ="library://ns.adobe.com/flex/mx"
    creationComplete
    ="panel1_creationCompleteHandler(event)"
    height
    ="300" width="300">
    <s:layout>
    <s:BasicLayout/>
    </s:layout>
    <fx:Script>
    <![CDATA[
    import event.MessageDispatch;
    import event.MessageEvent;

    import mx.events.FlexEvent;

    protected function panel1_creationCompleteHandler(event:FlexEvent):void
    {
    MessageDispatch.getInstance().addEventListener(
    "send",setMsg);
    }

    private function setMsg(e:MessageEvent):void
    {
    txt.text
    =e.getmessage();
    }

    ]]
    >
    </fx:Script>
    <fx:Declarations>
    <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <s:TextArea x="10" y="10" width="278" height="247" id="txt"/>
    </s:Panel>

    主工程

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s
    ="library://ns.adobe.com/flex/spark"
    xmlns:mx
    ="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:local="*">
    <fx:Declarations>
    <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <local:left x="0" y="1" height="300">
    </local:left>
    <local:right x="308" y="-1">
    </local:right>
    </s:Application>

    待续。。。。。。。。。。。。。。。。。

    Right! is "Fuck GIS",but don't think too much; It means reach a high during playing GIS. Come on!
  • 相关阅读:
    [BTS] BizTalk WCF-SQL Adapter 高级应用
    [BTS] BizTalk EDI character set and separator settings
    [ThingWorx] Install Guideline
    [ThingWorx] Install PostgreSQL Issue
    [BTS] BizTalk EDI AS2 Error 1
    [BTS] BizTalk With EF
    [BTS] Exception occurred when persisting state to the database
    [BTS] MSDTC
    [BTS] The value "" for the property InboundId is invalid
    [Android] Android Sutdio on Surface Pro 3
  • 原文地址:https://www.cnblogs.com/jsbrml/p/2014176.html
Copyright © 2020-2023  润新知