トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     マスクのきかないテキストと、読み込めない別ムービーのテキスト
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
みずほ銀行が近くにあるからMizuhoというユーザー名にしたのだ
Åê¹ÆNo.3637
投稿日時: 2004-2-10 1:03
新米
居住地: 江戸
投稿: 8
使用環境:
MacOS9.2、Flash MX
マスクのきかないテキストと、読み込めない別ムービーのテキスト
はじめて投稿させていただきます。
お絵描きはできるけど、ActionScriptはコピペ専門の超初心者のMizuhoと言います。
FlashはVer4まではそこそこに遊べていたのですが、Ver5でお手上げ、MXでKOされた状態です。
KOされて以来、起き上がる気力も動機もなかったのですが、
最近ちょっと作ってみたいものが出てきたので再度起き上がってみたら、
またもやKO寸前までいってしまいました。
Scriptと聞いただけですぐにメゲるので、なにとぞお手柔らかにお願いいたしますm(_ _)m

さて、現在、スタンドアローンで動くティッカーを作ろうと思っています。
雰囲気的には www.infoseek.co.jp/" target="_blank">http://ticker.www.infoseek.co.jp/ にある
一番上のティッカーの天気情報のようなものです。
これを、base.swfにonClipEventでticker.swfを読み込ませて、
ticker.swfが外部のテキストファイルからテキスト部分を表示する構造で実現したいと考えています。
これに適したティッカーをいろいろと探したところ、FlashKitには満足のいくものが無かったのですが、
とあるサンプル集にあったのでさっそく使わせていただきました。
(私のようなコピペ専門ユーザーには重宝します・・・難しすぎるけど・・・)
どんな長さの文章でも動きが一定で、しかも流れ方がスムーズだったのでこのティッカーを選んだのですが、
初心者には難しすぎていて改変しようにも手も足を出ない状態です、、、。

で、まず一つ目のご相談です。
サンプル集にあったティッカーの、必要と思われる部分だけを残して作ったのが以下のticker.swfです。
http://www.eurus.dti.ne.jp/~siriusj/ticker/ticker.swf
テキストは http://www.eurus.dti.ne.jp/~siriusj/ticker/ticker.txt を絶対パスで読み込んでいます。
見ていただければお分かりの通り、文字を流したいのは濃いグレーゾーンの範囲内なのですが、
カラのMCを作りそこにカラのテキストフィールドを作って表示させているせいか、
マスクもきかないし、レイヤーをかぶせてもダメです。
いろいろと力技を試みてみたのですが、唯一成功したのは
このswfの上にマスク専用のswfをloadするという超アナログ的(表現として不適切!)な方法だけです(爆!)。
そこでお知恵を拝借したいのですが、カラのMCを作ってカラのテキストフィールドにテキストを表示するというこのスクリプトで、
テキストを任意の範囲内に納める方法がございましたらご提供ください。

でもって二つ目のご相談です。
上記ticker.swfをbase.swfにonClipEventでloadしたものが以下です。
http://www.eurus.dti.ne.jp/~siriusj/ticker/base.swf
このswfにはムービーと同じサイズのMCが1フレームにあり、
そのMCにonClipEventでticker.swfを絶対パスで読み込ませています。
ところが、base.swfがticker.swfと同じサーバーであれば、
どのディレクトリにあってもきちんとticker.txtを読み込んで動作するのですが、
base.swfが他のサーバーや、スタンドアローンプレイヤーとしてデスクトップなどにあると、
ticker.swfは読み込んでもticker.txtを表示してくれません(読み込んでない?)。
ticker.txtを相対・絶対パスにしてみたり、onClipEventをヤメてonLoadMovieにしてみても同様に機能しませんでした。
この現象を解決する方法をご存知でしたらぜひともお教えくださいm(_ _)m
flaやswfなどは以下にまとめてあります。
http://www.eurus.dti.ne.jp/~siriusj/ticker/ticker.sit

