• ベストアンサー

Flashの外部ファイルについて

どなたか教えてください。お願いします。 アルファの値を変える効果を付けた数枚の画像を外部ファイルで変更したいのですが、アクションスプリクトの書き方もテキストファイルの書き方も全然分からなくて困っています。 画像を表示する場所にMCを作ってそこにLoadVarsを使えばいいということまでは分かったのですが、その後がどうしていいのか。。 自分なりに一生懸命調べたのですが、どうしてもわからず行き詰ってしまいました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

ご質問内容の2点はぜんぜん違いすぎます。 つまり広範囲にわたりすぎます。 2点とは 「外部テキストを読み込む」 と, 「ロードした画像のアルファを変える」 です。 サンプルソース(FLAファイル)も, また,画像も提示できないココでは, ご質問にちゃんと回答しようと思ってもできませんし, どうしても説明が 粗 になってしまいます。 的を絞ってご質問された方がちゃんとした回答がもらえると思います。 それと, 作ろうとされている構造体が不明ですし, ご質問内容からすると,思うにシステム的なことです。 したがって, ここで回答しても次々に違う疑問点が続発して, 誰の手にも負えない状態になると思います。 そういうことを前提として, 基礎の基礎の部分を2つに分けて回答します。 先に断言しますが, システム全体の回答はとうてい無理です。 /// まず アルファ の件 ////////////////////////////// 外部ファイルのアルファを変えるのではなくて, 外部ファイルを読み込んだムービークリップのアルファを変えるのです。 HTML や SWF と同じフォルダに, 「a.jpg」というJPEG画像があったとします。  任意のフォルダ      ├ ○○.html (○○.swf が表示される)      ├ ○○.swf      └ a.jpg その「a.jpg」を読み込むためのムービークリップをまずステージ上(_root)に作成します。 これは, 直径1~5mmくらいの円や1辺1~5mmくらいの四角でかまいません。 その小さな塗りをステージ上に描いて, ムービークリップに変換します。 ムービークリップに変換できたら, そのムービークリップを選択して, 下のプロパティインスペクタ(プロパティパネル)でインスタンス名を付けます。 例えば,「loadMC」としておきます。 その「loadMC」とは別に, JPEGを読み込むボタンを作ったとします。 そのボタンには, ------------------------------------- on (release) { _root.loadMC.loadMovie("a.jpg"); } ------------------------------------- と書けば,「loadMC」に「a.jpg」がロードされます。 それとは別に,アルファを変えるボタンを作ったとします。 そのボタンには, ------------------------------------ on (release) { _root.loadMC._alpha = 30; } ------------------------------------ と書きます。 そしてムービープレビューもしくはパブリッシュ。 そして, ボタンをクリックすると, 「loadMC」のアルファが30になりますから, つまり,そこに読み込んだ「a.jpg」のアルファが30になって表示されます。 アルファに限らず全てそうです。 外部画像をどうしようかとするのではなく, 読み込んだムービークリップをどうしようかとしてください。 例えば, 上で書いたアルファを変えるボタンのスクリプトを次のようにすれば, 読み込まれた画像の座標変更や回転ができます。 ------------------------------------ on (release) { _root.loadMC._alpha -= 10; _root.loadMC._x += 20; _root.loadMC._rotation += 45; } ------------------------------------ 何度もクリックすると だんだんアルファや座標や回転が変化していきます。 また, ご質問とは直接関係がありませんが, ムービークリップの「基準点」というものを意識して作れば, 座標などが思ったように操作できると思います。 インスタンスの基準点 http://homepage3.nifty.com/ginga-b/MX/inst_refpoint.html ここまでが,アルファについてです。 1つ1つ実感で身につけてください。 説明を読むだけ,または理論書を読むだけでは,決して何も作れません。 実践して実感するからこそ, 本当の理解で,本当の発展へと結びつきます。 /// 次に LoadVarsの件 ////////////////////////////// これは,極々シンプルな物を提示します。 Flash で構築するシステムによって先は変わります。 半分は,上と同じ条件です。 HTML や SWF と同じフォルダに, 「a.jpg」というJPEG画像があったとします。  任意のフォルダ      ├ ○○.html (○○.swf が表示される)      ├ ○○.swf      └ a.jpg その「a.jpg」を読み込むためのムービークリップをまずステージ上(_root)に作成します。 これは, 直径1~5mmくらいの円や1辺1~5mmくらいの四角でかまいません。 その小さな塗りをステージ上に描いて, ムービークリップに変換します。 ムービークリップに変換できたら, そのムービークリップを選択して, 下のプロパティインスペクタ(プロパティパネル)でインスタンス名を付けます。 例えば,「loadMC」としておきます。 外部テキストデータですが, メモ帳などテキストエディタで次の1行のみを書きます。 ------------------ file0=a.jpg ------------------ 意味は, 「変数 file0 の値が a.jpg である」 ということです。 この1行だけのテキストを, 「mydata.txt」 というファイル名で,保存します。  任意のフォルダ      ├ ○○.html (○○.swf が表示される)      ├ ○○.swf      ├ a.jpg      └ mydata.txt そして, フレーム1 の フレームのスクリプトに次の ActionScript を書きます。 ---------------------------------------- // myLV という LoadVarsインスタンス の作成 myLV = new LoadVars(); // // myLV に LoadVars.onLoad を定義 myLV.onLoad = function(seikou) { // ロード成功時の処理 if (seikou) { // loadMC に myLV の中の変数 file0 の値をロード _root.loadMC.loadMovie(myLV.file0); // loadMC のアルファを 30 にする _root.loadMC._alpha = 30; } }; // // myLV にテキストを読み込む myLV.load("mydata.txt"); ---------------------------------------- そしてムービープレビューもしくはパブリッシュ。 今回はボタンは作りません。 SWFを表示させれば, アルファが30の画像が表示されるはずです。 参考URL LoadVarsオブジェクトを使った外部テキストファイルの読込み http://www.fumiononaka.com/TechNotes/Flash/FN0303007.html また, システム全体に絡むことは説明できません。 良いサンプルがあるので, これでも理解してみてください。 サンプルや説明を見るだけで, ここで色々なことは説明不可能だとわかると思います。 Macromedia Flash サポートセンター 「XMLでJPEGスライドを作成する」 http://www.adobe.com/jp/support/flash/applications/jpeg_slideshow_xml/ データ的なことが増えると, LoadVars を使うより, XMLクラスのメソッドでXMLをロードする方が便利で簡単です。 ただし, XML 自体の理解が多少必要になります。 しかし, これも,理論書より実践あるのみです。 わかるところから1つ1つ失敗しながらでも 調べたり,作ってみたりすると, 0 から作れる実力が身に付きます。

sumire_e
質問者

お礼

出来ました!ありがとうございます。 ずっと色んなフラッシュサイトで勉強してきましたが こんなに丁寧に分かりやすく説明させてるサイトさんはありませんでした。 本当に感謝します。 ここ2週間位悩みっぱなしで泣きたい位困ってました。 ありがとうございます。 sassakunさんの貴重なお時間を費やして頂いて申し訳なく思うと同時に 感謝の気持ちで一杯です。 本当にありがとうございました。 1000回言っても言い足りない位です。

すると、全ての回答が全文表示されます。

関連するQ&A