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
113
114
115
116
117
|
# File 'lib/Miyako/EXT/slides.rb', line 113
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クラスインスタンス)
75
76
77
|
# File 'lib/Miyako/EXT/slides.rb', line 75
def Slide.[](sym = "640x480")
return Slide.create(@@templates[sym])
end
|
.[]=(sym, params) ⇒ Object
スライドのテンプレートを追加する
指定できるテンプレートの内容は、Sprite.newメソッドの引数がそのまま使える(Hashクラスインスタンスとして渡す) また、追加として、:colorパラメータを使って塗りつぶす色を指定することが出来る。 (例):color=>Color
- sym
-
テンプレート名
- params
-
生成時のパラメータ
85
86
87
|
# File 'lib/Miyako/EXT/slides.rb', line 85
def Slide.[]=(sym, params)
@@templates[sym] = params
end
|
.create(params = {}) ⇒ Object
スライドを作成する
スライド本体は、Partsクラスのインスタンス
- params
-
あとで書く
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# 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]
if tmp[:file]
sprite = Sprite.new(:file=>tmp[:file], :type=>tmp[:type])
if params[:size]
sprite.ow = size[0]
sprite.oh = size[1]
end
return Parts.new(tmp[:size]).tap{|obj| obj[:___base___] = sprite}
end
return Parts.new(tmp[:sprite].size).tap{|obj| obj[:___base___] = tmp[:sprite]} if tmp[:sprite]
return Parts.new(tmp[:size]).tap{|obj| obj[:___base___] = Sprite.new(tmp).fill(tmp[:color])}
end
|
Instance Method Details
#[](title) ⇒ Object
名前に対応したパーツを取得する
- title
-
取得したいパーツに対応したシンボル
- 返却値
-
シンボルに対応したパーツ
154
155
156
|
# File 'lib/Miyako/EXT/slides.rb', line 154
def [](title)
return @@body[self.__id__][title]
end
|
#[]=(title, objs) ⇒ Object
パーツに名前を割り付けて設定する
- title
-
取得したいパーツに対応したシンボル
- objs
-
(1)シンボルに対応させるパーツ(スライドにスナップする)
(2)パーツと、スナップさせるパーツの名前(シンボル)
- 返却値
-
自分自身を返す
163
164
165
166
|
# File 'lib/Miyako/EXT/slides.rb', line 163
def []=(title, objs)
@@body[self.__id__][title] = objs
return self
end
|
#__getobj__ ⇒ Object
101
102
103
|
# File 'lib/Miyako/EXT/slides.rb', line 101
def __getobj__
@@body[self.__id__]
end
|
#__setobj__(obj) ⇒ Object
123
124
125
|
# File 'lib/Miyako/EXT/slides.rb', line 123
def __setobj__(obj)
@@body[self.__id__] = obj
end
|
93
94
95
|
# File 'lib/Miyako/EXT/slides.rb', line 93
def clone
@@body[self.__id__].clone
end
|
@bodyに登録したオブジェクトとは別に作成していたインスタンスを解放する
272
273
|
# File 'lib/Miyako/EXT/slides.rb', line 272
def dispose
end
|
97
98
99
|
# File 'lib/Miyako/EXT/slides.rb', line 97
def dup
@@body[self.__id__].dup
end
|
193
194
195
|
# File 'lib/Miyako/EXT/slides.rb', line 193
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.[]で取得できるテンプレートスライド)
131
132
133
134
135
136
|
# File 'lib/Miyako/EXT/slides.rb', line 131
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
89
90
91
|
# File 'lib/Miyako/EXT/slides.rb', line 89
def initialize(obj)
__setobj(obj)
end
|
#marshal_dump ⇒ Object
105
106
107
|
# File 'lib/Miyako/EXT/slides.rb', line 105
def marshal_dump
Marshal.dump(@@body[self.__id__])
end
|
#marshal_load(obj) ⇒ Object
109
110
111
|
# File 'lib/Miyako/EXT/slides.rb', line 109
def marshal_load(obj)
Marshal.load(obj)
end
|
#render(&block) ⇒ Object
スライドを画面に描画する
単純にslide_renderメソッドを呼び出し、結果を返すだけのテンプレートメソッド このメソッドを記述し直すことにより、柔軟なrenderを行える ブロックを渡すと、スライド,画面側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画面側SpriteUnit|となる。
- 返却値
-
自分自身を返す
174
175
176
|
# File 'lib/Miyako/EXT/slides.rb', line 174
def render(&block)
return slide_render(&block)
end
|
#render_to(dst, &block) ⇒ Object
スライドを画像に描画する
単純にslide_render_toメソッドを呼び出し、結果を返すだけのテンプレートメソッド このメソッドを記述し直すことにより、柔軟なrenderを行える ブロックを渡すと、スライド,画像側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画像側SpriteUnit|となる。
- dst
-
描画先画像(Spriteクラスインスタンスなど)
- 返却値
-
自分自身を返す
185
186
187
|
# File 'lib/Miyako/EXT/slides.rb', line 185
def render_to(dst, &block)
return slide_render_to(dst, &block)
end
|
213
214
215
|
# File 'lib/Miyako/EXT/slides.rb', line 213
def reset
slide_reset
end
|
#respond_to?(m) ⇒ Boolean
119
120
121
|
# File 'lib/Miyako/EXT/slides.rb', line 119
def respond_to?(m)
@@body[self.__id__].respond_to?(m)
end
|
189
190
191
|
# File 'lib/Miyako/EXT/slides.rb', line 189
def show
slide_show
end
|
#slide_body ⇒ Object
スライド本体を返す
スライド本体を直接制御するときに使う
- 返却値
-
スライド本体
141
142
143
|
# File 'lib/Miyako/EXT/slides.rb', line 141
def slide_body
@@body[self.__id__]
end
|
#slide_hide ⇒ Object
241
242
243
244
|
# File 'lib/Miyako/EXT/slides.rb', line 241
def slide_hide
@@body[self.__id__].hide if @@body[self.__id__]
return self
end
|
#slide_render(&block) ⇒ Object
スライドを画面に描画する
ブロックを渡すと、スライド,画面側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。 ブロックの引数は、|スライド側SpriteUnit,画面側SpriteUnit|となる。
- 返却値
-
自分自身を返す
221
222
223
224
|
# File 'lib/Miyako/EXT/slides.rb', line 221
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クラスインスタンスなど)
- 返却値
-
自分自身を返す
231
232
233
234
|
# File 'lib/Miyako/EXT/slides.rb', line 231
def slide_render_to(dst, &block)
@@body[self.__id__].render(dst, &block) if @@body[self.__id__]
return self
end
|
#slide_reset ⇒ Object
266
267
268
269
|
# File 'lib/Miyako/EXT/slides.rb', line 266
def slide_reset
@@body[self.__id__].reset if @@body[self.__id__]
return self
end
|
#slide_show ⇒ Object
236
237
238
239
|
# File 'lib/Miyako/EXT/slides.rb', line 236
def slide_show
@@body[self.__id__].show if @@body[self.__id__]
return self
end
|
#slide_start ⇒ Object
256
257
258
259
|
# File 'lib/Miyako/EXT/slides.rb', line 256
def slide_start
@@body[self.__id__].start if @@body[self.__id__]
return self
end
|
#slide_stop ⇒ Object
261
262
263
264
|
# File 'lib/Miyako/EXT/slides.rb', line 261
def slide_stop
@@body[self.__id__].stop if @@body[self.__id__]
return self
end
|
#slide_update ⇒ Object
246
247
248
249
|
# File 'lib/Miyako/EXT/slides.rb', line 246
def slide_update
@@body[self.__id__].update if @@body[self.__id__]
return self
end
|
#slide_update_animation ⇒ Object
251
252
253
254
|
# File 'lib/Miyako/EXT/slides.rb', line 251
def slide_update_animation
@@body[self.__id__].update_animation if @@body[self.__id__]
return self
end
|
205
206
207
|
# File 'lib/Miyako/EXT/slides.rb', line 205
def start
slide_start
end
|
209
210
211
|
# File 'lib/Miyako/EXT/slides.rb', line 209
def stop
slide_stop
end
|
197
198
199
|
# File 'lib/Miyako/EXT/slides.rb', line 197
def update
slide_update
end
|
#update_animation ⇒ Object
201
202
203
|
# File 'lib/Miyako/EXT/slides.rb', line 201
def update_animation
slide_update_animation
end
|