上記2点、私のようなコピペ専門ユーザーはネット上で探すか、
もしくはサンプルファイル付きの本を購入する以外に方法がないので、
ActionScriptをコピペできる状態か、
もしくはflaファイルをご提供していただくのがもっとも有りがたいのですが、
虫のイイ要求であることは自覚しているので、
もしそれなりの対価が必要である場合はご相談ください。
お小遣い程度になってしまいますが、お支払いさせていただきますm(_ _)m
jamb_nut@yahoo.co.jp
rin-ko
Åê¹ÆNo.3642
投稿日時: 2004-2-10 4:23
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
Mizuhoさん、はじめまして。
えっと、ご質問の場合は、なるべく要点を整理なさった方がよいと思います(^^;
問題点としては以下の二つじゃないかと思うのですが:
1)マスクしたら、テキストフィールドの文字が表示されない
2)外部サーバーなどから、テキストデータを読み込めない

1)おそらくテキストフィールドのフォントに「デバイスフォント」を指定しているのだと思います。Flash Player 5以前だとデバイスフォントはマスキングできません。
Flash Player 6からはマスクが可能ですが「デバイスフォントをマスクするには、ムービークリップをマスクとして使用する方法しかありません。ステージ上でマスクレイヤーを使用してマスクすることはできません」となっています。

2)外部サーバーからLoadVarsなどでデータを読み込むことは、Flashのセキュリティ上、基本的にはできなくなってると思います。とくにFlash Player 7からは制限が厳しくなってます。詳細と対応についてはこちらを参照して下さい。

で、横に文字が流れる1行テキストフィールドについては、ActionScriptのhscrollによって実現できると思います。これは、テキストフィールドを動かすのではなく、そこに表示された文字を横にスクロールするものです。なので、表示したいサイズのテキストフィールドを作ればよいだけで、マスクも必要ないと思います。
ActionScriptって、すべてを理解するのは相当難しいと思いますけど(私もぜんぜんわからないし)、すぐ覚えられていろいろ使える部分も結構あるので、この機会にご希望のFlashを自作なさってみるのもいいと思いますよ?。改造もラクになります
みずほ銀行が近くにあるからMizuhoというユーザー名にしたのだ
Åê¹ÆNo.3660
投稿日時: 2004-2-10 15:51
新米
居住地: 江戸
投稿: 8
使用環境:
MacOS9.2、Flash MX
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
rin-koさん、ご丁寧なお返事ありがとうございます。
おっしゃる通り、投稿した後で自分の文章の長さにビビりました。以後気をつけます・・・m(_ _)m

質問が長く要点を得なかったようなので、とりあえず(1)の質問一つにしぼらせていただきます。

結論から言いますと、私が作りたいのは以下のsample.swfのように固定幅のテキストフィールド内を流れるティッカーで、しかも動きはticker.swfのようにスムーズに流れて、途中で流れる速度が変らないものです。
http://www.eurus.dti.ne.jp/~siriusj/ticker/sample.swf
http://www.eurus.dti.ne.jp/~siriusj/ticker/ticker.swf

以上が(1)の質問です。

