ケータイFlashでテキストを縦スクロール表示させてみよう

By ookura - 09/12/21 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

携帯Flashでダイナミックテキストの中身が動的に変わる場合、文字が長いとテキストが切れてしまいます。
 
あらかじめテキストの文字数を制限したりしなくても、ダイナミックテキストのscrollプロパティを変更することで簡単にテキストを縦スクロールさせて内容を表示させることができます。
 
scrollプロパティはFlashLite1.1でも使用可能です。
 

文法

FlashLite1.1ではダイナミックテキストにインスタンス名を設定できませんが、変数名を指定することができます。
 

テキスト変数名.scroll

テキストのプロパティ「scroll」の値を増減させることでテキストがスクロールして表示されます。
 

テキスト変数名.maxscroll

テキストのプロパティ「maxscroll」でスクロール可能な行数が取得できますが、
scrollプロパティの値がmaxscrollを超えたり1未満になったりしてエラーになることはないので特に条件付けをする必要はありません。
 
 

制作手順

・パブリッシュバージョンはFlashLite1.1とします。
 
・ステージサイズは240px×240pxとします。
 
・ダイナミックテキストを作成し、「_等幅」12pxで複数行にしておきます。
「テキストの周囲にボーダーを表示」をチェックしておくとテキストの背景色が白になります。
背景と同じ色にしたい場合はボーダーをOFFに、任意の色にしたい場合はさらにテキストの下レイヤーにシェイプを配置するとよいです。
 
・actionレイヤーとlabelレイヤーを作成し、3フレーム目まで広げます。
actionレイヤーとlabelレイヤーのみキーフレームにします。
 
・labelレイヤーの1フレーム目のフレームラベルは「init」,3フレーム目は「rollOver」とします。
 
・actionレイヤーにフレームアクションを記述します。
2フレーム目

// ボタンフォーカスをOFF
_focusrect = false;
// ダイナミックテキストの内容を設定
scrollText = "サンプルテキスト\n";
(中略)
scrollText = scrollText add "サンプルテキストサンプルテキスト\n";
// 初期スクロールを実行
set("currentBtn", 1);
call("rollOver");
stop();

※初回に一度だけスクロール処理を呼び出すことで「最初に上をクリックした場合の不具合」を防止することができます。
 
 
3フレーム目

// ボタンの上下移動を取得
if (currentBtn == 1) {
    if (scrollId == 2) {
        scrollFlg = "up";
    } else {
        scrollFlg = "down";
    }
} else if (currentBtn == 2) {
    if (scrollId == 3) {
        scrollFlg = "up";
    } else {
        scrollFlg = "down";
    }
} else if (currentBtn == 3) {
    if (scrollId == 1) {
        scrollFlg = "up";
    } else {
        scrollFlg = "down";
    }
}
scrollId = currentBtn;
// テキストスクロールを実行
if (scrollFlg eq "up") {
    scrollText.scroll--;
}
if (scrollFlg eq "down") {
    scrollText.scroll++;
}

※「++」は現在の値に1増やす、「–」は現在の値から1減らす、の意味です。
 
・ヒットエリアにのみシェイプを配置した隠しボタンを3つ配置し、以下のスクリプトを記述します。
ボタン1

on (rollOver) {
    set("currentBtn", 1);
    call("rollOver");
}

ボタン2

on (rollOver) {
    set("currentBtn", 2);
    call("rollOver");
}

ボタン3

on (rollOver) {
    set("currentBtn", 3);
    call("rollOver");
}

 
・パブリッシュして完成です。
 
 

実行例

実行例はこちらからご確認下さい。

URLをメールで送る
http://ookura.tanikaze.com/Sample/post5034/
 
 

サンプルファイル

sample5034.zip
上記サンプルのFlashファイル一式です。
 
 

関連ページ

ケータイFlash関連の記事一覧