Categories: ActionScript3.0

[ActionScript3.0]Flashで複数行のテキストを表示するリストボックスを作ってみた。

Flashで複数行のテキストを表示するリストボックスを作ってみた。
こんなものがあった。
リストボックスのように使えて、複数行つかえるというのだ!
これは便利なフラグだ。
いざ、利用しようとしたら・・・
AS2.0環境で作られてたのでAS3.0では使えんかった・・・
てことで、AS3.0で書き直して作ってみた。


[結果]
作成物を以下に示す。
サンプル – multilinelistbox.swf
ソース – multilinelistbox.zip

※10/03/25追記:現在削除されてしまった為残っていないのでソースだけ書いときます。

package
{
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.net.URLRequest;
import flash.text.StyleSheet;
import fl.containers.ScrollPane;
import flash.events.MouseEvent;
import flash.net.navigateToURL;
import flash.text.TextFieldAutoSize;
/**
* 複数行リストボックス生成
*/public class MultilineListbox extends Sprite {
private var url:Array = new Array();
private var contents:MovieClip = new MovieClip();
private var sp:ScrollPane;
public function MultilineListbox ()
{
}
public function makeListbox (basis_sp:ScrollPane, data_array:Array, hovercolor:String = "#499300", markflag:Boolean = true, coverflag:Boolean = true, hoverflag:Boolean = true, text_width:Number = 446 ): void
{
var setheight:Number = 0;//テキストフィールドの高さ
var setdepth:Number = 0;//階層
var setx:Number = 0;//テキストフィールドのX地点
var test:ScrollPane;
//CSS
if (hoverflag) {
var styles = new StyleSheet();
styles.setStyle("a:hover", {color:hovercolor});
}
for (var i=0; i

[使い方]
multilinelistbox.asを同じフォルダにぶち込んで、以下の関数を実行するだけ

MultilineListbox( スクロールパネル,
表示する配列データ,
テキストフィールドの横幅,
行頭マークの有無,
マウスオーバー背景色の有無,
マウスオーバー文字色の有無,
マウスオーバー文字色 );

[詳細]
main.flaのほうに実行する準備が書かれているので、それを見ていただければとおもうが、一応説明。
1.1個目の引数 - スクロールパネル
今回は、元々おいてあるスクロールパネルを利用したが、新しく作ったやつでもいいとおもう。
2.2個目の引数 - 表示する配列データ
こんなかんじで配列作って入れてください。

var sample_array:Array = new Array();
sample_array.push({label:"デジアナウェア",data:"http://www.d-a-w.jp/"})
sample_array.push({label:"オリジナルスキンが反映できる無料のティッカー型RSSリーダー!RSSリーダー『mimiタブ』",data:"http://www.d-a-w.jp/mimitab/"})
sample_array.push({label:"デスクトップキャラクター応援モンキーおうえモン",data:"http://www.d-a-w.jp/oemon/"})
sample_array.push({label:"画に宿る神の姿を具現化する神力を持った鏡、『画神鏡』。
最強の神を見つけた者には、その恩恵にあやかることができると言う―
",data:"http://www.d-a-w.jp/gashinkyo/"})
sample_array.push({label:"デジタルカタログ作成ツール
「デジパラブー」
Vista・Mac対応!デジアナウェアの商用使用OKなシェアウェアFlash",data:"http://www.d-a-w.jp/digiparaboo/"})

labelに表示したい、文字
dataにアドレスいれればおk
3.3個目の引数 - テキストフィールドの横幅
そのまんま。
数字入れればおk
4.4個目の引数 - 行頭マークの有無
trueにすれば、行頭に、

↑がつきます
5.5個目の引数 - マウスオーバー背景色の有無
trueにすると、マウスオーバーしたとき背景色が変わります。
6.6個目の引数 - マウスオーバー文字色の有無
trueにすると、マウスオーバーしたとき、文字色が変わります。
7.7個目の引数 - マウスオーバー文字色
16進数でHTMLみたいに指定してください。
と、まぁこんなかんじで頑張ったのだが、いろいろ調べてるとこんなものがあった。
[as3]ActionScript3でUIコンポーネントを作ってみる
これ使えばはやかったかもしれない\(^o^)/
ところで、最近弟がインフルエンザにかかり、私もちょっと体調がわるいです・・・
新型インフルエンザ・クライシス (岩波ブックレット)

mogmet

View Comments

  • リンク先がエラーページになってしまうようです。もし良かったら再度アップいただけるとうれしいです。

  • 申し訳ございません。
    FTPサーバの方にあげていたデータが削除されてしまった為、現在落とせない状況になっております。
    HDDに残っているか探ってみますので少々お待ちいただけたら幸いです。

  • Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.

  • I don't think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.

Share
Published by
mogmet