dポイントプレゼントキャンペーン実施中!

Flash8を使用して、AS2で書いています。

createTextFieldでテキストフィールドを自動生成しています。
その内容は、外部XMLファイルから読み込まれたものが入ります。
読み込まれる内容により、その長さが異なるので、
autosizeをtrueにしています。

そのテキストフィールドの下に、
別のテキストフィールドを自動生成しているのですが、
できれば、常に上のテキストフィールドの下端から一定の距離に
生成されるようにしたいのですが、
(htmlならmargin-top:1em;のように。)
何か適当な方法はないでしょうか。

A 回答 (1件)

外部XMLをロードさせたり,


動的にテキストフィールドを生成させようとされているような方が,
なぜ,

> 上のテキストフィールドの下端から一定の距離に生成

する方法がわからないのかが疑問です。

つまり
何がわからないのかがよくわかりませんが,
普通に TextField._height で上のテキストフィールドの下端座標を取得すれば良いのではないでしょうか。

 テキストフィールドの下端
  = テキストフィールドのy座標 + テキストフィールドの高さ

ですよね。

Flashドキュメンテーション
_height (TextField._height プロパティ)
http://livedocs.adobe.com/flash/8_jp/main/000027 …


----------------------------------

以下はヘルプのサンプルスクリプト的な回答ですが...。


次の例では,テキストフィールドを作成し,
外部XMLファイル「kana.xml」をロードした上で,
「kana.xml」の各ノードにある文を上のテキストフィールドに表示させ,
その下 5px の位置に新たなテキストフィールドを作成し,
「はひふへほ 改行 まみむめも」 を表示させます。


「kana.xml」↓

///////////////////////////////////////////
<?xml version="1.0" encoding="UTF-8"?>
<akasatana>
<gyou>あいうえお</gyou>
<gyou>かきくけこ</gyou>
<gyou>さしすせそ</gyou>
<gyou>たちつてと</gyou>
<gyou>なにぬねの</gyou>
</akasatana>
///////////////////////////////////////////


フレーム1 にコピペするだけのスクリプト↓

///////////////////////////////////////////////////////////////////////
// _txt0 というテキストフィールドを作成
var T0:TextField = _root.createTextField("_txt0", 0, 10, 10, 30, 20);
// 枠線を表示
T0.border = true;
// 自動サイズ
T0.autoSize = true;

// XMLインスタンスの作成
var myXML:XML = new XML();

// 余分な空白などを削除
myXML.ignoreWhite = true;

// XMLデータロード時の動作定義
myXML.onLoad = function() {
// 変数 total に更新データのトータル数を取得
var total:Number = this.childNodes[0].childNodes.length;
for (var i:Number = 0; i<total; i++) {
T0.text += this.childNodes[0].childNodes[i].firstChild.nodeValue;
if (i<total-1) {
T0.text += "\n";
}
}
// _txt1 というテキストフィールドを作成 (★本題はココ↓だけ★)
var T1:TextField = _root.createTextField("_txt1", 1, 10, T0._y+T0._height+5, 30, 20);
// 枠線を表示
T1.border = true;
// 自動サイズ
T1.autoSize = true;
T1.text = "はひふへほ\nまみむめも";
};

myXML.load("kana.xml");
///////////////////////////////////////////////////////////////////////
    • good
    • 0
この回答へのお礼

ありがとうございます。

TextField._height プロパティは、リファレンスを読んだ際、
「テキストフィールドの高さと幅のプロパティを設定します。」
とあったので、てっきり、こちらから設定する場合にだけ使うものだと
思いこんでしまい、値を取得できるとは考えてもみませんでした。

丁寧なサンプルスクリプトまで、書いていただき、
本当にありがとうございました。

お礼日時:2008/03/11 19:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!