Packagekrewfw.builtin_actor.system
Classpublic class KrewStateMachine
InheritanceKrewStateMachine Inheritance KrewActor Inheritance KrewGameObject Inheritance starling.display.Sprite

Hierarchical Finite State Machine for krewFramework. [Note] 後から動的に登録 State を変えるような使い方は想定していない。 addState はあるが removeState のインタフェースは用意していない。 また、現状 KrewStateMachine に addState を行った後の state に sub state を足すような書き方にも対応していない。 KrewStateMachine のコンストラクタで一度に定義してしまうことを推奨する。



Public Properties
 PropertyDefined By
 InheritedapplyForNewActor : Function
KrewActor
 InheritedcachedHeight : Number
[read-only]
KrewActor
 InheritedcachedWidth : Number
[read-only] [CAUTION] starling.display.DisplayObjectContainer の width / height の getter は重い行列計算が走るので滅多なことでもない限り使うな
KrewActor
 InheritedchildActors : Vector.<KrewActor>
[read-only]
KrewActor
 Inheritedcollidable : Boolean = true
false にすると CollisionShape が衝突判定を行わない
KrewActor
 Inheritedcolor : uint
Actor が持つ Image や TextField 全てに色をセットする
KrewActor
  currentState : KrewState
[read-only]
KrewStateMachine
 Inheriteddisplayable : Boolean = true
addActor 前に false にすると addActor 時に addChild を行わない (Starling の DisplayList にのせない.) 見た目を持たずに仕事をする Actor はこれを false にすればよい
KrewActor
 InheriteddisplayOrder : int = 0
high is front
KrewActor
 InheritedhasInitialized : Boolean
Called from StageLayerManager for re-init global actor.
KrewActor
 Inheritedid : int
[read-only]
KrewGameObject
 InheritedisDead : Boolean
[read-only]
KrewActor
 Inheritedkrew : KrewTopUtil
[read-only] よく使う utility への簡易アクセス
KrewGameObject
 Inheritedlayer : StageLayer
KrewActor
 InheritedlayerName : String
KrewActor
 InheritednumActor : int
[read-only]
KrewActor
 Inheritedpoolable : Boolean = false
true にすると再セットアップが可能な状態に dispose する。 (GC を促すための null を入れることをしない)
KrewActor
 InheritedsharedObj : KrewSharedObjects
KrewGameObject
  VERBOSE : Boolean = true
[static] If trace log is annoying you, set it false.
KrewStateMachine
Protected Properties
 PropertyDefined By
 Inherited_cachedHeight : Number
KrewActor
 Inherited_cachedWidth : Number
KrewActor
 Inherited_checkDisplayArea : Boolean = false
KrewActor
Public Methods
 MethodDefined By
  
