Module: Miyako::Slide
- Includes:
- Layout
- Defined in:
- lib/Miyako/EXT/slides.rb
Overview
スライドを構成するモジュール
Mixinして使用する 使用するには、initializeメソッドの定義内で、init_slideメソッドを呼び出す必要がある ただし、インスタンス変数として、@bodyを予約済み
Constant Summary
collapse
- @@templates =
{ }
- @@body =
[]
Class Method Summary
collapse
Instance Method Summary
collapse
-
#[](title) ⇒ Object
名前に対応したパーツを取得する title:: 取得したいパーツに対応したシンボル 返却値:: シンボルに対応したパーツ.
-
#[]=(title, objs) ⇒ Object
パーツに名前を割り付けて設定する title:: 取得したいパーツに対応したシンボル objs:: (1)シンボルに対応させるパーツ(スライドにスナップする) (2)パーツと、スナップさせるパーツの名前(シンボル) 返却値:: 自分自身を返す.
-
#__getobj__ ⇒ Object
-
#__setobj__(obj) ⇒ Object
-
#clone ⇒ Object
-
#dispose ⇒ Object
@bodyに登録したオブジェクトとは別に作成していたインスタンスを解放する.
-
#dup ⇒ Object
-
#hide ⇒ Object
-
#init_slide(template) ⇒ Object
スライド情報を初期化する (例)init_slide(Slide.create(:size=>Size.new(320,240), :color=>)) (例)init_slide(Slide)) template:: 元となるPartsクラスインスタンス(Slide.createメソッドで作成もしくはSlide.[]で取得できるテンプレートスライド).
-
#initialize(obj) ⇒ Object
-
#marshal_dump ⇒ Object
-
#marshal_load(obj) ⇒ Object
-
#method_missing(m, *args, &block) ⇒ Object
-
#render(&block) ⇒ Object
スライドを画面に描画する 単純にslide_renderメソッドを呼び出し、結果を返すだけのテンプレートメソッド このメソッドを記述し直すことにより、柔軟なrenderを行える ブロックを渡すと、スライド,画面側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画面側SpriteUnit|となる。 返却値:: 自分自身を返す.
-
#render_to(dst, &block) ⇒ Object
スライドを画像に描画する 単純にslide_render_toメソッドを呼び出し、結果を返すだけのテンプレートメソッド このメソッドを記述し直すことにより、柔軟なrenderを行える ブロックを渡すと、スライド,画像側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画像側SpriteUnit|となる。 dst:: 描画先画像(Spriteクラスインスタンスなど) 返却値:: 自分自身を返す.
-
#reset ⇒ Object
-
#respond_to?(m) ⇒ Boolean
-
#show ⇒ Object
-
#slide_body ⇒ Object
スライド本体を返す スライド本体を直接制御するときに使う 返却値:: スライド本体.
-
#slide_hide ⇒ Object
-
#slide_render(&block) ⇒ Object
スライドを画面に描画する ブロックを渡すと、スライド,画面側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画面側SpriteUnit|となる。 返却値:: 自分自身を返す.
-
#slide_render_to(dst, &block) ⇒ Object
スライドを画像に描画する ブロックを渡すと、スライド,画像側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画像側SpriteUnit|となる。 dst:: 描画先画像(Spriteクラスインスタンスなど) 返却値:: 自分自身を返す.
-
#slide_reset ⇒ Object
-
#slide_show ⇒ Object
-
#slide_start ⇒ Object
-
#slide_stop ⇒ Object
-
#slide_update ⇒ Object
-
#slide_update_animation ⇒ Object
-
#start ⇒ Object
-
#stop ⇒ Object
-
#update ⇒ Object
-
#update_animation ⇒ Object
Methods included from Layout
#add_snap_child, #bottom, #bottom!, #broad_rect, #center, #center!, #centering, #centering!, #copy_layout, #delete_snap_child, #get_snap_children, #get_snap_sprite, #h, #include_snap_child?, #init_layout, #layout_dispose, #left, #left!, #middle, #middle!, #move, #move!, #move_to, #move_to!, #on_move, #outside_bottom, #outside_bottom!, #outside_left, #outside_left!, #outside_right, #outside_right!, #outside_top, #outside_top!, #pos, #rect, #relative_move_to, #relative_move_to!, #reset_snap, #right, #right!, #segment, #set_layout_size, #set_snap_children, #set_snap_sprite, #size, #snap, #top, #top!, #update_layout, #update_layout_position, #w, #x, #y
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
104
105
106
107
108
|
# File 'lib/Miyako/EXT/slides.rb', line 104
def method_missing(m, *args, &block)
puts "missing: #{m}"
return @@body[self.__id__].__send__(m, *args, &block) if @@body[self.__id__].methods.include?(m)
@@body[self.__id__].method_missing(m, *args, &block)
end
|
Class Method Details
.[](sym = "640x480") ⇒ Object
スライドをテンプレート文字列から作成する
スライドを所定の名称で生成する。利用できるのは以下の7種類 “320x240” 大きさは320x240ピクセル、背景は白色 “640x480” 大きさは640x480ピクセル、背景は白色(デフォルトのテンプレート) “800x600” 大きさは800x600ピクセル、背景は白色 “white” “640x480”と同一 “gray” 大きさは640x480ピクセル、背景は灰色() “black” 大きさは640x480ピクセル、背景は黒色() “half-white” 背景が半分透明な“white”()
- sym
-
テンプレートに対応した文字列
- 返却値
-
生成したスライド(Partsクラスインスタンス)
66
67
68
|
# File 'lib/Miyako/EXT/slides.rb', line 66
def Slide.[](sym = "640x480")
return Slide.create(@@templates[sym])
end
|
.[]=(sym, params) ⇒ Object
スライドのテンプレートを追加する
指定できるテンプレートの内容は、Sprite.newメソッドの引数がそのまま使える(Hashクラスインスタンスとして渡す) また、追加として、:colorパラメータを使って塗りつぶす色を指定することが出来る。 (例):color=>Color
- sym
-
テンプレート名
- params
-
生成時のパラメータ
76
77
78
|
# File 'lib/Miyako/EXT/slides.rb', line 76
def Slide.[]=(sym, params)
@@templates[sym] = params
end
|
.create(params = {}) ⇒ Object
スライドを作成する
スライド本体は、Partsクラスのインスタンス
- params
-
あとで書く
35
36
37
38
39
40
41
42
43
|
# File 'lib/Miyako/EXT/slides.rb', line 35
def Slide.create(params = {})
tmp = params.dup
tmp[:size] ||= Size.new(640, 480)
tmp[:type] ||= :ac
tmp[:color] ||= Color[:white]
tmp[:empty] ||= false
return Parts.new(tmp[:size]) if tmp[:empty]
return Parts.new(tmp[:size]).tap{|obj| obj[:___base___] = Sprite.new(tmp).fill(tmp[:color])}
end
|
Instance Method Details
#[](title) ⇒ Object
名前に対応したパーツを取得する
- title
-
取得したいパーツに対応したシンボル
- 返却値
-
シンボルに対応したパーツ
145
146
147
|
# File 'lib/Miyako/EXT/slides.rb', line 145
def [](title)
return @@body[self.__id__][title]
end
|
#[]=(title, objs) ⇒ Object
パーツに名前を割り付けて設定する
- title
-
取得したいパーツに対応したシンボル
- objs
-
(1)シンボルに対応させるパーツ(スライドにスナップする)
(2)パーツと、スナップさせるパーツの名前(シンボル)
- 返却値
-
自分自身を返す
154
155
156
157
|
# File 'lib/Miyako/EXT/slides.rb', line 154
def []=(title, objs)
@@body[self.__id__][title] = objs
return self
end
|
#__getobj__ ⇒ Object
92
93
94
|
# File 'lib/Miyako/EXT/slides.rb', line 92
def __getobj__
@@body[self.__id__]
end
|
#__setobj__(obj) ⇒ Object
114
115
116
|
# File 'lib/Miyako/EXT/slides.rb', line 114
def __setobj__(obj)
@@body[self.__id__] = obj
end
|
84
85
86
|
# File 'lib/Miyako/EXT/slides.rb', line 84
def clone
@@body[self.__id__].clone
end
|
@bodyに登録したオブジェクトとは別に作成していたインスタンスを解放する
263
264
|
# File 'lib/Miyako/EXT/slides.rb', line 263
def dispose
end
|
88
89
90
|
# File 'lib/Miyako/EXT/slides.rb', line 88
def dup
@@body[self.__id__].dup
end
|
184
185
186
|
# File 'lib/Miyako/EXT/slides.rb', line 184
def hide
slide_hide
end
|
#init_slide(template) ⇒ Object
スライド情報を初期化する
(例)init_slide(Slide.create(:size=>Size.new(320,240), :color=>)) (例)init_slide(Slide))
- template
-
元となるPartsクラスインスタンス(Slide.createメソッドで作成もしくはSlide.[]で取得できるテンプレートスライド)
122
123
124
125
126
127
|
# File 'lib/Miyako/EXT/slides.rb', line 122
def init_slide(template)
init_layout
@@body[self.__id__] = template
set_layout_size(*(@@body[self.__id__].size))
@@body[self.__id__].snap(self)
end
|
#initialize(obj) ⇒ Object
80
81
82
|
# File 'lib/Miyako/EXT/slides.rb', line 80
def initialize(obj)
__setobj(obj)
end
|
#marshal_dump ⇒ Object
96
97
98
|
# File 'lib/Miyako/EXT/slides.rb', line 96
def marshal_dump
Marshal.dump(@@body[self.__id__])
end
|
#marshal_load(obj) ⇒ Object
100
101
102
|
# File 'lib/Miyako/EXT/slides.rb', line 100
def marshal_load(obj)
Marshal.load(obj)
end
|
#render(&block) ⇒ Object
スライドを画面に描画する
単純にslide_renderメソッドを呼び出し、結果を返すだけのテンプレートメソッド このメソッドを記述し直すことにより、柔軟なrenderを行える ブロックを渡すと、スライド,画面側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画面側SpriteUnit|となる。
- 返却値
-
自分自身を返す
165
166
167
|
# File 'lib/Miyako/EXT/slides.rb', line 165
def render(&block)
return slide_render(&block)
end
|
#render_to(dst, &block) ⇒ Object
スライドを画像に描画する
単純にslide_render_toメソッドを呼び出し、結果を返すだけのテンプレートメソッド このメソッドを記述し直すことにより、柔軟なrenderを行える ブロックを渡すと、スライド,画像側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画像側SpriteUnit|となる。
- dst
-
描画先画像(Spriteクラスインスタンスなど)
- 返却値
-
自分自身を返す
176
177
178
|
# File 'lib/Miyako/EXT/slides.rb', line 176
def render_to(dst, &block)
return slide_render_to(dst, &block)
end
|
204
205
206
|
# File 'lib/Miyako/EXT/slides.rb', line 204
def reset
slide_reset
end
|
#respond_to?(m) ⇒ Boolean
110
111
112
|
# File 'lib/Miyako/EXT/slides.rb', line 110
def respond_to?(m)
@@body[self.__id__].respond_to?(m)
end
|
180
181
182
|
# File 'lib/Miyako/EXT/slides.rb', line 180
def show
slide_show
end
|
#slide_body ⇒ Object
スライド本体を返す
スライド本体を直接制御するときに使う
- 返却値
-
スライド本体
132
133
134
|
# File 'lib/Miyako/EXT/slides.rb', line 132
def slide_body
@@body[self.__id__]
end
|
#slide_hide ⇒ Object
232
233
234
235
|
# File 'lib/Miyako/EXT/slides.rb', line 232
def slide_hide
@@body[self.__id__].hide if @@body[self.__id__]
return self
end
|
#slide_render(&block) ⇒ Object
スライドを画面に描画する
ブロックを渡すと、スライド,画面側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画面側SpriteUnit|となる。
- 返却値
-
自分自身を返す
212
213
214
215
|
# File 'lib/Miyako/EXT/slides.rb', line 212
def slide_render(&block)
@@body[self.__id__].render(&block) if @@body[self.__id__]
return self
end
|
#slide_render_to(dst, &block) ⇒ Object
スライドを画像に描画する
ブロックを渡すと、スライド,画像側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画像側SpriteUnit|となる。
- dst
-
描画先画像(Spriteクラスインスタンスなど)
- 返却値
-
自分自身を返す
222
223
224
225
|
# File 'lib/Miyako/EXT/slides.rb', line 222
def slide_render_to(dst, &block)
@@body[self.__id__].render(dst, &block) if @@body[self.__id__]
return self
end
|
#slide_reset ⇒ Object
257
258
259
260
|
# File 'lib/Miyako/EXT/slides.rb', line 257
def slide_reset
@@body[self.__id__].reset if @@body[self.__id__]
return self
end
|
#slide_show ⇒ Object
227
228
229
230
|
# File 'lib/Miyako/EXT/slides.rb', line 227
def slide_show
@@body[self.__id__].show if @@body[self.__id__]
return self
end
|
#slide_start ⇒ Object
247
248
249
250
|
# File 'lib/Miyako/EXT/slides.rb', line 247
def slide_start
@@body[self.__id__].start if @@body[self.__id__]
return self
end
|
#slide_stop ⇒ Object
252
253
254
255
|
# File 'lib/Miyako/EXT/slides.rb', line 252
def slide_stop
@@body[self.__id__].stop if @@body[self.__id__]
return self
end
|
#slide_update ⇒ Object
237
238
239
240
|
# File 'lib/Miyako/EXT/slides.rb', line 237
def slide_update
@@body[self.__id__].update if @@body[self.__id__]
return self
end
|
#slide_update_animation ⇒ Object
242
243
244
245
|
# File 'lib/Miyako/EXT/slides.rb', line 242
def slide_update_animation
@@body[self.__id__].update_animation if @@body[self.__id__]
return self
end
|
196
197
198
|
# File 'lib/Miyako/EXT/slides.rb', line 196
def start
slide_start
end
|
200
201
202
|
# File 'lib/Miyako/EXT/slides.rb', line 200
def stop
slide_stop
end
|
188
189
190
|
# File 'lib/Miyako/EXT/slides.rb', line 188
def update
slide_update
end
|
#update_animation ⇒ Object
192
193
194
|
# File 'lib/Miyako/EXT/slides.rb', line 192
def update_animation
slide_update_animation
end
|