前回はよそさまが作ってくれた素晴らしいインターフェースを採用するようなことをほざきましたが、そもそもコンテンツの構成も決まっていないのにUIを作ってしまうとひどい目に遭うということが経験上わかっているので、とりあえず一歩後退。ちゃんと構造を把握することに注力します。
前々回の懸案であった、「背景色が変更できない」という問題ですが、とりあえず解決。objectタグのparamでbgcolorを設定すると、色を変えられました。が、「HTMLタグで背景色設定を上書き」以外に、Actionscript上でもStageの背景色を設定できるはずなんですが、これができないんですよね。
//ステージサイズ設定 [SWF(width = "600", height = "700",backgroundColor="#ffffff")]
上記の設定でいいと思うんですが、なぜか効かない。詳しい人がいたら、教えてください。やっぱり、人の書いたプログラムをカスタマイズすると、わからないことが出てくるなあ。
で、できたのがコレです。ほとんど進歩はありませんが、下記の点で進歩がありました。
- 背景色が設定できた
- キーボードナビゲーションが逆だった(前回:右→進む・左→戻る)のを直した(今回:右→戻る・左→進む)
- 段組の方法がわかった
[flash https://takahashifumiki.com/wp-content/uploads/2009/01/pagenator1.swf w=600 h=700 p={bgcolor;#ffffff}]
ちょっと高さを取りすぎましたが、まあ、それは追々検討します。たぶん、閲覧者のディスプレイサイズに応じて変更すればいいだけの話です。
あと、flashの最下部にデバッグ用の文字列が出たりしますが、あんまり気にしないでください。こういう原理でノンブルやカラムを再現することができると思います。
で、今回非常につまずき、なおかついまだに解決できていないのが、以下の問題です。
- テキストを入れたコンテナの順序を変更できない
- そもそもコンテナ(本でいう「ページ」にあたるもの)がなんなのかわからない。おそらくSpriteなはずだが、アクセスできない。というか、アクセスできてもプロパティのいじり方がわからない
- textflowオブジェクトを各コンテナに割り当てているロジックがよくわからない
ようするに、こうなっちゃうんですよ。
縦書きの場合は右→左に読んでいくので、奇数ページは右に、偶数ページは左になるんですが、それが逆になっちゃうんですね。
Stageのプロパティの問題かと思い、StageAlignのプロパティをTOP_RIGHTにしてみましたが、全然関係ないし。これは由々しき問題ですね。
現状では、テキストを入れているコンテナのプロパティをいじる方法さえわかれば、多少強引にレイアウトすることはできると思うんですが……
しばらくたてば情報も充実してくると思いますが、とりあえずはAdobeのフォーラムで質問してみるとします。
今後の予定と進捗
今、正規表現を本格的に勉強しています。PHPのDOMで扱う方法も検討していますが、細かいところで正規表現が必要になってくるので、勉強中です。たぶん、縦中横のマークアップで正規表現が必要になってくるはず。
[429] [429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)
FlashのExternalInterfaceはまだ手つかずですが、これは一日でできると思います。コールバック関数による引数の受け渡しだけだと思うので。
Flashのサイズはどれぐらいにしたらいいのかというのは悩ましいところですが、縦書きの場合、高さの設定がクリティカルかなと思います。ディスプレイの高さの最大公約数を取るようなやり方は賢くないでしょう。Firefoxでツールバー入れまくってる人もいるでしょうし、IEも色々使うとツールバーの高さがすごいことになります。まあ、これはなんとかなると思います。たぶん、onEnterFrameでstageの高さを監視し続けるか、Javascriptで制御すればいいはず。resizeイベント取るのは面倒くさいですが、まあ、縦書きの未来のためにやりたいと思います。
パフォーマンスの問題としては、フォントファイルのサイズのでかさ。これをなんとかしてキャッシュしたい。Flashではなく、Apacheで制御できそうな気がするけど、5Mはデカすぎるのかな?
あと、僕のブログはWordPressのプラグインをものすごい沢山入れており、実験の意味を込めてすべての機能を有効にしているんですが、非道いときはHTMLの取得だけで50秒ぐらいかかるときがあります。
てっきりxreaのせいかと思い、同じIPアドレスの方々のサイトを見てみましたが、僕のサイトが出色の遅さですね。別にxreaのせいじゃなかった。Yslowでも40点だし。赤点じゃないか。
パフォーマンス向上のアイデアは幾つかあるので、暇になったらやりたいと思います。たぶん、データベースアクセスとテキスト全文解析の回数が多すぎるんだろうな。あと、アフィリエイト系は全部外そうと思います。月2000円とかいらないし。
というわけで、今回はあまり実りあるご報告をできませんでしたが、乞うご期待。