KrewStateMachine(stateDefList:Array = null, funcOwner:Object = null)
Usage: var fsm:KrewStateMachine = new KrewStateMachine([ { id: "state_1", // First element will be an initial state.
KrewStateMachine
 Inherited
act(action:StuntAction = null):StuntAction
KrewActor
 Inherited
addActor(actor:KrewActor, putOnDisplayList:Boolean = true):void
krewFramework のシステムに Actor を登録し、同時に Starling の DisplayList に追加する.
KrewActor
 Inherited
addChild(child:DisplayObject):DisplayObject
[override] addChild したものは Actor 破棄時に勝手に dispose が呼ばれる
KrewActor
 Inherited
addImage(image:Image, width:Number, height:Number, x:Number = 0, y:Number = 0, anchorX:Number = 0.5, anchorY:Number = 0.5):void
addChild の代わりに addImage を呼ぶことで破棄時に Image.texture の dispose が 呼ばれるようになる。また、KrewActor.color の指定で全 Image に色がかかるようになる
KrewActor
 Inherited
addInitializer(initFunc:Function):void
init が呼ばれる時(KrewScene.setUpActor に渡された時、または Actor から addActor されたとき)に、init 後に呼ばれる関数を登録。 コンストラクタでの使用を想定.
KrewActor
 Inherited
addPeriodicTask(interval:Number, task:Function, times:int = -1):void
Equivalent to setInterval(), but passed time will be based on game's timeline.
KrewActor
 Inherited
addScheduledTask(timeout:Number, task:Function):void
Equivalent to setTimeout(), but passed time will be based on game's timeline.
KrewActor
  
addState(stateDef:*, funcOwner:Object = null):void
KrewStateMachine
 Inherited
addText(text:TextField, x:Number, y:Number):void
Actor 全体の color に影響させたい場合は addChild ではなく addText で足す
KrewActor
 Inherited
addTouchMarginNode(touchWidth:Number = 0, touchHeight:Number = 0):void
for touch action adjustment.
KrewActor
 Inherited
addTween(tween:Tween):void
KrewActor
 Inherited
blackIn(duration:Number = 0.33, startAlpha:Number = 1):void
KrewGameObject
 Inherited
blackOut(duration:Number = 0.33, startAlpha:Number = 0):void
KrewGameObject
 Inherited
changeImage(image:Image, imageName:String):void
KrewActor
  
changeState(stateId:String):void
KrewStateMachine
 Inherited
colorIn(color:uint, duration:Number = 0.33, startAlpha:Number = 1):void
KrewGameObject
 Inherited
colorOut(color:uint, duration:Number = 0.33, startAlpha:Number = 0):void
KrewGameObject
 Inherited
createActor(newActor:KrewActor, layerName:String = null):void
KrewActor
 Inherited
cyclic(interval:Number, task:Function, times:int = -1):void
Alias for addPeriodicTask
KrewActor
 Inherited
cyclicFrame(task:Function, waitFrames:int = 1, times:int = -1):void
Runs task several times after n frames.
KrewActor
 Inherited
delayed(timeout:Number, task:Function):void
Alias for addScheduledTask
KrewActor
 Inherited
delayedFrame(task:Function, waitFrames:int = 1):void
Runs task 1 times after n frames.
KrewActor
 Inherited
dispose():void
[override]
KrewGameObject
  
KrewStateMachine
  
KrewStateMachine
  
KrewStateMachine
  
dumpState(stateId:String):void
KrewStateMachine
  
KrewStateMachine
 Inherited
enchant(duration:Number, transition:String):Tween
KrewActor
 Inherited
getByteArray(fileName:String):ByteArray
KrewGameObject
 Inherited
getImage(fileName:String):Image
KrewGameObject
 Inherited
getLayer(layerName:String):StageLayer
KrewGameObject
 Inherited
getObject(fileName:String):Object
KrewGameObject
 Inherited
getSound(fileName:String):Sound
KrewGameObject
  
getState(stateId:String):KrewState
KrewStateMachine
 Inherited
getTexture(fileName:String):Texture
KrewGameObject
 Inherited
getXml(fileName:String):XML
KrewGameObject
 Inherited
init():void
この時点で sharedObj がセットされているので resourceManager にアクセスできる
KrewGameObject
  
isState(stateName:String):Boolean
If given state is current state OR parent of current state, return true.
KrewStateMachine
 Inherited
listen(eventType:String, callback:Function):void
KrewGameObject
  
listenToStateEvent(event:String):void
KrewStateMachine
 Inherited
loadResources(fileNameList:Array, onLoadProgress:Function, onLoadComplete:Function):void
KrewGameObject
  
onUpdate(passedTime:Number):void
[override]
KrewStateMachine
 Inherited
passAway():void
KrewActor
 Inherited
pauseBgm():void
KrewGameObject
 Inherited
playBgm(bgmId:String, vol:Number, startTime:Number = 0):void
同じ bgmId をすでに再生中の場合は、再生し直さない。 (0 から再生し直したい場合は先に stopBgm() を呼んでね)
KrewGameObject
 Inherited
playSe(seId:String, pan:Number = 0, loops:int = 0, vol:Number, startTime:Number = 0):void
KrewGameObject
 Inherited
react():void
KrewActor
 Inherited
KrewActor
 Inherited
resetTimeScale(layerName:String):void
KrewGameObject
 Inherited
resumeBgm():void
KrewGameObject
 Inherited
sendMessage(eventType:String, eventArgs:Object = null):void
KrewGameObject
 Inherited
setAllLayersEnabled(enabled:Boolean):void
KrewGameObject
 Inherited
setCollision(groupName:String, shape:CollisionShape):void
KrewGameObject
 Inherited
setLayerEnabled(layerNameList:Array, enabled:Boolean):void
KrewGameObject
 Inherited
setLayerEnabledOtherThan(excludeLayerNameList:Array, enabled:Boolean):void
KrewGameObject
 Inherited
setTimeScale(layerName:String, timeScale:Number):void
KrewGameObject
 Inherited
setVertexColor(color1:int = 0, color2:int = 0, color3:int = 0, color4:int = 0):void
KrewActor
 Inherited
displayOrder の値でツリーをソート。 children が皆 KrewActor である前提。 actor.displayOrder = 1; のように設定した上で getLayer('hoge').sortDisplayOrder(); のように使う
KrewActor
 Inherited
KrewGameObject
 Inherited
KrewGameObject
 Inherited
stopBgm():void
KrewGameObject
 Inherited
stopListening(eventType:String):void
KrewGameObject
  
stopListeningToStateEvent(event:String):void
KrewStateMachine
 Inherited
stopSe():void
KrewGameObject
 Inherited
whiteIn(duration:Number = 0.33, startAlpha:Number = 1):void
KrewGameObject
 Inherited
whiteOut(duration:Number = 0.33, startAlpha:Number = 0):void
KrewGameObject
Protected Methods
 MethodDefined By
 Inherited
KrewActor
 Inherited
KrewActor
  
onDispose():void
[override]
KrewStateMachine
 Inherited
onRecycle():void
poolable = true な Actor が dispose されるタイミングで、 onDispose の代わりに呼ばれる
KrewActor
Property Detail
currentStateproperty
currentState:KrewState  [read-only]


Implementation
    public function get currentState():KrewState
VERBOSEproperty 
public static var VERBOSE:Boolean = true

If trace log is annoying you, set it false.

Constructor Detail
KrewStateMachine()Constructor
public function KrewStateMachine(stateDefList:Array = null, funcOwner:Object = null)

Usage:

             var fsm:KrewStateMachine = new KrewStateMachine([
                 {
                     id: "state_1",  // First element will be an initial state.
                     enter: onEnterFunc,
                     next: "state_2"  // Default next state is next element of this Array.
                 },
                          new YourCustomState(),  // Instead of Object, KrewState instance is OK.
                          {
                     id: "state_2",
                     children: [  // State can contain sub States.
                         { id: "state_2_a" },
                         { id: "state_2_b" },
                         {
                             id : "state_2_c",
                             listen: {event: "event_1", to: "state_4"},
                             guard : guardFunc
                         },
                         {
                             id: "state_2_d",
                             listen: [  // Array is also OK.
                                 {event: "event_2", to: "state_1"},
                                 {event: "event_3", to: "state_2"}
                             ]
                         }
                     ]
                 },
                 {
                     id: "state_3",
                     listen: {event: "event_1", to: "state_4"}
                 },
                 ...
             ]);
         

Parameters
stateDefList:Array (default = null) — Array of KrewState instances or definition objects.
 
funcOwner:Object (default = null) — If you speciify functions with name string, pass function-owner object.
Method Detail
addState()method
public function addState(stateDef:*, funcOwner:Object = null):void

Parameters

stateDef:*
 
funcOwner:Object (default = null)

See also

KrewState.addState
changeState()method 
public function changeState(stateId:String):void

Parameters

stateId:String

dumpDictionary()method 
public function dumpDictionary():void

dumpDictionaryVerbose()method 
public function dumpDictionaryVerbose():void

dumpListeningEvents()method 
public function dumpListeningEvents():void

dumpState()method 
public function dumpState(stateId:String):void

Parameters

stateId:String

dumpStateTree()method 
public function dumpStateTree():void

getState()method 
public function getState(stateId:String):KrewState

Parameters

stateId:String

Returns
KrewState
isState()method 
public function isState(stateName:String):Boolean

If given state is current state OR parent of current state, return true. For example, when current state is "A-sub", and it is child state of "A", both isState("A-sub") and isState("A") returns true. 現在の state が指定したものか、指定したものの子 state なら true を返す。 例えば現在の state "A-sub" が "A" の子 state であるとき、isState("A-sub") でも isState("A") でも true が返る。

Parameters

stateName:String

Returns
Boolean
listenToStateEvent()method 
public function listenToStateEvent(event:String):void

Parameters

event:String

onDispose()method 
override protected function onDispose():void

onUpdate()method 
override public function onUpdate(passedTime:Number):void

Parameters

passedTime:Number

stopListeningToStateEvent()method 
public function stopListeningToStateEvent(event:String):void

Parameters

event:String