Archive for 2月, 2009

TextField へのスクロールバーの追加

通知表ジェネレータにて縮小表示時に文字が読みづらいためサイズ変更したところ1画面に収まらなくなってしまいました。

そこで、スクロールバーを表示させるためにUIScrollBarというコンポーネントを使用してみました。

コンポーネントを使用するためには、[ウィンドウ]→[コンポーネント]で、コンポーネントウィンドウを開き、UIScrollBarをドラッグして、TextFieldの端へ配置します。

(この際にオブジェクトへ吸着にチェックが入っていることを確認しておいてください)

右端側へ吸着させれば垂直の、下部に吸着させれば水平のスクロールバーとなります。

あとは、TextFieldに収まりきらないテキストがセットされると自動的にスクロールバーが表示されます。

ただ、方法によってはUIScrollBarがうまく表示されない場合があります。

  1. Varsからテキストをセットした場合
  2. TextFieldの変数名とインスタンス名が同じであった場合

1は、TextFieldに変数名を設定し、変数にテキストを代入することによって内容を切り替えていた場合にスクロールバーがうまく表示されません。

TextFieldにインスタンス名を設定し

[TextFieldのインスタンス名].text = “代入するテキスト”;

というようにtextプロパティからテキストをセットする必要があります。

2はインスタンス名と変数名が同じ場合に変数への代入が優先されてスクロールバーが出ないおそれがあるためです。

TextFieldにインスタンス名をつけ、 ‘TextField.text’プロパティを使ってテキストを設定してください。TextFieldにはインスタンス名に加えて変数名も使用できます が、スクリプトに混乱を生じるおそれがありますので、変数名は削除することをお勧めします。

ちなみに、縦横50%のサイズに縮小した場合にスクロールバーが細すぎるため、幅を増やせないかとあれこれ挑戦してみましたが、配置時にサイズ変更をしても、実行してみると元のサイズ(幅16pix)で表示されてしまいます。

Flash CS3 ドキュメンテーションを確認すると

UIScrollBar コンポーネントは、オーサリング時にも実行時にも縦横に変形させることができます。ただし、垂直方向の UIScrollBar の幅、水平方向の UIScrollBar の高さを変更することはできません。

とのことでした。好きな幅に設定できるといいんですけどね。

好みの形にするには自作するしかないようです。

,

No Comments

ダイナミックテキスト(デバイスフォント)へのマスク指定

通知表ジェネレータの表紙には、本人の名前がセットされるようにTextFieldが配置されています。

ページめくりのエフェクトの為、表紙にはマスクがかかっており、裏ページにあわせてマスクが移動することで表紙がだんだん隠れていくのですが・・・・

いざパブリッシュしてみると名前欄が表示されていません。

調べてみたところ、デバイスフォントへのマスク指定はスクリプト側から

MovieClip.setMask()メソッド

にて指定する必要があるようです。

ただ単に動かないマスクであれば良かったのですが、今回は動作の絡んだもののため、仕方なくめくり始めると字が消える形でごまかしてしまいました。

そういえばデバイスフォントの場合、文字の回転をした場合も文字が非表示になってしまうんですよね。

(フォントを埋め込むと正常に回転出来ます)

No Comments

通知表ジェネレータ

tsuchihyo_sampleふと思いつきで通知表ジェネレータを作ってみました。

ページめくりのエフェクトをつけるのは何年ぶりでしょうか・・・?

しかし学期末になると通知表の結果にドキドキしたものですね。

通知表の最後には必ず「所見欄」という先生から見た生徒の印象や注意する部分が書いてあります。

一見いいことを書いてもらっているようですが、実は言いづらいことを言い換えて記述しているだけの場合も多々あるようです。

そんな先生の本音を垣間見ることが出来る通知表ジェネレータ、一度試してみてください。

, ,

No Comments

ぐるなびWebサービスのテクニック

こんにちは、メガネダイスキー寺田です。

先日、のみテレ(http://nomikai.tv/)にお店検索を作成した際に、ぐるなびのWebサービスを使わせていただきました。

ホットペッパーや食べログのWebAPIも選択肢にありましたが、ぐるなびを選んだ理由は店舗登録数の多さですね。

http://api.gnavi.co.jp/api/service.htm

作成途中で気づいた点があるので書き綴ってみます。

設備・サービスの応用検索

お店を検索する際、設備・サービスを検索項目に指定することができます。

設備・サービスの項目の説明には、

設備・サービスの文字列をUTF-8で URLエンコードすること

とあのですが、実はこの項目は、複数指定することができます。

  • 半角スペースでAND検索
  • 半角バーティカルライン(|)でOR検索
  • 半角括弧でグループ化

例えば、

個室 (禁煙席|カラオケ)

とすることにより、

個室がありかつ、禁煙席があるかカラオケができる店舗

を、検索することができます。

設備・サービスはマスタを提供していないので、ある程度結果を分析して、どのような設備・サービスが登録されているのか調べないといけません。

今後は、ホットペッパーなどのWebAPIも使って、便利なサービスを作っていきたいと思います。

No Comments

外部からの参照を禁止されているサイトからswfへの画像読み込み

新聞一面ジェネレータではswf自体をここのサーバに設置して、

  1. JavaScriptによって出力されたタグからswfを読み込み
  2. swfから指定されたURLの画像を読み込み

という動作をしています。

当初FireFoxから確認した際には気づかなかったのですが、IEで見た場合、外部からの画像ファイル参照を禁止されているブログ等にアップロードした画像ファイルを読み込めないという現象を発見しました。

どうも、IEから別サーバのswfを表示させたところ、画像読み込み時のリファラがswfが設置されているドメインとなるようです。(IE6,7共)

さらに検証してみるとsafari3.2.1では問題なく表示されました。

結局、そのままIEで表示できるようには調整できなかったので、別サーバにアップした画像の利用、もしくは許可されたファイル名の画像を利用していただくように案内する形にしかならなかったのですが・・・

色々調べてみるとFireFoxのFlashPlayerではリファラは送信していない、もしくはswfを表示しているページ自体のURLが送信される模様。

おそらくSafariでもそうなのでしょう。

以前であれば

Flash Player において任意の Referer ヘッダが送信可能

というFlashPlayerのバグを利用したリファラ偽装も出来たそうですが、現在は修正済みです。

でも、これ、Flashを利用したバナーからリンクされた場合、リンク元が正確にとれない不具合とかありそうですね・・・

ブログパーツを使用した販促なんかの場合どうやってログ解析してるんでしょうか?

No Comments