でもって以下が出来ない言い訳のようなもの・・・かな(^_^;

私は、この二つのティッカーのイイとこ取りを試みたのですが、それがどうにもうまくいかなかったのです。
二つのムービーの構造が根本的に異なっていて、sample.swfはテキストエリアにloadVariablesでticker_load.txtを読み込んでいるのに対して、ticker.swfはフレームには何一つとしてオブジェクトがなくActionScriptのみで、そこに空っぽのMCを作り、さらにそこに空っぽのテキストフィールドを作ってその部分にticker/ticker.txtを表示させています。
ticker.swfにはテキストフィールドのプロパティウィンドウが存在せず、フレームに書かれたActionScript内で全てが完結しているため、ド素人の私にはプロパティの指定ができないのです。
そのためticker.swfはムービー幅いっぱいにテキストフィールドが広がってそこでテキストのスクロールが発生しています。
また、sample.swfのテキストの速度はフレームレートに依存しているのに対して、ticker.swfはミリ秒単位での指定が可能で、それが流れ方に影響しているのではないかと推測しています。

前投稿で「マスク」と私が書いたのは、ticker.swfをsample.swfのように任意の幅で表示したいがための苦肉の策であって、本当はsample.swfのようにテキストフィールドのプロバティをきちんと設定したいと思っているのですが、ムービー内にオブジェクトが存在しないため(ムービーそのものがオブジェクト化してるようです)、途方に暮れてしまった、というワケです。


またもやダラダラと長く書いてしまいましたが、とりあえず一つの質問に絞った、ということでご勘弁くださいm(_ _)m
こいつは何ヌカしてんじゃ? という方は両方のflaをダウンロードしてご確認くださいませ。
http://www.eurus.dti.ne.jp/~siriusj/ticker/ticker.sit


以上、よろしくご教授お願いいたしますm(_ _)m
みずほ銀行が近くにあるからMizuhoというユーザー名にしたのだ
Åê¹ÆNo.3662
投稿日時: 2004-2-10 15:57
新米
居住地: 江戸
投稿: 8
使用環境:
MacOS9.2、Flash MX
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
二度レス失礼m(_ _)m

引用:

この機会にご希望のFlashを自作なさってみるのもいいと思いますよ?。改造もラクになります


改造もラクに・・・言ってみたいですぅ(T_T)
たぶん、じっくりと勉強しようとせず、今回のように目先の作りたい物に無謀にもチャレンジしてしまうのが、挫折と復活を繰り返している最大の原因ではないかと・・・自業自得ですな。
精進しますm(_ _)m
rin-ko
Åê¹ÆNo.3680
投稿日時: 2004-2-10 20:23
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
申し訳ありませんが、私自身の環境はFlash5でしかないため、MX↑のファイルは開けません。当該Flashのどこに、どのようなActionScriptが記述されているのか教えて頂ければ、多少はお答えできるかも知れませんが。

そこでとりあえず、思い描かれているようなFlashを実現する要素として、私が考えたことですが:
1)テキストフィールドに外部テキストデータを読み込む
→LoadVars()オブジェクトを使う/MovieClip.loadVariables()でも出来ます

2)テキストフィールドの横スクロール
→hscrollとmaxhscrollで可能だと思います
テキストフィールド.hscroll+=num;
//numはスクロール単位となる引数
のような内容のメソッドを定義する

3)一定間隔で、スクロールを実行
→setInterval()を使えば、「ミリ秒単位での指定」が可能になるハズです。
スクロール単位の引数(ピクセル値)をつけて、2)のメソッドをよびだす。

って感じです(ダメでしたらMX↑ユーザーの方、訂正/フォローお願いします)。
ここまでで、判らないところはありますか?
はっきり言って私自身もまだまだ未熟なレベルですが、無謀な試みもひとつひとつ解決していけば、最後には完成にたどり着けます(たぶん)。なんでも自作は決して無理じゃないと思うのです。それに、せっかくソフトもってらっしゃるのにもったいないですよ?
みずほ銀行が近くにあるからMizuhoというユーザー名にしたのだ
Åê¹ÆNo.3690
投稿日時: 2004-2-11 5:53
新米
居住地: 江戸
投稿: 8
使用環境:
MacOS9.2、Flash MX
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
sample.swfはver.5で開きますのでアップしておきます。
http://www.eurus.dti.ne.jp/~siriusj/ticker/sample5.sit
スピードがフレームレートに依存しているのと、2バイトと4バイト文字でスクロールスピードが変ってしまうのが難点です。
構造的にはsetInterval()を使わないでテキスト前部にスペースを設ける、というこの方法でも問題ないです(スマートではないですが・・・)。


ticker.swfはもともとは複数のテキストを異なるプロパティで実行させるためのもので、スクリプトの構造そのものは何となく分かるのですが、どこをイジっても機能しなくなるし、ムービーにこのムービー読み込ませるとテキストを読み込まなくなるので(最初の投稿の「二つ目のご相談」)、もうこっちは半ばあきらめてるところなんです(T_T)
(ちなみにsample.flaだと問題なく読み込むことができる・・・)
購入した参考書についていたサンプルなのですが・・・ドドド素人には難しすぎました(゜▽゜*)ニパッ

