指定具有 AnimSerializeOperation 內容的外部函數

AnimSerializeOperation 內容會指定用來將屬於該類型之所有屬性和引數產生成動畫的外部函數名稱。

關於這項作業

指定具有 AnimUnserializeOperation 內容的外部函數 相互比較。

IBM® Rational® Rhapsody® 可順利將簡式類型和一維陣列的值產生成動畫(顯示)。若要在動畫階段作業期間顯示此類屬性的現行值,請針對實例開啟「特性」視窗。

不過,如果您要將更複雜的類型產生成動畫,比如日期,則必須將類型轉換成字串 (char *),讓 Rational Rhapsody 能夠顯示它。透過撰寫一個廣域函數、一個檢測函數採用您所要顯示類型的一個引數,然後傳回 char * 來完成此轉換。您必須停用檢測函數本身的動畫(方法是使用函數的 AnimateAnimateArguments 內容)。

例如,您可以讓類型 tDate 定義如下:

typedef struct date {
  int day;
  int month;
  int year; } %s;
 

您擁有的物件可以帶有類型 int 的屬性計數和類型 tDate 的屬性日期。物件可具有含有下列主體的起始設定元:

me->date.month = 5;
me->date.day = 12;
me->date.year = 2000;

如果您要將資料屬性產生成動畫,則必須將用於日期的 AnimSerializeOperation 內容設為函數名稱,該函數會將類型 tDate 轉換成 char *。例如,您可將內容設給名稱為 showDate 的函數。此函數名稱的輸入不可含任何括弧。它必須採用類型為 tDate 的屬性,並傳回字元 char *showDate 函數的 AnimateAnimateArguments 內容必須設為 Cleared

showDate 函數的實作可如下所示:

showDate(tDate aDate) {
    char* buff;
    buff = (char*) malloc(sizeof(char) * 20);
    sprintf(buff,"%d %d %d",
        aDate.month,aDate.day,aDate.year);
    return buff;
}

當您連同動畫執行此模型時,此物件的實例會針對瀏覽器中的日期屬性顯示值為 5 12 2000。

如果 showDate 函數定義在與屬性所屬的相同類別且函數並非靜態,則 AnimSerializeOperation 內容值應類似下列範例:

myReal->showDate

這個值會顯示函數是由位於類別 OMAnimated<classname> 中的 serializeAttributes 函數所呼叫的。

註: showDate 函數必須透過 C 中的 malloc/alloc/calloc 函數或 C++ 中的 new 運算子,為傳回的字串配置記憶體。否則,系統會關閉。

此內容的預設值是空字串。


意見回饋