2013-08-21 2 views
0

Iam parctising Flex в эти дни. У меня просто было 2 вопроса:как передавать данные от одного компонента к другому компоненту без использования событий

a) Может ли кто-нибудь сказать мне, как передавать данные с одного компонента на другой компонент без использования событий? Я знал, используя события, которые мы можем отправить данные.

б) Я думаю, что нужно делать мобильные приложения. Uisng Flex, можете ли вы сказать, с чего начать?

+0

a) Если вы знаете, какой объект будет вашим получателем, почему бы вам не разработать его интерфейс для принятия разработанного набора данных? И б) начните с изучения событий касания, поскольку они заменяют события мыши на мобильных телефонах. – Vesper

+0

@Vesper может U pls предоставить мне пример для моего запроса 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

а) Создать класс Singleton. Вы можете делиться данными между классами.
Как это

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"; 
    } 
} 

б) Создать привет мир приложений.
http://blog.air4android.com/2011/07/10/hello-world-air-for-android/

0

на вопрос, вы можете использовать функцию обратного вызова или наблюдателя, а не событие

обратного

Предположим, что мы имеем компонент А и В, а также случаи, а и б. Использовать обратный вызов не потребует контекста.

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

Смежные вопросы