構造は空っぽの1フレに以下のフレームアクションが記載されてあるのみです。
http://www.eurus.dti.ne.jp/~siriusj/ticker/ac.txt
※こんなスクリプトをココに貼り込んだら皆さんがヒキそうなので・・・(^_^;
※アップしてあるswfにはティッカー用のフレームが描き込んであります

・・・子羊である私にとっては目まいがしそうなスクリプトです。
でもって、sample.flaのテキストフィールドにticker.flaのようなスムーズな動き(まさにsetIntervalやhscrollですな)を与えようとして自爆してしまったのです・・・がはははは(自嘲)。
とりあえず朝の5時までがんばったけど出来なかったんで・・・再度ご迷惑おかけしますm(_ _)m

引用:

はっきり言って私自身もまだまだ未熟なレベルですが、無謀な試みもひとつひとつ解決していけば、最後には完成にたどり着けます(たぶん)。なんでも自作は決して無理じゃないと思うのです。それに、せっかくソフトもってらっしゃるのにもったいないですよ?


「6」じゃなくて「MX」って名乗るぐらいだから、「ガラりと内容が変ってさぞかし簡単に使えるようになったのだろう」と期待して購入したら、もともと子羊だった私は、もはやラムチョップかジンギスカン。
ドリウィみたいに、スクリプトを理解していなくてもビヘイビアをウリャウリャってやるだけで出来るもんだと期待していたのに・・・(T_T)
rin-koさんがまだまだ未熟なレベルなら、私は熟す以前の発芽段階か花粉・・・悲しすぎるぜ(*´ー`) フッ
5は学割がきいたのでそんなに痛くなかったのですが、学割バージョンはアップグレードがきかないので定価でMXを購入しておきながら、いまだに3で使っていた機能しか使いこなしていないのが現状。
言われるまでもなく、えらくもったいないことしてますm(_ _)m
学割バージョンで喜んでいるのもつかの間、結局いつかは定価で買わされるのさヽ( ´ー`)ノ
rin-ko
Åê¹ÆNo.3705
投稿日時: 2004-2-11 20:10
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
すみません、方向性がよくわからないので、要点を整理させて下さい。
sample.swfは、onEnterFrameで表示テキストを1文字ずつ減らす方法ですね。
この場合、仰有るとおり1文字のバイト数で移動速度が変わってしまいますから、スクロール方法としてはボツってことですよね。

ticker.swfは、setInterval()で0.1秒ごとに、移動範囲をStage.widthとして、テキストフィールドを4ピクセルずつ移動させていますね。当然移動速度は一定ですが、表示されるテキストは不変でテキストフィールドのサイズもautoSize
=true;なので、一部だけを表示したい場合、最初に試みられたようにマスクをもちいるなどして他の部分を隠す必要ができちゃうと思うんです。

従って、ご希望通りの動作のためには以下のような方法が考えられます(うーん、もっとスマートな方法がありそうな気がする…)。
a)sample.swf/ticker.swfのスクロール方法を変更する。hscrollを使うとかに。
(ticker.swfの場合、他にも変更点が必要ですが)

b)ticker.swfにマスクキング
ちなみにticker.swfのテキストフィールドのフォントはmakeTicker()メソッドをみる限りデバイスフォントを指定してますね(アンダーバーがついているフォント)。確かにこのままではマスクレイヤーでは表示されない筈ですが、この部分、変えたら動かなかったんですか?あるいはムービークリップをマスクとして使うのはまずいのでしょうか。
引用:
fontStyleProps = {font:"_ゴシック", size:12, color:0xFFFFFF};


c)上記のFlashは忘れて最初から作る

