2013-08-21 46 views
0

Iam現在改變Flex。我只有2個查詢:如何在不使用事件的情況下將數據從一個組件傳遞到其他組件

a)誰能告訴我如何將數據從一個組件傳遞到其他組件而不使用事件嗎?我知道使用事件,我們可以發送數據..

b)Iam思考做移動應用程序Flexis,你能告訴我從哪裏開始?

+0

a)如果您知道什麼對象是您的接收者,爲什麼不設計其接口來接受設計的數據集?和b)從學習觸摸事件開始,因爲它們取代手機中的鼠標事件。 – Vesper

+0

@Vesper可以爲我的查​​詢提供一個示例a),並且是否有任何其他建議用於我的查詢b) –

+0

此博客是否提供第一個問題的幫助? http://www.flextras.com/blog/index.cfm/2013/2/1/How-does-one-Flex-Component-talk-to-another-Flex-Component – JeffryHouser

回答

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(){} 
} 

Component1.as

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

Component2.as

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

二)創建Hello World應用程序。
http://blog.air4android.com/2011/07/10/hello-world-air-for-android/

0

要質疑,你可以使用回調或觀察員,而不是事件

回調

假設我們有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

相關問題