0

这些天我正在参与 Flex。我只有两个查询:

a) 谁能告诉我如何在不使用事件的情况下将数据从一个组件传递到另一个组件?我知道使用事件我们可以发送数据..

b) 我想用 Flex 做移动应用程序,你能告诉我从哪里开始吗?

4

2 回答 2

0

质疑a,可以使用回调或观察者代替事件

打回来

假设我们有组件 A 和 B,实例是 a 和 b。使用回调将使它不需要上下文。

b.callback = a.handler;

b.doSth();


// component define
Class A {

   public function handler(param:*):void {//you can have your param here

   }

}

class B {


   private var _callback:Function;//here you can use a array to save multi callbacks.

   public function set callback(value:Function):void {
       _callback = value;
   }

   public function doSth():void {
       //do something

       if (_callback  != null) {
           _callback.apply(null, [some data]);
       }
   }
}

观察者

这是对 Observer 的一些介绍,它在某些方面看起来像回调。

观察者

于 2013-08-21T09:25:25.947 回答
0

a) 创建单例类。您可以在类之间共享数据。
像这样

CustomSingleton.as

package modules.custom
{

public class CustomSingleton
{

    private var _g_data1: String;
    private var _g_data2: String;
    private var _g_object1: Object;

    public function CustomSingleton(internally:SingletonInternal)
    {
        super();
        if(internally == null)
        {
            throw new Error("Must use getInstance() Method.");
        }
    }
    public static function getInstance():CustomSingleton
    {
        return SingletonInternal.instance;
    }

    public function set g_data1(value:String):void
    {
        _g_data1 = value;
    }

    public function get g_data1():String
    {
        return _g_data1;
    }

    public function set g_data2(value:String):void
    {
        _g_data2 = value;
    }

    public function get g_data2():String
    {
        return _g_data2;
    }

    public function set g_object1(value:Object):void
    {
        _g_object1 = value;
    }

    public function get g_object1():Object
    {
        return _g_object1;
    }

}
}
import modules.custom.CustomSingleton;



class SingletonInternal{
public static var instance:CustomSingleton
    = new CustomSingleton(new SingletonInternal());
public function SingletonInternal(){}
}

组件1.as

public class Component1
{
     private var singleton: CustomSingleton = CustomSingleton.getInstance();
     public function hoge(): void
     {
          singleton.g_data1 = "aaa";
     }
}

组件2.as

public class Component2
{
     private var singleton: CustomSingleton = CustomSingleton.getInstance();
     public function hoge(): void
     {
          trace(singleton.g_data1);
          singleton.g_data1 = "bbb";
     }
}

b) 创建 Hello world 应用程序。
http://blog.air4android.com/2011/07/10/hello-world-air-for-android/

于 2013-08-21T09:32:07.487 回答