さて、Mizuhoさんとしては、どうなさりたいのでしょうか?
また改造するにしても、新規作成にしても、今まで実際にはどのようなことをこころみられ、具体的に何が障害となっているのでしょうか?
「どこをイジっても機能しなくなるし」と書かれていらっしゃいますが、実際に何をどう変更したら動作しなくなったのでしょうか?
ticker.swfは、確かに利用目的がちょっと違うようで、Mizuhoさんの目的だけを考えるとここまでスクリプティングしなくてもいい気がします。というか、自分自身がわかっていないActionScriptを書いていてもしょうがないと思うので。ただ、ここにマスキングするのが方法としては一番はやいかも…。

あと、外部サーバーのテキストを読み込めないのと、別ムービーにムービーを読み込んだらテキストが読み込めなくなるのとでは、問題点が違うと思うのです。
前者は前述したセキュリティ上の問題と思いますけど、後者は単純にFlash内でのターゲットパスが変わってしまったというだけで、ターゲットを正しく指定すればちゃんと動作する筈です。
みずほ銀行が近くにあるからMizuhoというユーザー名にしたのだ
Åê¹ÆNo.3716
投稿日時: 2004-2-12 9:06
新米
居住地: 江戸
投稿: 8
使用環境:
MacOS9.2、Flash MX
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
rin-koさん、いつもご丁寧に対応していただいてありがとうございます。

現在はまさに(b)の方法で対応しています。
ticker.swfでテキストフィールドの幅を指定することはあきらめて、
このような方法にしました。
でもって(c)は私には不可能です(^_^;
そこで(a)のsample.swfにhscrollを使ってスムーズなスクロールにする、
というのを試みたいのですが、最初の投稿に書いた通り、
私は絵は描けるけどActionScriptはコピペ専門なので、
ほしいのはヒントやアドバイスではなくアンサーです。
つまりコピペすれば使えるスクリプトか、もしくはflaファイルです。
もちろんそれが虫のイイ要求であることは自覚しているので、
対価が必要であればご相談ください、というのも最初に投稿した通りです。

・・・というようなことを書いたら、公開してたフリーのメールアドレスに、
「20万円でご要望のflaファイルをご提供します」と届きましたが・・・
私はただのプーなのでこれは無理っす(^_^;
rin-ko
Åê¹ÆNo.3762
投稿日時: 2004-2-12 22:41
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
引用:
ほしいのはヒントやアドバイスではなくアンサーです。

うーん、あくまでもアンサーと言うことですか。
ごめんなさい。私は、結果ではなく方法や考え方についてご協力できればと思ったのですけど、それではご希望にはそえないですね。無駄にお時間を使わせてしまったようで申し訳ないです。
良い提供者さんが見つかるとよいですね。
youich
Åê¹ÆNo.3772
投稿日時: 2004-2-13 1:47
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: マスクのきかないテキストと、読み込めない別ムービーのテキスト
rin-koさんに楯突く気はないですけど、
僕は別にわけわからずスクリプトをコピペでもいいと思うんです?
あんまりまじめにいくのも、なんかFlashの門戸を狭めるような気がして(^^;いやこれは、ぼくが思ってるだけですよ、、

http://www.eurus.dti.ne.jp/~siriusj/ticker/ac.txtですが
マスクにするグラフィックをムービークリップにして名前を"maskMC"とする。
後は以下2か所の変更。
function emptyMC(mc) {
    this.no = ++_global.mcCount;
    this.mc = mc.createEmptyMovieClip("newMC"+this.no, this.no);
    this.mc.setMask(mc.maskMC); //<-----追加
}
function makeTicker() {
     mcObj1 = new emptyMC(this); //<------変更
    fldObjProps = {mc:mcObj1.mc, x:Stage.width, y:180, speed:100};
    fldStyleProps = {background:false};
    .....//以下同じ
}

他のサーバーから読み込みするほうのflaは、例えば"loadMC"という名前をつけたムービークリップにロードムービーするとしたら

System.security.allowDomain("www.eurus.dti.ne.jp");
loadMC.loadMovie("http://www.eurus.dti.ne.jp/~siriusj/ticker/ticker.swf");

でいけるんではないかなと思います。。。が、動かんかったらすいません。(^^;


----------------
- yo

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops