使用
(*)作为活动图的开始点和结束点。
有时,你可能想用
(*top)强制开始点位于图示的顶端。
使用
-->绘制箭头。
| 
🎉 Copied!
   
   | 
@startuml
(*) --> "First Activity"
"First Activity" --> (*)
@enduml
 | 
默认情况下,箭头开始于最接近的活动。
可以用
[和
]放在箭头定义的后面来添加标签。
| 
🎉 Copied!
   
   | 
@startuml
(*) --> "First Activity"
-->[You can put also labels] "Second Activity"
--> (*)
@enduml
 | 
你可以使用
->定义水平方向箭头,还可以使用下列语法强制指定箭头的方向:
- -down->(default arrow)
- -right->or- ->
- -left->
- -up->
| 
🎉 Copied!
   
   | 
@startuml
(*) -up-> "First Activity"
-right-> "Second Activity"
--> "Third Activity"
-left-> (*)
@enduml
 | 
你可以使用关键字
if/then/else创建分支。
| 
🎉 Copied!
   
   | 
@startuml
(*) --> "Initialization"
if "Some Test" then
  -->[true] "Some Activity"
  --> "Another activity"
  -right-> (*)
else
  ->[false] "Something else"
  -->[Ending process] (*)
endif
@enduml
 | 
不过,有时你可能需要重复定义同一个活动:
| 
🎉 Copied!
   
   | 
@startuml
(*)  --> "check input"
If "input is verbose" then
--> [Yes] "turn on verbosity"
--> "run command"
else
--> "run command"
Endif
-->(*)
@enduml
 | 
默认情况下,一个分支连接上一个最新的活动,但是也可以使用
if关键字进行连接。
还可以嵌套定义分支。
| 
🎉 Copied!
   
   | 
@startuml
(*) --> if "Some Test" then
  -->[true] "action 1"
  if "" then
    -> "action 3" as a3
  else
    if "Other test" then
      -left-> "action 5"
    else
      --> "action 6"
    endif
  endif
else
  ->[false] "action 2"
endif
a3 --> if "last test" then
  --> "action 7"
else
  -> "action 8"
endif
@enduml
 | 
你可以使用 
=== code === 来显示同步条。
| 
🎉 Copied!
   
   | 
@startuml
(*) --> ===B1===
--> "Parallel Activity 1"
--> ===B2===
===B1=== --> "Parallel Activity 2"
--> ===B2===
--> (*)
@enduml
 | 
定义活动时可以用
\n来定义跨越多行的描述。
还可以用
as关键字给活动起一个短的别名。
这个别名可以在接下来的图示定义中使用。
| 
🎉 Copied!
   
   | 
@startuml
(*) -left-> "this <size:20>activity</size>
is <b>very</b> <color:red>long2</color>
and defined on several lines
that contains many <i>text</i>" as A1
-up-> "Another activity\n on several lines"
A1 --> "Short activity <img:sourceforge.jpg>"
@enduml
 | 
WARNING
 This translation need to be updated. WARNING
你可以在活动定义之后用
note left,
note right, 
note top or 
note bottom,
命令给活动添加注释。
如果想给开始点添加注释,只需把注释的定义放在活动图最开始的地方即可。
也可以用关键字
endnote定义多行注释。
| 
🎉 Copied!
   
   | 
@startuml
(*) --> "Some Activity"
note right: This activity has to be defined
"Some Activity" --> (*)
note left
 This note is on
 several lines
end note
@enduml
 | 
用关键字
partition定义分区,还可以设置背景色(用颜色名或者颜色值)。
定义活动的时候,它自动被放置到最新的分区中。
用
}结束分区的定义。
| 
🎉 Copied!
   
   | 
@startuml
partition Conductor {
  (*) --> "Climbs on Platform"
  --> === S1 ===
  --> Bows
}
partition Audience #LightSkyBlue {
  === S1 === --> Applauds
}
partition Conductor {
  Bows --> === S2 ===
  --> WavesArmes
  Applauds --> === S2 ===
}
partition Orchestra #CCCCEE {
  WavesArmes --> Introduction
  --> "Play music"
}
@enduml
 | 
用
skinparam命令修改字体和颜色。
如下场景可用:
- 在图示定义中
- 在引入的文件中
- 在命令行或ANT任务提供的配置文件中。
还可以为构造类型指定特殊颜色和字体。
| 
🎉 Copied!
   
   | 
@startuml
skinparam backgroundColor #AAFFFF
skinparam activity {
  StartColor red
  BarColor SaddleBrown
  EndColor Silver
  BackgroundColor Peru
  BackgroundColor<< Begin >> Olive
  BorderColor Peru
  FontName Impact
}
(*) --> "Climbs on Platform" << Begin >>
--> === S1 ===
--> Bows
--> === S2 ===
--> WavesArmes
--> (*)
@enduml
 | 
可用用
skinparam activityShape octagon命令将活动的外形改为八边形。
| 
🎉 Copied!
   
   | 
@startuml
'Default is skinparam activityShape roundBox
skinparam activityShape octagon
(*) --> "First Activity"
"First Activity" --> (*)
@enduml
 | 
| 
🎉 Copied!
   
   | 
@startuml
title Servlet Container
(*) --> "ClickServlet.handleRequest()"
--> "new Page"
if "Page.onSecurityCheck" then
  ->[true] "Page.onInit()"
  if "isForward?" then
   ->[no] "Process controls"
   if "continue processing?" then
     -->[yes] ===RENDERING===
   else
     -->[no] ===REDIRECT_CHECK===
   endif
  else
   -->[yes] ===RENDERING===
  endif
  if "is Post?" then
    -->[yes] "Page.onPost()"
    --> "Page.onRender()" as render
    --> ===REDIRECT_CHECK===
  else
    -->[no] "Page.onGet()"
    --> render
  endif
else
  -->[false] ===REDIRECT_CHECK===
endif
if "Do redirect?" then
 ->[yes] "redirect request"
 --> ==BEFORE_DESTROY===
else
 if "Do Forward?" then
  -left->[yes] "Forward request"
  --> ==BEFORE_DESTROY===
 else
  -right->[no] "Render page template"
  --> ==BEFORE_DESTROY===
 endif
endif
--> "Page.onDestroy()"
-->(*)
@enduml
 |