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
-
.[](sym = "640x480") ⇒ Object
- ===スライドをテンプレート文字列から作成する スライドを所定の名称で生成する。利用できるのは以下の7種類 "320x240" 大きさは320x240ピクセル、背景は白色 "640x480" 大きさは640x480ピクセル、背景は白色(デフォルトのテンプレート) "800x600" 大きさは800x600ピクセル、背景は白色 "white" "640x480"と同一 "gray" 大きさは640x480ピクセル、背景は灰色([128,128,128,255]) "black" 大きさは640x480ピクセル、背景は黒色([0,0,0,255]) "half-white" 背景が半分透明な"white"([255,255,255,128]) sym
- テンプレートに対応した文字列 返却値
生成したスライド(Partsクラスインスタンス).
-
.[]=(sym, params) ⇒ Object
===スライドのテンプレートを追加する 指定できるテンプレートの内容は、Sprite.newメソッドの引数がそのまま使える(Hashクラスインスタンスとして渡す) また、追加として、:colorパラメータを使って塗りつぶす色を指定することが出来る。 (例):color=>Color sym:: テンプレート名 params:: 生成時のパラメータ.
-
.create(params = {}) ⇒ Object
- ===スライドを作成する スライド本体は、Partsクラスのインスタンス params
あとで書く.
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=>[255,0,0])) (例)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ピクセル、背景は灰色([128,128,128,255]) "black" 大きさは640x480ピクセル、背景は黒色([0,0,0,255]) "half-white" 背景が半分透明な"white"([255,255,255,128])
- 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 |
#clone ⇒ Object
93 94 95 |
# File 'lib/Miyako/EXT/slides.rb', line 93 def clone @@body[self.__id__].clone end |
#dispose ⇒ Object
===@bodyに登録したオブジェクトとは別に作成していたインスタンスを解放する
272 273 |
# File 'lib/Miyako/EXT/slides.rb', line 272 def dispose end |
#dup ⇒ Object
97 98 99 |
# File 'lib/Miyako/EXT/slides.rb', line 97 def dup @@body[self.__id__].dup end |
#hide ⇒ Object
193 194 195 |
# File 'lib/Miyako/EXT/slides.rb', line 193 def hide end |
#init_slide(template) ⇒ Object
===スライド情報を初期化する (例)init_slide(Slide.create(:size=>Size.new(320,240), :color=>[255,0,0])) (例)init_slide(Slide))
- template
元となるPartsクラスインスタンス(Slide.createメソッドで作成もしくはSlide.[]で取得できるテンプレートスライド)
131 132 133 134 135 136 |
# File 'lib/Miyako/EXT/slides.rb', line 131 def (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 (&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 (dst, &block) end |
#reset ⇒ Object
213 214 215 |
# File 'lib/Miyako/EXT/slides.rb', line 213 def 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 |
#show ⇒ Object
189 190 191 |
# File 'lib/Miyako/EXT/slides.rb', line 189 def show end |
#slide_body ⇒ Object
===スライド本体を返す スライド本体を直接制御するときに使う
- 返却値
スライド本体
141 142 143 |
# File 'lib/Miyako/EXT/slides.rb', line 141 def @@body[self.__id__] end |
#slide_hide ⇒ Object
241 242 243 244 |
# File 'lib/Miyako/EXT/slides.rb', line 241 def @@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 (&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 (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 @@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 @@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 @@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 @@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 @@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 @@body[self.__id__].update_animation if @@body[self.__id__] return self end |
#start ⇒ Object
205 206 207 |
# File 'lib/Miyako/EXT/slides.rb', line 205 def start end |
#stop ⇒ Object
209 210 211 |
# File 'lib/Miyako/EXT/slides.rb', line 209 def stop end |
#update ⇒ Object
197 198 199 |
# File 'lib/Miyako/EXT/slides.rb', line 197 def update end |
#update_animation ⇒ Object
201 202 203 |
# File 'lib/Miyako/EXT/slides.rb', line 201 def update_animation end |