zoukankan      html  css  js  c++  java
  • 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!
  • 相关阅读:
    hdu 3342 Legal or Not 拓排序
    hdu 1596 find the safest road Dijkstra
    hdu 1874 畅通工程续 Dijkstra
    poj 2676 sudoku dfs
    poj 2251 BFS
    poj Prime Path BFS
    poj 3278 BFS
    poj 2387 Dijkstra 模板
    poj 3083 DFS 和BFS
    poj 1062 昂贵的聘礼 dijkstra
  • 原文地址:https://www.cnblogs.com/jsbrml/p/2014176.html
Copyright © 2011-2022 走看看