Flex: использовать функцию parentApplication из модуля, но с некоторым API - PullRequest
0 голосов
/ 08 августа 2011

У меня есть приложение, которое загружает модули.Эти модули могут быть разработаны третьими сторонами.Чтобы облегчить им задачу, я хотел бы разработать API, чтобы они знали, какие функции они могут вызывать и использовать.

Итак, я знаю, что это может работать в модуле, но тогда вы должны знать, что естьVar "расходы" в родительском приложении:

// Access properties of the parent application.
private function getDataFromParent():void {
    expenses = parentApplication.expenses;
} 

Но я бы предпочел что-то вроде этого:

private function getDataFromParent():void {
    var myParent : MyAPI = new MyAPI();
    expenses = myParent.getExpenses();
} 

Так что, если это будет работать так, когда вы начнете кодироватьи введите «мой родитель».Flex предлагает все возможные функции и переменные с подсказкой кода.

Есть идеи, как с этим начать?

Большое спасибо,

Фрэнк

Ответы [ 2 ]

1 голос
/ 08 августа 2011

Создайте класс с именем MyAPI и инкапсулируйте родительские вызовы

package com.myAPI
{

    public class MyAPI
    {
        public function MyAPI()
        {
        }

        public function expenses():expenseType{
               parentApplication.expenses;
        }
    }
}

Разработчики вашего модуля должны будут скомпилировать этот класс в свой модуль.

1 голос
/ 08 августа 2011

Я бы сделал интерфейс для "родителя" и один для "модулей".Это позволяет вам обрабатывать все модули одинаково и позволяет отдельным разработчикам модулей знать, что предоставляет «родитель».

public class IModule {
    // when initialize() is called it will be up to the module's developer to 
    // retain a reference to the parent and use that for later calls
    function initialize(parent:IParent):void;
    function doStuff():Boolean;
}

public class IParent {
    function getInfo():String;
    function foo(value:int):int;
}
...