ActionScript質問に誰かが兆速で答えるスレ1フレーム目
1 :
Now_loading...774KB :
2006/12/20(水) 21:18:49 ID:S+Sug21i
じゃぁ2getしておくよ
3 :
Now_loading...774KB :2006/12/20(水) 21:29:34 ID:AfPFlFy1
さっそく質問です。 変数に代入したテキストデータの文字数を取得するにはどうすればよいでしょうか? 教えてください!
4 :
3 :2006/12/20(水) 21:36:28 ID:AfPFlFy1
自己完結しますた。
5 :
3 :2006/12/20(水) 22:15:10 ID:AfPFlFy1
また質問します。次のスクリプトは外部ファイルから読み込んだ文字列を一文字ずつMCに設定して表示するスクリプトなんですが、 Flashプレイヤー6までだと正常に表示されるのですが、それ以降(Flashプレイヤー8など)になると文字列が32文字になっても改行されず、 最初の文字に重なって表示されてしまいます。 どうすれば解決できるでしょうか。教えてください。 (このスクリプトが記述された次のフレームでこの関数を繰り返し呼び出しています。) _x = 220; _y = 150; a = 0; function Typo() { if (a%32 == 0) { Y += 15; X = 0; } else { X++; } this.LoadVariables("typo.txt"); this.attachMovie("typo00", "typoG"+a, a); this["typoG"+a].typoMc.typotext = txt.charAt(a); this["typoG"+a]._x = X*11; this["typoG"+a]._y = Y; a++; }
6 :
3 :2006/12/21(木) 00:48:33 ID:CbUtBQX2
>>5 のFlashプレイヤー6までだと・・・・と言ってますが、
正確にはFlashプレイヤー6用にパブリッシュすると正常に動作します。
それ以降でパブリッシュすると正常に動作しません。
7 :
Now_loading...774KB :2006/12/21(木) 07:20:28 ID:1gb5DjTF
>>5 Y += 15;
trace(Y);
ってやってみ。
8 :
3 :2006/12/21(木) 08:01:07 ID:CbUtBQX2
>>7 「Nan」うっひょー数字だと認識されてねー
原因解明してくれてありがとうございます。
9 :
3 :2006/12/21(木) 08:03:20 ID:CbUtBQX2
解決しました!! ありがとうございます!!
karaage
11 :
Now_loading...774KB :2006/12/24(日) 01:39:11 ID:Hy0+JaaL
tattaage
christmas age
重複スレ立てんなボケ。
外部から変数読み込むFlash作ったんだけど、 外部ファイルの値が変わっても、Flashで表示される値は変わらない。 これはIEのキャッシュ読んでるんですか。 それとも、ファイルの更新日付とか見てるからですか? 解決する方法を教えてください 技術スレは誤爆です。
16 :
Now_loading...774KB :2007/01/12(金) 09:24:19 ID:jkZ3iHnw
actionscriptとJavascriptってどちらから学んでも問題ないんですか? どうせならasからと思ってるんですけど。 あとおすすめの教本あったら教えてください。
17 :
Now_loading...774KB :2007/01/15(月) 21:25:18 ID:pocTT+jU
>>16 今必要か興味のある方からで桶。本は「おしえて〜」シリーズから入るといいかな。
function textLoad(url) { System.useCodepage = true; my_lv = new LoadVars(); my_lv.onData = function(src) { src = src.split(String.fromCharCode(10)).join(""); src = src.split(String.fromCharCode(13)); dat = new Array(); for (i=0; i<src.length; i++) { dat[i] = src[i].split(","); } }; my_lv.load(url); return dat; } こういうのつくってね。配列を返してもらおうと思ったですよ。でもうまくいかないんです><
>>18 textLoad関数を最後まで実行した段階ではmy_lvの読み込みは終わってないです。
処理の流れとしてはこうなります。
・textLoad関数に入る
・my_lvの初期化、データの読み込みを開始
・textLoad関数を抜ける。データの読み込みは終わってないし、
そもそもdatって変数はtextLoad関数の中に存在しないのでundefinedを返す
↓ Flash Playerが1MBあるかもしれないデータを読み込もうと息巻く
(回線状況が悪ければこの間に何フレームか経過するかもしれない)
・my_lvのデータの読み込みが終了、onData関数に入る
・dat配列を作成し、中身を設定する
・onData関数を抜ける、しかし何も返さない。そもそも値を返す先なんてない
読み込みが終わるまでASの実行を一時停止するなんて便利な機能はないです。
onData関数の中で配列をどこかの外部変数に保存するとか画面表示を更新するとか
次の画面に進むとかするようにしてください。
>>17 ありがとうございます。参考にしてみます。
21 :
18 :2007/01/16(火) 21:25:32 ID:VUIKFBnJ
キーフレームとフレームの違いが分からないんで教えてください><
>>22 にわかな私が回答します。
キーフレーム=オブジェクトの配置を行ったり、フレームアクションを記入することができるフレーム。
フレーム=上記以外のノーマルフレーム。
ようするにただのフレームは通過するだけでActionScriptを書いたりできないって ことですか。 てことはただのフレームは何に使うんですか?
>>24 にわかな私が回答します。
通過するために使用します。
Flash8 です。 超初心者です。 ラベル名を変えるにはどうしたらいいのでしょうか? 調べましたがわからないので教えてくださいm(_ _)m
27 :
26 :2007/02/01(木) 02:18:46 ID:0ubRl58B
自己解決しました。お騒がせしました。
Flashにxmlファイル(update.xml)を読み込んでダイナミックテキストエリア(update_text)に表示させたいんだけど up_xml = new XML();//XMLオブジェクトを作る up_xml.onLoad = update;//イベントハンドラ指定 up_xml.load("update.xml");//xmlファイルを読み込む up_xml.ignoreWhite = true;//タグなど空白を無視 で、表示させるにはどうすればいいんですかね?
基礎的なことだとは思うのですが、質問させてください。 1.loadVarsを使用して、[1,2,3,4,5,6〜]と記述されているファイルを読み込みます 2.読み込んだファイルを、split[","]を使用して、配列pointに代入します このとき、trace(point[1])を行えば、きちんと[2]が表示されます 3.適当な変数cnt = 0を宣言し、cntの値とpoint[x]の値を合計したい cnt += point[1]と行うと、[02]と表示されてしまいます 同じように、cnt += point[2]を行うと[023]と追記されます 本来は、0+2や2+3を行いたいのですが、どうしたらよいでしょうか? 恐らく、pointの型が違うのだと思うのですが、どうでしょうか…
>>28 表示させるだけならtextに指定すればおk
XMLの構造を解析したいならXMLNode.firstChildやXMLNode.nextSiblingとか
XMLNode.nodeValueやXMLNode.attributesを調べてみる
>>29 推測の通り、split()した段階ではpointの中身は全部文字列
文字列のpoint[x]を数値に変換するのはNumber(point[x])
だから
cnt += Number(point[2])
な感じで
他にparseInt()とかparseFloat()な関数もあるから用途に応じて使い分けてみて
>>30 遅れてしまいましたが、出来ました
ありがとうございます
32 :
Now_loading...774KB :2007/02/14(水) 11:57:16 ID:VnrFtPCY
ムービークリップxx_mcにロールオーバーした時にalpha値が増え、だんだんと表示されるようにしたいのですが on (rollOver) { for(xxalp = 1 ; xxalp < 100 ; xxalp++ ) { xx_mc._alpha = itemalp; } } このような自分のスクリプトでは一瞬でalpha100のような状態に表示されてしまいます どのように改良すれば良いのでしょうか できればイーズインしているような効果にもしたいです
リンケージ設定が面倒臭ス…… 細かい画像(マップチップ)大量に読み込ませたいのですが、 外部ファイル読み込みだと細かいコネクション増え過ぎちまうので ライブラリに読ませたのですが、全てにリンケージ設定すんのが 死にそうです ファイル名リストはXMLで出してるからループ回せば終了なのですが、 上記手順を簡素化する手法などありますでしょうか。 481個*4セット……まあ今回限りならガンガレルにしても、今後の拡張などの汎用性で言うと皆無に等しい作業であります
>33 遅いかも試練が ヒストリウィンドウを出す 1つリンケージ設定 残りを全部選択 ヒストリでリンケージプロパティを選択 再生
試してみるthx
ぬ、 ヒストリから「リンケージプロパティ」だけを選択して実行したところ 「setItemProperty:引数番号1は無効です。」 だそうで。 「ライブラリアイテムの選択」を含めると、当然先に選択したライブラリアイテムしか操作されない模様。 ヒストリウィンドウオプションの「パネル内のJavaScriptを表示」をやるとコマンド見れて面白いですな。知らなかった これ直接弄る方法調べてみます。まずはthxですた
連投スマソ ドキュメントの「Flashの拡張機能」にあるのがこれですな なんとかなりそうだ。習熟してきます 勉強不足お詫び申し上げます
38 :
Now_loading...774KB :2007/02/16(金) 11:09:34 ID:XUlvOLJq
すみません。あるボタンを押した後、 処理1をしてから3秒タイマー、タイマーが切れたら処理2をしてまた3秒タイマー というふうにしたいのですが… on(press){ 〜処理1〜 //3秒待つ st = getTimer(); while(getTimer()-st < 3000){ } 〜処理2〜 //3秒待つ st = getTimer(); while(getTimer()-st < 3000){ } 〜処理3〜 } こうしてみたところ、タイマーが二つ合わせて6秒分、処理1の前に発動してしまい、 その後処理1〜3を一気に処理するという現象が起こってしまいますがこれっておかしいのでしょうか? 自由にその場でタイマーを設定できる方法ってありますか?
39 :
Now_loading...774KB :2007/02/16(金) 17:44:36 ID:JhXC2X5S
すいません。質問です。 携帯○ 商用○ インタラクティブ再生○ 上記の条件を満たしている無料レンタルサーバーってあったりしますか? 虫が良すぎる話っぽいですが。。。
よろしくお願いします。 myLoad = new LoadVars(); myLoad.onLoad = function(){ _root.ac=this.countdata; }; myLoad.load(cgi); こんな感じで外部CGIファイルから変数読み込むスクリプト作ったんですが、 オブジェクト内でグローバル変数って使えないですか?
41 :
40です>< :2007/02/18(日) 12:12:40 ID:8M0sQTIQ
ごめんなさい。 myLoad = new LoadVars(); myLoad.onLoad = function(){ _global.ac=this.countdata; }; myLoad.load(cgi); でした。
42 :
Now_loading...774KB :2007/02/24(土) 13:32:40 ID:Ubz8ussb
ムービークリップなどのオブジェクトをステージ上から消すことができる関数ってありますよね? 教えてください。
43 :
42 :2007/02/25(日) 12:49:05 ID:M87Axc39
自己完結しますた^^
複数のBGMが流れているFlashを作っているのですが 複数の中のBGM“A”を●フレームから×フレームまでActionScriptを使って音量を下げたいのですが どのようにすればいいのでしょうか?
>>44 別の類似スレにて質問を投稿しました|ω・`) (このスレは活気が無い様なので…
46 :
46 :2007/05/14(月) 18:25:02 ID:GWcYwpLP
自己解決しました^^
Flashは、ver4のころに喜んで使っていましたが、最近は 全くさわっていません。 いつのまにadoveになっていたなんて…! ところで、教えていただきたいことですが、flashを CD-ROMで配布するために、exeファイルにして、 そのexeファイルから、ヘルプファイルを呼びたいのですが、 それは可能でしょうか。 トップ画面をflashで作成してexeファイルに変換。 その画面にボタンをつける。そのボタンから、 1.HTMLヘルプのファイルを呼び出す 2.別のexeファイルを呼び出す 以上のことをしたいのです。 ver.4では、2.はできましたが、1.はできなかったと思います。 flashの最新版ではどうなんでしょうか。 それとも、別のソフトで上記のことができる(初心者にも簡単な) ソフトがあればお教えください。 よろしくお願いいたします。
>>47 getURL()にHTMLヘルプファイルへの相対パスを渡すんじゃダメなの?
>>48 え、それで大丈夫なんですか。
getURL()は、本当にwebのURLのためのものだと思っていました。
それなら昔のver4でもありましたよね。
まだ、Flashがインストールして無いので、後ほど試して
みます。
ありがとうございました。
50 :
Now_loading...774KB :2007/07/15(日) 15:35:14 ID:EJJROcPw
質問です。 FlashMXで数字の入った配列を昇順にソートしたいのですが、 通常のソートでは文字列としてソートしてしまいます。 1→11→23→・・・ のように数字としてソートするにはどのようにすればよいのでしょうか? FlashMX2004では配列名.(Array.NUMERIC);でできる内容と同じものです。
52 :
エロエロ大魔神 :2007/08/06(月) 02:48:31 ID:tIgMikMW
メニューボタン(menu_mc)をロールオーバーさせると、ボタンに簡単なメニューアニメーション(target_mc)をさせ、 そのメニューアニメーションが10フレーム進むとサブメニュー(s_menu_mc)が現れるというようなメニューを作りたいと思います。 メニューボタンは複数あり メニューアニメーションの動きはすべて同じです。 サブメニューはメニューボタンの数だけあります。 MC構造 「---」親子関係をしめしてます。 root +(menu1_mc)---(target1_mc) +(menu2_mc)---(target2_mc) +(menu3_mc)---(target3_mc) +(menu4_mc)---(target4_mc) +(menu5_mc)---(target5_mc) +(s_menu1_mc) +(s_menu2_mc) +(s_menu3_mc) +(s_menu4_mc) +(s_menu5_mc) 今まではメニューボタンの数だけ、(target_mc)をMCごと複製し(target_mc)の 10フレームにて、それぞれの(s_menu_mc)を呼び出すメソッドを書いていました。 この作り方ですと、(target_mc)のアニメーションを修正しようものなら、すべての (target_mc)を修正しなければなりません。
53 :
エロエロ大魔神 :2007/08/06(月) 02:49:25 ID:tIgMikMW
A そこで、メニューボタン(menu_mc)をロールオーバーしたときに変数をつくり、メニューアニメーション(target_mc) が変数を読み取り変数にあった、(s_menu_mc)を出現させる方法。 MC構造 root +(menu1_mc):変数1---(target_mc):10フレーム目にs_menu1_mcを呼び出す +(menu2_mc):変数2---(target_mc):10フレーム目にs_menu2_mcを呼び出す +(menu3_mc):変数3---(target_mc):10フレーム目にs_menu3_mcを呼び出す +(menu4_mc):変数4---(target_mc):10フレーム目にs_menu4_mcを呼び出す +(menu5_mc):変数5---(target_mc):10フレーム目にs_menu5_mcを呼び出す +(s_menu1_mc) +(s_menu2_mc) +(s_menu3_mc) +(s_menu4_mc) +(s_menu5_mc) :::::::
54 :
エロエロ大魔神 :2007/08/06(月) 02:50:02 ID:tIgMikMW
B もしくは、メニューアニメーション(target_mc)が10フレーム進んだことをメニューボタン(menu_mc)に知らせ、 メニューボタン(menu_mc)から、サブメニュー(s_menu_mc)を呼び出す方法。 MC構造 root +(menu1_mc):フラグAならs_menu1_mcを呼び出す---(target_mc):10フレーム目にフラグA +(menu2_mc):フラグAならs_menu1_mcを呼び出す---(target_mc):10フレーム目にフラグA +(menu3_mc):フラグAならs_menu1_mcを呼び出す---(target_mc):10フレーム目にフラグA +(menu4_mc):フラグAならs_menu1_mcを呼び出す---(target_mc):10フレーム目にフラグA +(menu5_mc):フラグAならs_menu1_mcを呼び出す---(target_mc):10フレーム目にフラグA +(s_menu1_mc) +(s_menu2_mc) +(s_menu3_mc) +(s_menu4_mc) +(s_menu5_mc) ::::::: 以上、2つの方法があると思います。まだよい方法があるかもしれませんが。 同じ動きをするならばできることなら、同じオブジェクトを使いたいと思います。 どのような方法がベストでしょうか? お教えください。
55 :
Now_loading...774KB :2007/09/26(水) 16:45:14 ID:QP1n8dlu
開かれてるSWFのファイル名を取得するのってどうやれば良いのでしょう? 要は自分自身のファイル名って事なのですが。 分かる方いたら教えてください。
オブジェクトのパス(?よく分かってないですごめんなさい)を指定する際に 変数を用意して以下のように指定できるのですが Name="test" _root[Name] 次のように複数のオブジェクトを生成したあとに、 for (i=1; i<=10; i++) { Name = "test"+i; this.attachMovie("test", Name, i); } ↓のようにまとめてパス指定する方法はないのでしょうか? root[ /*"test"を名前に含むオブジェクト*/ ] よろしくお願いします
助かりました、これで迷わず前に進めます ありがとうございました。 m(_ _)m
61 :
Now_loading...774KB :2007/10/08(月) 09:25:12 ID:ZWhMmZQV
ActionScript2.0として書かれたスクリプトから、ActionScript3.0で書かれたスクリプトを呼び出すことは出来ますか?
ありゃりゃ。。。無理でしたか。ご教示ありがとうございました。
64 :
Now_loading...774KB :2007/10/13(土) 18:50:32 ID:L410J1Dt
SWF4で例えば5キーと6キーのどちらかを押したら処理(どちらも同じ処理)…のような記述はできますか? それとも on(keyPress"5") { } - on(keyPress"6") { } のように複数記述するしかないのでしょうか。 お願いします。
マルチすんなボケ
67 :
Now_loading...774KB :2007/10/15(月) 01:50:04 ID:1DlYUNpS
スレ違いかもしれんがちょっと質問。 いまだにAS2使ってるんだが、 FLASH OOPって本は今読んでも役に立つ? ASしか書けないユーザーが読んでも理解できる?
68 :
Now_loading...774KB :2007/10/15(月) 15:06:33 ID:Hf9pGaC/
携帯の待ち受けFlash作りたいのですが アラームのONOFFやバイブのONOFFを表示させる スクリプトってあるんでしょうか?
this.attachMovie("○",△, 深度) で、深度の設定をしますが、 最初からシーンに置いてある(自分で書いたりした)オブジェクトの深度は; 固定値かなんかが決まっているのでしょうか?
うん
技術交換スレから誘導したされたものです as3で下のようなコードを書いてみたんですが 実行しても何も表示されません リファレンスと睨めっこしてもさっぱり原因がわからないんで誰かご教授ください package { import flash.display.*; import flash.geom.*; public class Etude extends Sprite { public function Etude() { addChild(new BgShape()); }}} import flash.geom.*; import flash.display.*; class BgShape extends Shape { public function BgShape(){ //背景タイル var tile:BitmapData = new BitmapData(20,20,true,0xffffffff); tile.fillRect( new Rectangle(0,0,10,10),0xffcccccc); tile.fillRect( new Rectangle(10,10,10,10),0xffcccccc); // 描画してるはずなのに? graphics.beginBitmapFill(tile); graphics.endFill(); }}
>>71 graphics.beginBitmapFill(tile);
graphics.drawRect(0, 0, tile.width, tile.height);
graphics.endFill();
>>72 うわわありがとうございます!
わかりました!
beginBitmapfillの使い方を完全に勘違いしてた様です
すいませんまた質問です addEventListener( MouseEvent.CLICK, start); と addEventListener( 'click', start); って上みたいに書く方(MouseEventなんたら)を推奨されてるみたいなんですけど これってなんででしょうか? 面倒なんで下のほうみたいに書きたいんですけど
>>74 trace(MouseEvent.CLICK);
>70 なるほど-16325 あたりになっとるんですな うーむ、めんどくさいけど、ゲーム作る上では当然意識しないといけませんね どもです
77 :
_ :2007/10/22(月) 10:50:34 ID:FdRHu379
質問です. ActionScriptでフレームレートの値を変動させるには どうすればよいのでしょうか?
78 :
Now_loading...774KB :2007/10/22(月) 15:22:36 ID:V2Q0zGDc
すみません教えてください 私自体はCプログラマです。現在Flashとの連携を 考えております。そこで以下の事ができるか教えてください。 インストーラー的な事です 1、特定のサーバーからEXEを含むファイルを読み込んで 2、PCのローカルに書き込み 3、書き込んだEXEを起動 現在 ActiveX+ベリサインを考えいますが Flashでできるんでしたらと思いまして よろしくお願いします
79 :
Now_loading...774KB :2007/10/22(月) 15:52:38 ID:MLLh9Prc
MovieClipLoaderについて質問です。 例えば、 _root -testMC -loadingMC という構成でMCを2個置くとします。 testMCには単純に矩形を描画して、とりあえず試しに this.onEnterFrame = function(){ this._rotation += 10; } とか書いて回しとくとします。 で、loadingMC内でMovieClipLoaderを使い、 jpgやswfを何かのタイミングで読み込むと、 ファイルのロード中(onLoadProgressが呼ばれている間)に testMCの回転も止まってしまうのですが、自分の環境だけでしょうか? ロードが終わればtestMCの回転も再開します。 onLoadProgress以外の処理が全てストップしているように見えるのですが… 読み込むswfやjpgのファイルサイズが小さい場合には気にならないのですが、 大きくなると止まっているのがよく分かる状態です…。 どなたかこの対処法などご存知ないでしょうか…?
>>78 Flash単品の場合
1.はAS3なら可能
2.が無理。
3.もブラウザ経由なら恐らく無理
>>74 腐れMSがよくやるがマイナーバージョンアップだけで
定数の仕様をコロコロ変えまくる事があるから
83 :
Now_loading...774KB :2007/11/01(木) 13:16:05 ID:XoSmjCFY
ActionScriptを使ってDBからCGIを介して得た情報をLoadVarsを使って やりとりするようなコンテンツを作ろうと思っています。 Adobeのツールを買うと10万近くするのがザラなので 日曜プログラミングの趣味のサイトにそこまで出すのはちょっと気が引ける。 廉価版として安く出回っているFlash作成ソフトで検討していますが、 オススメのソフトがあればお教えください。
>>83 AS用のIDEとして、FlashDevelop
※最新バージョンは、Java6対応なので気をつける。
とてもおすすめ!
AS2で開発なら、mtascやswfmillなどのフリーのコンパイラが同梱されているから、
直ぐに開発に入れる。
AS3で開発なら、adobeで Flex2-SDKを取ってくる(フリー)。
FlashDevelopからもFlex2-SDKでコンパイルできるのでOK!
onEnterFrameを使ったあとに、未使用状態になったら delete this.onEnterFrame;をすることで、処理が軽くなる と言う話を見たのでdelete文を挿入したのですが・・ 実際に問題なく動くのですが、deleteしてるのを確認する方法ってあるのでしょうか あれば御教授お願いします
traceしてみな
そいやそうですね orz と、いうわけで以下の用にtrace文をいれたのですが this.onEnterFrame = function(){ this.FirstMove(); trace("test") } this.stop(); てっきり、deleteが必要ってことはonEnterFrameは、他フレームに行った場合でも なにか残ってるのかなー とか思ってたのですが、 他フレームに行った場合はtrace文の出力は終了してました。 と、いうことはdeleteを入れるのは使いようによっては不要なのでしょうか? (他フレームに行くならflash側で勝手に消してくれる?) それともメモリかなんかの関係でやっぱりこまめにdeleteを実行すべきなのでしょうか? 重ね重ねすみませんがよろしくお願いします
その「this」がどこの部分にあたるのか知らないが、 MovieClipにenterframeイベントを適用させるわけだから、 そのMovieClipがなくなればイベント事体が起こらなくなるはず。 たとえば、createEmptyMovieClipで作成した場合は、フレーム移動しても 残ってるわけだから、deleteするかremoveするかしないとダメでしょう。
89 :
87 :2007/11/05(月) 22:01:35 ID:JrCeFWRJ
なるほど、納得です 丁寧にありがとうございました m(_ _)m
FlashMX2004を使用しています。 テンプレートを下敷きにクイズを製作しているのですが、 ・ドラッグしたシンボルをターゲットに重ねるクイズ ・シンボルとターゲットは各四つずつ ・コントロールボタンを押す事で「正解」か「不正解」かが判明する という手順までは出来ているのですが、 今の段階ではただ全体として間違っているか正解かという判別しかできないので、 コントロールボタンで答え合わせをした後に「どれが正解でどれが不正解か」を、 各ターゲットの上に大きな○か×で判別させたいと思っています。 ○と×のシンボルは出来ているので、合否を反映させてそれらを表示させればいいんじゃないかとは思っているのですが、 どのようにして答えの合否をASで区別・表現すればいいのかさっぱりな上、 シンボルをターゲットにドラッグしていない(問題に答えていない)状態まで加味しなければならない為、 もう何をどうしていいのか全く分かりません。 どなたかご教授お願い申し上げます。
if文を使えばいいと思うよ
マイクの入力を受けて 音量だけの数値を 0-255 とかでとれたりってできませんかね。。
93 :
90 :2007/11/15(木) 11:04:14 ID:S3kdmskH
>>91 ありがとうございます。
ですが、if文を使って何をどうすればいいのかさっぱりです・・・。
その様子じゃ作れないと思うよ。
できるよ
flareでできるんすかね。。
やってみればいいじゃない
frame 1 { gotoAndStop(1); } button 10 { on (press) { nextFrame(); } } すみませんできました。。 これってmxmlにできますか。。
できるよ。 で、元々おまえはなにをしたいんだよ。
絵と音を替えてつくりたいんです、 mxmlのサンプルコードが欲しいです。。
デコンパイラで生成されるコードはわかりにくいから、ある程度の知識がないならオススメしないぞ 上のコードでわからないようならなおさら ボタン生成とか音楽再生のサンプルコードなら普通に探せばあるだろ。
なるほどー>デコン 検索が苦手でして^^; コードを検索するときのtipsなどありますでしょうか・・
WebからJPEGファイルを大量に読み込んでパラパラアニメを表示するソフトを作っています。 JPEGファイルの一覧はXMLファイルから与えられ、個数は可変です。 現在は、 1フレーム目のASが実行された瞬間に、まず再生を止めて、 XMLファイル、JPEGファイルを読み、ムービークリップをどんどん重ねていってます。 JPEGファイルを読み込み終わった後、再生開始、2フレーム目は1フレーム目に戻るだけの処理を書いています。 1フレーム目に戻ったときに、1フレーム目の変数で読み込み終了したことがわかっているので、 表示用インデックス(何枚目のムービークリップを表示するか)をインクリメントして、 あるムービークリップ以外のムービークリップの_visibleをfalseにしています。 ですが、この方法だと、ムービークリップが100枚くらい重なることになり、いくら_visibleを falseにしたところで、枚数が増えるとどんどん遅くなっていってしまいます。 JPEGのデータだけロードしておいて、1枚のMCの表示内容をどんどん切り替える…みたいな 先にキャッシングを行っておくような処理はできないものでしょうか?
すみません。使ってるのはAS2です。
初歩的な質問なんですが ランダムな数をテキストボックスに100個表示させるものを作っているんですが 1つのテキストボックスに100個表示させるにはどうしたらいいんでしょうか。 on (release){ for (i=1 ; i<=100 ; i++){ box = Math.floor(Math.random() * 100) + 1; } } なんとなくこのような感じかとは思ったんですが…
>>106 ステージにダイナミックテキストボックスを作って、
インスタンス名を txtBox にする。
下記のコードをルートのタイムライン上にペーストする。
var cnt:Number = 0;
var timeID:Number;
function Execute( c:Number ):Void {
//乱数発生
var n:Number = Math.floor(Math.random() * 100) + 1;
//テキストボックスに入力
_root.txtBox.text += n;
//カウンタを更新
cnt++;
//指定回数実行したら、スクリプト終了
if( cnt == c ){
clearInterval( timeID );
}
}
//指定回数実行する:最後の '100' が指定回数
timeID = setInterval( _root, 'Execute', 200, 100 );
AS2の初歩的な質問です。 ASで作ったTextFieldを消したいのですが _root.createTextField("test_txt",_root.getNextHighestDepth(),150,0+i*20,200, 30); test_txt.text="testtest"; _root.test_txt.removeTextField(); こういったスクリプトを書いたのですが、実行してもtest_txtが消えません。 申し訳ありませんがどこか間違っている方いましたらお答え願えないでしょうか?
>>108 参照がズレているのでしょう。
MCでもテキストフィールドでも、クリエートする時は、素直に戻り値を参照に使った方が良い
例)
var SANSHO:TextField = _root.createTextField("test_txt",_root.getNextHighestDepth(),150,0+i*20,200, 30);
SANSHO.text="testtest";
SANSHO.removeTextField();
>>107 考えていた物よりずいぶんと違ったいたので驚きました。
じっくりと勉強させてもらいます。
ありがとうございました。
111 :
Now_loading...774KB :2007/12/09(日) 01:12:54 ID:znKpjuiS
質問です。2秒ごとにy方向に10ずつ動くようにしたいのですが、 開始2秒までは良いのですが動き始めると止まりません。何がいけ ないんでしょう・・・ onClipEvent(load){ y = 10; } onClipEvent(enterFrame){ timer = Math.round(getTimer()/1000); if(timer >= 2){ this._y += y; timer = 0; } }
timer = 0; ってかいても、変数timerに0を代入するだけで、getTimer()で得られる 値が0に巻き戻される訳ではないのです。 timer = Math.round(getTimer()/1000);の次の行に trace("timer = " + timer); って書いてみるとよくわかります。
>>111 getTimerで時間を計るのあまり正確ではないと思う。
簡単にやりたい場合は、setInterval()を使ったほうが簡単。
でも、setInterval()での時間の扱いは、正確ではないらしいので、
正確にしょりしたいのならば、1フレーム毎に確実に処理をしてくれる、onEnterFrameを使って、
フレームレートで処理したほうがいい。
onClipeEvent(load){
//カウンター
var cnt = 0;
//待ちフレーム数:フレームレート X 秒
var fm = 30 * 2;
}
onClipeEvent( enterFrame ){
cnt++;
if ( cnt % fm == 0 ){ //カウンターが待ちフレーム数で割り切れるとき処理をする
this._y += 10;
}
}
※このままでは、変数 cnt がオーバーフローしてしまうので、適当に初期化する条件文を追加してください。
>>113 ちなみに、AS2のNumber型は整数ではなくて倍精度実数なので、
問題になるのはオーバーフローではなく桁落ち。
AS3でint型のcntを使う場合は30FPSで2年間はリセット不要で開きっぱなしにできるし、
そうじゃない場合は倍精度実数の精度は52ビットなので、数百年間は大丈夫。
どうしても心配なら、動かすたびにcntを初期化した方がいい。
以下参考のために、getTimer()でやりたい人のための例
onClipEvent (load) {
var lastmove = getTimer(); //最後に動かした時間を保存
var waittime = 1000*2; //動かす間隔(2秒×1000)
}
onClipEvent ( enterFrame ) {
var time = getTimer();
if ( (time-lastmove) > waittime ) {
this._y += 10;
lastmove += waittime; //lastmove = timer;と書いた場合との違いを考えてみよう
}
}
質問させてください
FLASH8を使っています。
DataGridで表示まではできたのですが
各列のヘッダーをクリックして並び替えを行うと
数値まで文字列順になってしまいます。
「1,2,3,4,5,10,20」のはずが「1,10,2,20,3,4,5」となってしまいます。
ttp://www.adobe.com/support/documentation/jp/flex/1_5/asdocs_jp/mx/controls/DataGrid.html でそれらしい設定を探してみましたが力不足で見つかりませんでした。
どこかでスタイルを定義してやる必要があるのでしょうか。
もしくは値の受け渡し方がまずいのでしょうか。
116 :
Now_loading...774KB :2007/12/17(月) 01:50:01 ID:HKXx0Oyp
質問です 配列のas文はどういう使い方をするもんなんでしょうか?
117 :
Now_loading...774KB :2007/12/17(月) 11:51:33 ID:62McV/i8
質問です FlashCS3の描画ツールで描いた絵をSpriteに変換することは出来ないんでしょうか?
FlashDevelopでドキュメントクラスってどうやって設定するの?
>>115 ちゃんと並んでるじゃん(w
ファイル名のソートと同じで、先頭文字から判断しての並べ替え。
数字じゃなく、文字で並べると考えましょ。
>>117 いってることの意味がよくわかんないけど
Flashで描いた画像を読むには一旦swf書き出して
[Embed(source='image/hoge.swf')]
private var Hoge:Class;
addChild(hoge);
でいける
AS2 で以下のようにムービークリップの複製を作ろうとしたのですが 複製されたムービークリップの _width と _height が 0 になってしまいます。 使い方を間違えているのでしょうか?教えてください。 import flash.display.BitmapData; // 元を作る this.createEmptyMovieClip("mc", this.getNextHighestDepth()); var bmp:BitmapData = new BitmapData(100, 100, false, 0x000000); mc.attachBitmap(bmp, mc.getNextHighestDepth()); // 元を複製する var prop:Object = { _x:100, _y:100, _width:50, _height:50 }; var dup:MovieClip = mc.duplicateMovieClip("dup", this.getNextHighestDepth(), prop); trace(dup._x +", "+ dup._y +", "+ dup._width +", "+ dup._height);
てst
>>116 配列の使い方の一例です。概要だけの説明なので、
かなりアバウトな説明になりますがご了承ください…
配列のASを用意
TEST0=["名前",値段","コメント"]
TEST1=["みそラーメン","500円","味噌の味がする!"]
TEST2=["とんこつラーメン","600円","とんこつの味がする!"]
TEST3=["カレーラーメン","600円","本場インドから直輸入!"]
↓
ダイナミックテキストを3つ用意
変数名「RAMEN_NAME」のダイナミックテキスト(ラーメンの名前)
変数名「RAMEN_NEDAN」のダイナミックテキスト(ラーメンの値段)
変数名「RAMEN_COMMENT」のダイナミックテキスト(ラーメンのコメント)
↓
押されたボタンによって表示される文章の内容が変わるASを書く。(AS省略…)
↓
最終的に、ラーメンの画像をクリックしたら
解説の文章が表示されるホームページが出来上がります。
…解説、わかりにくかったらすまん(汗
質問です。 アクションスクリプトでキーボードのF5キーを押したいのですが可能でしょうか? もしくはブラウザをリロードさせるようにしたいのですが何か良い方法あります でしょうか?
125 :
124 :2007/12/19(水) 01:40:51 ID:bCxV60rF
申し訳ございません。 自己解決しました GETURLでjavascriptのリロードを使用したらできました。 お手数おかけしました。
126 :
Now_loading...774KB :2007/12/20(木) 04:08:24 ID:Y6o46z9O
質問です。 PHPからデータを受け取るスクリプトを作ってるのですが、 どうしてうまくいきません。 【AS側】 System.useCodepage = true; myVars = new LoadVars(); myVars.load("list.php"); myVars.onLoad = function(success) { if (success) { data1 = myVars.data1; aa.text = data1; } else { aa.text = "NO"; } }; 【PHP側】 <?php echo $data1 = "AAA"; ?> で、aa.textに表示されるのはundefinedとなります。 宜しくお願いします。
>>126 <?php
echo "data1=AAA";
?>
で、試してみてください
128 :
Now_loading...774KB :2007/12/21(金) 17:54:53 ID:AiZORCez
AS3の質問です。 Spriteを継承したクラスのインスタンスを 配列やリストのようなものにまとめて管理 したいんですけどどうすればいいですか?
シングルトンクラス作ってDictionaryかなんかに ストックしておけばよし。 でもお薦めしない。 データモデルをストックするようにすべし。
130 :
Now_loading...774KB :2007/12/23(日) 20:29:19 ID:REvtQhyS
var star:Star = new Star(); addChild(star); List.push(star); if (List.length > 10) { var del:Star = List.shift(); removeChild(del); delete del; } Spriteを継承したStarクラスのインスタンスを作って そのインスタンスの数が10を超えたら手前から消していくというものですが ※エラー: 固定プロパティ del を削除しようとしています。削除できるのは、動的に定義されたプロパティだけです。 というようなエラーが発生してしまいます。 何か助言をよろしくお願いします。
>>130 deleteはいらない。
オブジェクトのインスタンスは、参照がなくなれば自動的にガベージコレクタの対象になる。
わざわざdelという変数を用意しなくても、次の一文でOK。
removeChild(List.shift());
132 :
Now_loading...774KB :2007/12/23(日) 23:33:32 ID:REvtQhyS
>>131 そ、そうだったんですか!
ありがとうございました。
>>131 今までC++などでdelete多様してたんで心配なんだけど
スプライトA、BがあったとしてBに画像をaddChildして貼ってたとする。
AはstageにaddChild
BはAにaddChildされてたとするじゃん?
( [stage] - [A] - [B] - [画像] )
このとき、Bの画像をremoveChildしたら
画面から消えるけど、Aは空っぽのBをChildしたままで
Bクラスのインスタンスは消えないんだよね?
それと
A内でBをremoveChildしたときも気になる。
Bへの参照が失われるからBが消えて、Bが消えたことによって
画像への参照も失われて全消し?
心配もなにも、C++とは違うんだからそれでいいだろ それでも心配なら自分で検証でもしてみるんだな
>>133 大体そうだけど、BitmapDataはdisposeしないと心配が現実になるよ。
BitmapDataってなんで消えないんだろうな
>>133 孫の方は、ほかに参照がなければちゃんと消えてくれるよ。
空っぽの親については残る。
むしろイベントリスナーがつきっぱなしだと
そっちが原因でメモリリークが発生したりするので
そっちを気にした方がいい。
要は「ちゃんと消えてくれるように書け」ということ。
ちゃんと設計しないと、C++のようには軽快に再描画してくれないぞ。
138 :
Now_loading...774KB :2007/12/25(火) 16:46:56 ID:oHGVfb1u
質問です。 下記条件でloadingが正しく動いているかをローカルでテストする良い方法はありませんでしょうか? ・動いているloadingが最低でも2秒以上表示される(理想は表示秒数が任意に設定出来る) ・FTPに何かをアップしてそれを参照するのはNG ・AS1.0、AS2.0どちらでも可 flashのバージョンはflash8を使っています 何卒ご回答をお願いいたします
ムービープレビュー中のダウンロードのシミュレートではダメなの?
140 :
Now_loading...774KB :2007/12/25(火) 19:35:11 ID:nBfhGU2H
該当スレがなかったのでここで質問します。 FlexBuilder3でAIRを触っているのですが、 任意の拡張子に関連付けされているアプリケーションを 取得することは可能でしょうか? ActionScriptから直接できないのであれば、 外部コマンドからassoc等を呼び出そうと考えていますが、 外部コマンドが使えるかも分かりません… よろしくお願いします。
141 :
Now_loading...774KB :2007/12/25(火) 19:45:08 ID:oHGVfb1u
>>139 それだと秒数がどれくらいあるのかが分からないのと、たまにloadingが動かない時があるので厳しいです
ダウンロードのシミュレートで十分だと思うけど 2秒くらいなら別に秒数計らなくても大体見当付くし 秒数よりも体感のほうが重要な気がするんだよね。 ムービーのタイミングとか待てる工夫してれば比較的気にならないサイトもあるし。 というか使い方知らないとか? プレビューしたあとでもっかいコマンド(コントロール)+リターン押すんだよ? ダウンロードの設定で回線遅く設定すれば、 どんなに小さいファイルサイズでも動いてるとこ見れるはずだし。
package { import flash.display.*; import flash.text.*; //HelloWorld public class HelloWorld extends Sprite { public function HelloWorld() { var textField:TextField=new TextField(); testField.text="HelloWorld!"; ← textField.autoSize=TextFieldAutoSize.LEFT; addChild(textField); } } } 矢印のあるところで×がでて、未定義のプロパティtextFieldへのアクセスですって出るんだけどどういうことですか? 本買ってきたのにしょっぱなからつまずいた…
144 :
Now_loading...774KB :2007/12/26(水) 18:44:29 ID:Nihs+P0f
お願いします。 どなたかご存知でしたらたいへん恐縮ですが教えていただきたいのですが。 FLASHのバージョンはFLASH8です。 ムービークリップのカラーを少しずつ変えて行こうと以下のコードを書きました。 カラーチェンジはうまくいったのでキーフレームを挿入し this.gotoAndPlay(_currentframe-1); と入れました。 そしたら正常に動かなくなってしまいました。 HELP、各サイト、ブログ等で調べましたがどうしても解りません。 もしお解かりでしたら、教えて頂けないでしょうか。 参考になるHPアドレスだけでもけっこうです。 どうしても解らず最後に2chに来ました。 どうかよろしくお願いします。 onClipEvent (load) { import flash.geom.ColorTransform; import flash.geom.Transform; import flash.geom.getTransform; var gk1:Number =0; var ak1:Number =0; var c_timer:Number =5; } onClipEvent (enterFrame) { var trans:Transform = new Transform(this); var chn:ColorTransform = new ColorTransform(1, 1, 1, 1, 0, gk1, 0, ak1); trans.colorTransform = chn; if (c_timer == 0) { gk1--; c_timer = 5; } c_timer--; }
145 :
139 :2007/12/27(木) 01:24:11 ID:TLxWDUtR
>>140 NativeApplication.getDefaultApplication("ext")ではダメ?
それ以外は今のAIRには無いと思うよ...もちろん外部コマンド実行も無理。
>>141 loadingってgetBytesTotalとgetBytesLoadedであれするヤツだよね?
質問の意図を読み間違えてる?
>>143 志村、綴り綴り!
>>144 どこにActionScript書いて、どこにキーフレームを挿入して、
正常に動かないというのがどんな状態なのか分からないけど、
onClipEvent(load)が何回も呼び出されているとか、そんなん?
ところで
>>121 、どなたか教えていただけませんか?
とりあえず複製せずにattachMovieClipにして回避してるけど、
謎が残ったままで気持ち悪い...
146 :
143 :2007/12/27(木) 07:40:41 ID:BERtyTFa
>>145 &
>>121 import flash.display.BitmapData;
// 元を作る
this.createEmptyMovieClip("mc", this.getNextHighestDepth());
var bmp:BitmapData = new BitmapData(100, 100, false, 0x000000);
mc.attachBitmap(bmp, mc.getNextHighestDepth());
// 元を複製する
var prop:Object = { _x:100, _y:100, _width:50, _height:50 };
var dup:MovieClip = mc.duplicateMovieClip("dup", this.getNextHighestDepth(), prop);
dup.attachBitmap(bmp, mc.getNextHighestDepth());
dup._width = prop._width;
dup._height = prop._height;
trace(dup._x +", "+ dup._y +", "+ dup._width +", "+ dup._height);
stop();
こゆことか。次へ続く。
>>147 よくわからんが
・duplicateMovieClip()してもbitmapはdupされない?
・createEmptyMovieClip()で作成されるmcの幅高さは共に0で、
mcの中身がからっぽなままだと_width, _heightしても0のまま。それを
初期値を与えてDupしても_width, _heightは0のままになってしまう?
mcにはBitmap入ってて幅高さは100,100だから(表示するとそうなってる)
それをDupしたものも幅高さは100,100になりそうだけど、
BitmapはDupされないから0,0になってしまうんじゃないかなと。
だから、Dupする、BitmapをAttachする、幅と高さを再度、指定すると
いう手順だと表示されるようになるけど、Attachした時点で幅と高さが
書き換わらないのは不思議。
プロパティを一括コピーするメソッドか関数があればいいんだけど。
149 :
144 :2007/12/27(木) 11:11:59 ID:9x2vYm8X
>>145 デパッガによるチェックではonClipEvent(load)は一回のみのようです。
ActionScriptは新規シンボルにpngを貼り付け
タイプはムービークリップとしてシーン1に貼り付け
次第に赤くなってくることを確認し、次にシーン2を挿入し
キーフレームにして
this.gotoAndPlay(_currentframe-1); と入れました。
そうしたところまったく色が変化しなくなってしまいました。
デバッガのチェックでは内部の変数は正常に変化しているようです。
150 :
Now_loading...774KB :2007/12/27(木) 15:20:01 ID:B+EBA13s
>>145 いえ、合っています。
loadingってgetBytesTotalとgetBytesLoadedであれするヤツです
151 :
145 :2007/12/27(木) 17:55:53 ID:KDWWoaVB
>>147-148 おおー、なるほど。Bitmapへの参照がコピーされないからかぁ。
そこまで考えが及ばなかった...
どうもありがとうございます。すっきりできたよ。
>>149 その通りに作ったとしたら、gotoAndPlayする度に
loadイベントが発生してしまうはず...
チェックの結果を推量で話しているのが気になるんだけど、
デバッグはどの様にやってます?
>>150 ?
それなら
>>142 の言う通りでOKかと。
そもそもの趣旨はローカルでloadingのテストじゃなかったっけ?
152 :
144,149 :2007/12/27(木) 20:25:13 ID:LSbl/3D1
>>145 制御→ムービーのデバッグでデバッガを起動させ
onClipEvent (load) {
import flash.geom.ColorTransform;
import flash.geom.Transform;
import flash.geom.getTransform;
○var gk1:Number =0;←ここにブレークポイントを設定して
var ak1:Number =0; 1回のみを確認してます。
var c_timer:Number =5;
}
先ほどまで様々なやりかたを試みましたが
var trans:Transform = new Transform(this);
var chn:ColorTransform = new ColorTransform(1, 1, 1, 1, 0, gk1, 0, ak1);
trans.colorTransform = chn;
1ステップずつ進めていくと、ここの部分ではなく
やはり次のフレームの
this.gotoAndPlay(_currentframe-1);
ここで色が初期化されてしまっているようなんですが……
153 :
145 :2007/12/27(木) 22:37:34 ID:KDWWoaVB
うん、gotoAndPlay(_currentframe-1);がある場所は挿入した シーン2だからシーン1にあったインスタンスは消えて、 gotoAnd(ryでシーン1に戻ったところでムービークリップイベント発生、 のループになるはずだよ。
FlashDevelopでMS ゴシックを使ってたんですが文字化けが起きて エンコードをUTF-8にしたら直るということで、直ったのですが フォントが等幅でなくなってしまいました。 UTF-8で等幅フォントを使うにはどうすればいいですか?
155 :
154 :2007/12/28(金) 14:13:33 ID:oeHOX/eD
言い忘れました。 FlashDevelopのバージョンは最新の3.0.0 Beta5です。
156 :
144,149,152 :2007/12/28(金) 17:29:29 ID:8EbHEy33
>>145 デバッガではブレークしてくれませんが
変数ではない内部の値は初期化されているようです。
もう少しいろいろやってみます。
ありがとうございました。
>>154-155 エンコードがutf-8だと、ScintillaNET.xmlの
<value name="default-font">hoge</value>
のhogeの部分が日本語(2byte)文字のときフォントが無視されるね。
とりあえず、フォント名が日本語じゃなければOKっぽい。
>>157 神!超サンクス!!
monospaceもなぜか無視されたので色々試した結果
<value name="default-font">DotumChe</value>
で出来た。
ちょっと変なフォントだけどまぁ気にしない。
どうもありがとう!!
159 :
Now_loading...774KB :2007/12/31(月) 00:06:35 ID:ARg7BV2E
AS3について質問です。 root = ドキュメントクラスのインスタンス ですか?
年明け早々すみません。 getURLで現在のウィンドウを変えずにCGIへ変数を渡すことはできますか? txtファイルを作るperlの命令だけ実行させたいのですが。
>>159 addChildされた表示オブジェクトのrootならそうなるな。addChildされてないとnullだけど
>>160 AS2はあんまり詳しくないけど、できないはず
LoadVarsを使えばいいんじゃなかったかな
162 :
160 :2008/01/02(水) 17:19:18 ID:EAP2t1i5
>>161 ありがとうございます。
ニコニコはJavaScriptで書き込んでるのかな。
コメント送信してもすぐ反映されるし。
163 :
157 :2008/01/03(木) 00:05:18 ID:Nd5AQ6sn
164 :
157 :2008/01/03(木) 00:13:36 ID:Nd5AQ6sn
165 :
Now_loading...774KB :2008/01/03(木) 20:59:27 ID:IkcTXyB4
166 :
Now_loading...774KB :2008/01/05(土) 10:28:25 ID:KkOjXk/P
AS3でガーベッジコレクションされた時に呼ばれるメソッドってありますか? Javaはfinalize()らしいのですが…。
167 :
Now_loading...774KB :2008/01/06(日) 11:50:08 ID:6vS2M8rz
今、FLASHでホームページのメニューを作ってます。 メニューのサイズは大きく画面中央に配置されてます。 ボタンが6つほどで上辺にそれぞれ幅均等に離れておかれています。 ボタンは押すと、画面にテキストの表示がされる機能を持たせています。 メニュー画面には常に桜が上から散らされているアニメーションが あるのですが、(ムービクリップは7つほどでstopを200フレームに置いてます) ボタンを押すと桜のアニメーションが変化してしまいます。 多分これはボタンを押してフレームの位置が変わるためだと思ってます。 アニメーションは持続できてなおかつボタンだけ独立で動かせないでしょうか? わかりにくくてすみません。
168 :
Now_loading...774KB :2008/01/07(月) 00:33:23 ID:kVc767tM
初めまして。 swf(音声付動画)を外部からよみこんで、再生するようなプログラムを作っています。 動画の音量を調整するには、音声のみのサウンドオブジェクトを作って調整するしかないのでしょうか? 動画と音声を切り離さずに調整できればいいのですが…。 どなたか、ご存知の方がおりましたらお願いします。
質問させてください。 ケータイの自作メニュー画面の制作に取り組みたいと思い情報収集から始めているのですが カメラを起動するスクリプトといった各機能を呼ぶスクリプトはどこで公式に公開されてるのでしょうか。 自分が調べたあるサイトでは fscommand("launch","camera"); fscommand("launch","df"); fscommand("launch","M"); fscommand("launch","tools"); fscommand("launch","alarm"); fscommand("launch","calendar"); fscommand("launch","mymenu"); fscommand("launch","core/eznaviwalk"); fscommand("launch","modechange"); ここまでは載っていたのですが、赤外線通信やTouchMessageなどを呼ぶスクリプトが載っていませんでした。 どなたかご存じの方が居られましたら教えてください。
>>167 ボタンに書いたscriptが分からないと原因が分からないです。
それと桜のムービークリップの200フレーム目にstop();を付けたらアニメーションはループしないんじゃない?
>>168 音量調節が出来るものは、Soundオブジェクトに読み込んだ物か、flvだけです。
swfに変換した音声付動画の音量はASからはイジれないです。
どうしても動画と音声を切り離さずに音量調節をしたいなら音声付動画をflvに変換して埋め込むのをオヌスメします。
171 :
Now_loading...774KB :2008/01/07(月) 18:14:33 ID:PbtuyFX2
function nunu(a) { trace(a); } nunu("まんまん"); ってやるとa("まんまん")のパラーメータが渡されてtrace結果が [ まんまん ] って出てくれますが、 配列に自作の関数を入れて、それを呼び出したい場合 function_array = new Array(); function_array[0] = function(a) { trace(a); } function FnCall(a, b) { function_array[a].call(b); } FnCall(0, "まんまん"); とやってもtrace結果が[ undefined ]になってしまいます。 配列に格納した関数を呼び出してきちんと"まんまん"がtrace結果に表示されるようにするにはどうすればいいでしょうか? よろしくお願いします。
function_array[a](b);
173 :
171 :2008/01/07(月) 20:56:01 ID:PbtuyFX2
>>172 おぉ、動きました!
そういう記述にすればよかったんですね…。ありがとうございましたm(_ _)m
174 :
172 :2008/01/07(月) 22:01:51 ID:+MlpkZUU
>>173 もし上記の書きかたが気持ち悪いなら
function_array[a].call(null,b);
あるいは
function_array[a].apply(null,[b]);
callとapplyのマニュアルをちゃんと読もうな。
175 :
Now_loading...774KB :2008/01/08(火) 13:13:31 ID:2HMSZrlK
public function Hoge() { addEventListener(Event.ENTER_FRAME, Loop); } private function Loop(event:Event):void { // 処理 } HogeクラスがEventDispatcherを継承したらLoopが呼ばれないんだけど HogeクラスがSpriteを継承するとLoopが呼ばれる…。 上記の処理を行うにはSpriteを継承しないとだめなんですか?
>>175 EventDispatcherは単にイベント管理の仕組みを提供するだけ。
EventDispatcherを継承する場合、
どのイベントに対し、いつイベントを送出するかは自分で記述する必要がある。
ENTER_FRAMEのイベント処理自体はDisplayObjectがしているので、
DisplayObjectを継承したクラスならENTER_FRAMEを使えるよ。
DisplayObjectといっても、ENTER_FRAMEを送出してくれるのは タイムラインのあるMovieClipだけじゃなかったっけ 自分でやりたいなら、フレーム更新のタイミングごとに dispatchEvent(new Event(Event.ENTER_FRAME)) でイベントを送出する必要がある
>>176-177 なるほど、めんどくさいのでSpriteを継承してやってみます。
ありがとうございましたー。
179 :
Now_loading...774KB :2008/01/10(木) 13:22:39 ID:O9+VP+pG
FlashMX2004 + WindowsXP を使ってます。 以下のようにしてボタンコンポーネントにクリックイベントを設定しました。 ButtonTesterのtestメソッドにブレークポイントを張ってデバッグしてみたのですが、 クリックのイベント自体が来ていません。 どうすればいいのでしょうか? [flaファイル] ・ステージにボタンコンポーネント(インスタンス名:testButton)を配置 ・フレーム1に以下のActionScriptを記述 import mx.utils.Delegate; import ButtonTester; var buttonTester = new ButtonTester(); testButton.addEventListener("click", Delegate.create(buttonTester, test)); [ButtonTester.asファイル] ・以下のActionScriptを記述 class ButtonTester { var _clickCount:Number; function ButtonTester() { this._clickCount = 0; trace("コンストラクタ"); } function test(eventObject:Object) { trace(++this._clickCount + "回目のクリック"); } }
180 :
Now_loading...774KB :2008/01/10(木) 13:51:31 ID:J4Si6Nob
>>179 Delegate の使い方のミス
Delegate.create(buttonTester, test)
↓
Delegate.create(buttonTester, buttonTester.test)
>>180 ふおおお〜〜〜
ありがとうございます、動きました!
182 :
Now_loading...774KB :2008/01/11(金) 01:01:52 ID:7LK1U2jE
[Embed(source='hoge.swf')] で読み込んだswfのフレーム数とか取得するには どうすればいいですか?
たしか、MovieClipLoaderAssetクラス(MovieClipのサブクラス)のサブクラスになってるだけだから 普通のMovieClip同様に扱えると思う
>>183 [Embed(source='image/hoge.swf')]
private var hoge:Class;
private var mcHoge:MovieClip = new hoge();
public function Test
{
var frame:uint = mcHoge.totalFrames();
}
これでOK?
185 :
Now_loading...774KB :2008/01/11(金) 15:43:06 ID:RGXdoMg6
186 :
168 :2008/01/11(金) 16:54:24 ID:H1ufgMvf
>>170 ありがとうございます。
ではflvに変換してうごかしてみます
空のムービークリップは高さや幅の指定はできないのですか?
>>187 もしも何もないものの大きさを測れとかいわれても困るよな。
同様に何もないものを1メートルの幅にしろっていわれてもできないよな。
基本的にMCのサイズは、中身の物のサイズx拡縮比率、で決まってると
思っておいたほうがいい。
0には何をかけようと0、flashの設計的にはそういうこと。
たぶんスペースを確保したいとかだと思うけど、もしやるとしたら透明の
Boxかビットマップを置いて仮のサイズを決めとくくらいかな。
189 :
Now_loading...774KB :2008/01/12(土) 10:17:18 ID:CC/cSWv9
>>185 ありがとう。
ついでに聞きたいんだけど、swfの一番上層のMC(root?)
のフレーム数を取得したいんだけど
var tmp:MovieClip = MovieClip(root);
tmp.totalFlames();
でゼロが帰ってきた。
AS3、Flex 2、FlashDevelopで開発してるんだけど
そもそもrootって何ですか…?
ドキュメントクラスがstageで、それに初めてaddChildされたMCが
rootですか?
190 :
Now_loading...774KB :2008/01/12(土) 11:29:53 ID:jEJi3Ef7
var i:int = 1; var addtest:String = "testclass" + i; removeChild(addtest); などといったように、removeChildの引数に変数を使用することはできないのでしょうか?
>>190 なにから何を消したいんだ?バージョンもわからんし
var addtest:DisplayObject = this["testclass" + i];
あるいは
var addtest:DisplayObject = getChildByName("testclass" + i);
みたいなことなのか?
状況がわからんから↑のはたぶん動かない。
192 :
Now_loading...774KB :2008/01/12(土) 16:33:23 ID:ZHzj1kr2
>>190 文字列はremoveChildできんだろw
配列に参照を格納して使え
193 :
Now_loading...774KB :2008/01/12(土) 17:29:43 ID:VcnRJREe
質問です。action script3.0のエフェクトで玉が残像して追従する記述はないでしょうか?
>>189 前の質問の続きか?
いまいち質問の内容が分からないので整理してみると
Flex か AS3 で作っているプロジェクト(コンパイラはmxmlc)があって
それに Flash CS3 でコンパイルした SWF ファイルを Embed して
その Embed した SWF の root の totalFrames を取得したい。
ってことか?
そもそも root ってのは
ロードされた SWF ファイル内の表示オブジェクトの場合、
root プロパティはその SWF ファイルが表す
表示リストのツリー構造部分の一番上にある表示オブジェクトとなる。
>>185 のブログの内容を見る限りだと、
event.target.content が SWF の root と書いてあるだろ
event.target.content を MovieClip にキャストして
ソイツに対して totalFrames をよこせといえば取得できる。
195 :
Now_loading...774KB :2008/01/13(日) 18:25:37 ID:YCrYIyG8
初歩的な質問というか疑問なのですが、 FlashCSのactionscriptパネルの自動フォーマット機能ですが、 改行が入ってた場合、FlashCS以下では自動的に、改行を省いてくれていたのですが FlashCSでは、それがなくなったのでしょうか? たとえば、以下。 on (press) { gotoAndPlay(1); } これを自動フォーマットをかければ、 下記のように処理されていたのですが、 on (press) { gotoAndPlay(1); } なにか設定を施さなくてはならないのでしょうか? よろしくお願いいたします。
今からActionscriptを覚える場合、2.0→3.0と勉強するのと いきなり3.0を勉強するのとどちらがいいですか?
197 :
Now_loading...774KB :2008/01/14(月) 18:00:48 ID:ezKhm6wW
198 :
Now_loading...774KB :2008/01/14(月) 18:23:16 ID:vtz3i/k2
195さん。ありがとうございます。 これって、使いにくいと思いませんか?
AS3 Flex2 FlashDevelopで Keybord.UPとかできんのにKeybord.Xとかエラるんだけど何故だとおもう?
リファレンスぐらい読みながら作れ
201 :
Now_loading...774KB :2008/01/15(火) 01:29:37 ID:vVmvyrup
AS2.0なんですが、 nu_array = ["c","h","i","m","p","o"]; nunu = "k"; for(i=0; i<nu_array.length; i++) { if(nunu == nu_array[i]) { trace("(`・ω・´)"); break; } } 上記のようにfor文で回さなくても、配列の中に該当する単語が入っているかをif文ひとつでチェックする方法ってありませんでしたっけ? ちょっと前に友達に教えてもらって関心した記憶があるんですけど、いざ使うって場面になったらそれを忘れてしまって…
if( nu_array.indexOf(nunu) != 0 ) { trace("(`ω´)"); }
if( nu_array.indexOf(nunu) != -1 )だった。 いや、ごめんかなり適当。できんかもしれん
204 :
201 :2008/01/15(火) 04:41:26 ID:vVmvyrup
>>203 返信ありがとうございました。
if( nu_array.join("").indexOf(nunu, 0) != -1 )
にしたら、ちょっと不完全な気もしますが理想通りに処理出来るようになりました!
やっぱりfor文で回すより若干軽いみたいです。
AS3.0だとindexOfできちんと配列の検索が出来るけど、AS2.0だと配列の検索っていうのはないみたいですね…。
205 :
Now_loading...774KB :2008/01/15(火) 04:54:43 ID:9TKILx90
>>194 あ、すみません
ご返答見過ごしていました。
おかげさまで解決しました!ほんとうに感謝します!
ちなみにrootとstageについてお聞きしたいのですが
stageというのはドキュメントクラスのインスタンスで
それに初めてaddChildされたMCやSpriteがrootになるのですか?
開発環境はAS3 Flex2 Flashdevelopです。
>>205 リファレンスを見るということを覚えなさい。
stage は描画領域
root は表示される上では最上位。
stage の下rootがある。
定時(1:00や3:00)に指定フレームに飛ぶAS組みたいんだけど stop(); _root.onEnterFrame = function():void { var d:Date = new Date(); var m:Number = d.getMinutes(); } if(m=0){ gotoAndPlay("A1"); } じゃダメ?(メタクソなのは解ってる) 話にならん?
>>207 メタクソでも動けばいいならそれでいいんでない?
209 :
Now_loading...774KB :2008/01/15(火) 15:53:41 ID:AJBlOv62
アクセスされた時に、例えば朝なら「おはよう」昼なら「こんにちは」...なら 起動時のDateで判断できる。 ずーっと、起動しっぱなしって話ならsetIntervalで分ごとぐらいにチェック汁。
210 :
Now_loading...774KB :2008/01/15(火) 16:02:54 ID:eQHt6VZ4
Flash CS3でのAS3環境なんですが、 TextArea内のテキストを自動で横にスクロールさせたいです。 要するにHTMLでの「marquee」みたいな事をさせるにはどうしたらいいでしょうか? 配列にテキストを読み込ませて一文字づつ順番にずらしていくような地道な作業をしないとダメですか?
地道というかそれが普通だろw マーキーコンポーネントは無いと思うよw
212 :
Now_loading...774KB :2008/01/15(火) 17:03:39 ID:eQHt6VZ4
そっかあ。 地道に作ります…
>>206 そ、それだ!オレに足りないのはそれだ!!
ご丁寧にありがとう!!
ちょっちリファレンスをりふぁりふぁしてくるね!
214 :
Now_loading...774KB :2008/01/16(水) 16:11:28 ID:dO8/hHo+
>>14 亀レスなので、既に解決したしてるでしょうが念のため。
cgiなどをかますとキャッシュから読み込まれますので、
以下サンプルのように日付を入れて違うURLだよとだます方法があります。
path = "hoge.cgi?param=123";
path += "&date=" + new Date().getTime() ;
_mc.loadMovie(path);
>>210 addEventListerner(Event.ENTER_FRAME, EnterFrame);
function EnterFrame(event:Event)
{
if( x < -width )
{
x = stage.width;
}
else
{
x++;
}
}
おれがやるとしたらこうかなぁ…
x--; だった。
217 :
Now_loading...774KB :2008/01/18(金) 18:14:12 ID:iI/vs/sE
age
>>210 TextAreaってことは複数行?まさかね。
一行だったら、自分ならマスクかけてUITextFieldごと動かす。
文字をループさせるなら二つつくって入れ替える。
文字を1文字ごとにばらして配列に入れて 順序を入れ替えればいいんじゃね?
220 :
Now_loading...774KB :2008/01/19(土) 06:37:32 ID:ugpaXtzh
AS2.0の環境です。 FC2の無料ホームページスペースを借りてホームページを公開してるんですが、 フォルダ内にあるJPGの画像枚数を調べるために、 onLoadComplete(またはonLoadInit)とonLoadErrorを使ってフォルダ内の画像枚数を取得しようとしたんですが、 ローカル、または知り合いがレンタルしてる有料サーバでは正常に動くのに FC2ではonLoadErrorを返してくれません。 (テキストフィールド作ってtraceの真似事してみたらJPG画像がないのにonLoadCompleteまたはonLoadInitを返してきます) FC2サーバはそういう(?)サーバなんでしょうか? actionscriptに関しての質問じゃないんですけど、他の板で聞いてきた方がいいですかね…?
>>220 FC2のことはFC2にメールするなりして聞いてください
ASに付いて聞きたいならコードを提示する
どうやって枚数取得してるんだ?普通CGIとか使うけどな
今現在AS3を覚えている最中なんですが、いかんせん素人なもので 記述を一個一個暗記して、なおかつ英語も苦手なので意味も含め覚えていってます。 本気で覚えて行くには、もっとなにか効率のいい方法はないでしょうか? ちなみにスクリプトを覚えていくのは初めてです。
どういう風に暗記してるかしらないけど、最初の内は大体そんなもんだろう ある程度慣れたら、暗記せずともやりたいことをリファレンスから探せる力をみにつけると楽だよ
>>222 俺が思うに暗記するよりも
ひたすら何かを作ってみることがいいとおもうぞ!
なにもつくれねぇYO!っていっても
hello worldのソースはあちこちにちらばってるし
そのソースこぴぺしていろんな字を出力してみるとか
そしたら何かしらエラーがおきてつまずくから
そしたら調べる物が生まれるってわけさ。
>>222 コード入力サポート付きIDEを使うのが吉。
FlashDevelop(フリー)とかお薦め。ぐぐってちょ!
sample=new Array(new Array()); と配列を宣言して sample[0][0]="sample" と入れられるけど sample[1][0]="sample" と入れられないのは何故なのですか?
>>226 sample[1][0]="sample";
の前に
sample[1]=new Array();
>>227 できましたー
ありがとうございます^^
229 :
Now_loading...774KB :2008/02/06(水) 10:28:00 ID:U1xUbtmA
AS2.0で質問です。 MovieClipLoaderで読み込ませたswfに変数を渡したいのですが、一応今やっている方法が、 //ローダー側 mcLoader.loadClip("imgPage.swf", loader_mc); for(i=0; i<8; i++) { loader_mc.currentArray[i] = imgSet[i]; } //ロードファイル側 var currentArray:Array = new Array(); this.onEnterFrame = function() { if(currentArray[0] != undefind) { trace("success"); delete this.onEnterFrame; } } このようにして一応は動くのですが、たまに反応が無かったり不安定な動作です。 もっと確実できちんとした読み込み方法があれば教えて下さい。
230 :
Now_loading...774KB :2008/02/06(水) 10:44:01 ID:oqrA136f
>>229 たまに動作不良って別に原因があるとしか思えないけど。
これでいいんじゃない?
//ローダー側
this.createEmptyMovieClip("main", this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
for (i=0; i<8; i++) {arget_mc.currentArray[i] = "hoge"+i;}
};
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(mclListener);
mcl.loadClip("test_load.swf", main);
//ロードファイル側
var currentArray:Array = new Array();
this.onEnterFrame = function() {
if (currentArray[0] != undefind) {trace("success");delete this.onEnterFrame;}
};
>>230 詳しいソースありがとうございます。
currentArray[0] != undefindという指定の仕方が、タイミング違いで反応がまちまちになる原因?とも考えてましたが。
他の箇所をもっと見てみた方がいいですね。ありがとうございました。
232 :
Now_loading...774KB :2008/02/07(木) 18:17:54 ID:HZKRqrOD
印刷に関する質問です。 ボタンをクリックして、MC_mainをA4サイズでプリントアウトしたいので、 以下のスクリプトを書きました。 on (release) { var x = _parent.MC_main._xscale; var y = _parent.MC_main._yscale; _parent.MC_main._xscale = 200; _parent.MC_main._yscale = 200; my_pj = new PrintJob(); my_pj .start(); myW = my_pj.paperWidth; my_pj.addPage(_parent.MC_main , {xMin:topLeft, xMax:topRight, yMin:bottomLeft, yMax:bottomRight} , { printAsBitmap : true } , null); my_pj.send(); } MC_mainはw250×h350のムービークリップなので、2倍サイズにすると、 A4にはおさまっているのですが、この書き方では、MC_mainの表示も2倍になります。 MC_mainの表示サイズはそのままで、印刷では2倍にするにはどのように スクリプトを書けばよいでしょうか? ご存知の方いらっしゃいましたら、よろしくお願いします。
BGMを鳴らしていて、あるフレームラベルのところへ飛ぶと そこから徐々に音量を小さくミュートしたいです。 ご教授おねがいいたしまする。
235 :
Now_loading...774KB :2008/02/09(土) 18:15:00 ID:JnsgUYWW
>>232 addPage前にscaleを2倍にし、addPageした後に1倍に戻せばどう?
236 :
Now_loading...774KB :2008/02/10(日) 17:22:56 ID:iVaZXszS
TextAreaのキャレット位置をActionScriptで設定することはできないのでしょうか。
237 :
Now_loading...774KB :2008/02/10(日) 19:32:08 ID:hrWdN2Q8
>>236 import fl.managers.*;
import fl.controls.*;
var area=new TextArea();
var bt=new Button();
bt.x=100;
var fm=new FocusManager(this);
var field=area.textField;
area.text="aaaaaaaaaaaabbbbbbbbb";
bt.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e){
fm.setFocus(area);
field.setSelection(5,8);
}
addChild(area);
addChild(bt);
>>237 すいません、AS2.0でした。
しかしsetSelectionでできそうです。ありがとうございました。
239 :
Now_loading...774KB :2008/02/14(木) 15:07:11 ID:hk8CRzhN
ActionScript3.0でフォルダの中身って見れるのでしょうか?
見れない
241 :
oteagejotai :2008/02/15(金) 11:13:15 ID:JvCLyU0j
AS 2.0,Flash8です。たったこれだけのコードです。 //▼LV0.message0の値が「1」なのに、if文の条件に合格しない。 if(LV0.message0=='1'){//←ここに合格しない //次の画面へ gotoAndStop("top");//(A) }else{ message0=LV0.message0;//(B) } ・LV0.message0にphpから「1」の値を返しています(※)。 ですので、最初のifの条件に合格して次の画面に 進む(A)はずなのですが、条件に合格しません。 ・最初のifに合格しないのでelseに入るわけですが、 じゃあmessage0には何が入力されているのかと 画面上に表示させると(B)、「1」が表示されるのです。。。 ・ちなみにif文の条件式は、1をシングルクオーテーションや ダブルクオーテーションで囲んだり、あるいは囲まない方法も 試してみましたが、どれもだめでした。 なぜ最初のifに入らないのか、不思議でなりません。 ・1はちゃんと半角です。 どうぞ宜しくお願い致します。
ロードしたときの一番最初 LV0.message0が未定義になっているのでは? var val = LV0.message0;//この一文を加えて、 if ( val == 1 ){ //条件文をこのように書き換えて 試してください。 失敗したらメンゴ
>>241 まず何を使って読み込んでいるのか?
MovieClip.loadVariables、LoadVars、XML等。
それと、ASのバージョンは?
たぶんおなじみの読み込み待ち処理し忘れなんじゃね?
245 :
oteagejotai :2008/02/15(金) 14:30:39 ID:JvCLyU0j
>>243 ありがとうございます。
LoadVarsで、ASのバージョンは2.0です。
無理やりでもifを通したかったのでいろいろ試していたところ、
php側で1を入れたあと、
if(parseInt(LV0.message0)==1)
とparseIntを行うと、やっと通りました。
parseIntがなくてもクォーテーションなどで
うまくいかない理由が分かりません。
そもそもは「""」を返して判定していたのですが、
「""」「''」「null」のどれで判定してもうまくいかなかったため、
数値「1」を入れたという経緯です。宜しくお願い致します。
> //▼LV0.message0の値が「1」なのに、if文の条件に合格しない。
> if(LV0.message0=='1'){//←ここに合格しない
> //次の画面へ
> gotoAndStop("top");//(A)
> }else{
> message0=LV0.message0;//(B)
> }
>
> ・LV0.message0にphpから「1」の値を返しています(※)。
> ですので、最初のifの条件に合格して次の画面に
> 進む(A)はずなのですが、条件に合格しません。
>
> ・最初のifに合格しないのでelseに入るわけですが、
> じゃあmessage0には何が入力されているのかと
> 画面上に表示させると(B)、「1」が表示されるのです。。。
246 :
Now_loading...774KB :2008/02/17(日) 01:19:37 ID:C95z5+0o
>>245 数値でも受信したら文字列扱い
<?
echo "&a=1&";
?>
var lv=new LoadVars();
lv.onLoad=function(s){
if(s){
if(this.a=="1"){
trace("OK");
}
}
};
lv.load("echo.php");
247 :
Now_loading...774KB :2008/02/17(日) 17:08:21 ID:/n8XbsYi
CS3の自動フォーマットってなんだありゃ!? バカすぎて話になんねえ 人の作ったコードを勝手に破壊すんなお! てめぇは選択した範囲のネスト内の余白だけ調整してりゃいいんだお!!!
248 :
oteagejotai :2008/02/20(水) 22:05:17 ID:VXQx0jqj
>246 ご返信遅くなり失礼致しました。 echo.phpというやり方も、&ではさむやり方も 実はイマイチわかっていないので調べてみます。 しかし数値が文字列になることが分かりました。 ありがとうございました。
249 :
Now_loading...774KB :2008/02/22(金) 16:21:32 ID:QYos1r1h
突然ですが質問です。 今アクションスクリプト2.0を勉強中なのですが・・・ どうもとっつきにくく、悩める日々を送っております。。 皆さんアクションスクリプト2.0はどこで勉強してるんですか? 何かオススメの本とか、サイトとかあったらぜひご教授お願いします。
ヘルプ
Flash板質問スレROM
252 :
Now_loading...774KB :2008/02/26(火) 00:08:39 ID:ZqOQg5tt
ボタンをロールオーバー時に、MCを上下に動かすために 上に動かすためのボタンには on (rollOver) { _root.MC._y += 10; } on (rollOut) { _root.MC._y += 0; } のような記述をしています。 ロールオーバーしている間中、ずっとMCを動かしたい(ロールアウトで止まる)のですが どのように記述すればよいのでしょうか。
はじめまして、お教えいただきたいのです winxp、flash8、As2.0なのですがホームページ用の フォトアルバムっぽいものを作っています そこで、本体の軽量化のためサムネイル画像をを外部から読み込んで ボタン内のmcに表示させようと思っているのですが 思うようにいかなくて泣きそうです。 構造は _root→本体mc→ボタン類mc→各ボタンmc→ボタン→外部読み込みmc となっていまして 外部読み込みmcのフレームには ローディングmcと読み込み先mcがあり、Asはローディングmcに onClipEvent (load) { loadMovie("image/BtnImage01.jpg", ImgBoard_mc); と、とりあえず書いています。 (ImgBoard_mcのターゲットパスがわからないため・・・^^; ) もし、解決方法がおわかりなる方がいらっしゃればお教えいただきたいです。 あと、ローディングmcに書き加えたい onClipEvent (enterFrame) { if (100 == Math.floor(getBytesLoaded()/getBytesTotal()*100)) { this.gotoAndPlay("comp"); という部分もどのように改変すればよいのかお教えいただけると感謝です ぜひぜひよろしくお願いいたします。
>>252 hitTestとenterFrame使えばいんじゃね
>>253 >(ImgBoard_mcのターゲットパスがわからないため・・・^^; )
すまんが、問題点がよくわからん
思うようにいかないってところがどうなのかわからんぞw
AS2のクラスの事で質問させて下さい タイムラインに new BottonTEST(g); クラスファイルに class BottonTEST { var bMC:MovieClip; function BottonTEST(mc:MovieClip) { bMC = mc; init(); } function init() { bMC.onPress = btnPress; } function btnPress() { trace(this); this._x += 20; } } これでコンパイルすると「'_x' という名前のプロパティはありません」とエラーが出てしまいます、_alphaとかを指定しても同じです function init() { bMC.onPress = btnPress; function btnPress() { trace(this); this._x += 20; } } initの中へbtnPressを移動させると動いたのですが、この違いは何故起こるのでしょうか? trace(this)ではどちらも「_level0.g」と表示されるのに謎です
継承してねーからじゃねーの
Ajaxのlightwindowを使うためNNだけずれてるので別ウィンドウで開き その他のブラウザはAjaxで開くようにしたいのですが asでブラウザ判別することは出来ませんか? こんな感じかと思ったら出来ませんでした↓(lightwindowの部分は合ってる) on (press) { var uAgent = navigator.userAgent; if (uAgent.indexOf("Netscape") > 0){ getURL("BBB.php",blank); } else{ getURL("javascript: myLightWindow.activateWindow({href: \'AAA.php\', width: \'600\', height: \'600\', title: \'NEWS\', author: \'\', caption: \'\'});"); } }
誰か俺を助けてください onClipEvent (load) { loadMovie("image/BtnImage01.jpg", this.sum_01_mc.board); というコードで外部画像BtnImage01.jpgをboardに読み込ませています ローカル環境では読み込んでくれるんですが、サーバーにうpすると board_mcとは切り替わっているみたいで、board_mc自体は 見えなくなっているんですが、画像が表示されなくなっています。 困ってしまいもう頭が禿げそうです
htmlとswfの場所と違うとかjpgうpしてねーとかじゃなーの
>>260 >ローカル環境では読み込んでくれるんですが
ブラウザで動作確認したかどうか?
プレビューでは問題ないがブラウザで動かない場合>261
>サーバーにうpすると
>board_mcとは切り替わっているみたいで、board_mc自体は
>見えなくなっているんですが、画像が表示されなくなっています。
ごめん意味がわからない。やっぱり>261か
※デレクトリパスはhtml基準になる。htmlとswfの場所が違う場合注意。
jpgファイルを直接呼び出して見る
403が返ってくる場合.htaccessでノーリファラーを禁止している
ブラウザによってはloadMovieが動作しなくなる。
※ごくまれにだがサーバーが禁止してる場合もある。
404等、表示されない場合ファイルの上げ忘れか場所間違えか破損。
onClipEvent (load) じゃなくて他の方法でloadMovieするかどうか試す。
ブラウザによって読み込みの挙動が違う場合があるからASの位置によってはうまく動かない場合もある。
IEでローディングバーがどうやってもでてこない・・・ 全部読み込むまで真っ白なままで表示された瞬間100%表示になる
264 :
263 :2008/03/01(土) 05:07:41 ID:F7Wx3uEh
自己解決 htmlのタグをflashが標準で吐き出すobjectとembedの方に戻したらきちんと表示されました
265 :
Now_loading...774KB :2008/03/10(月) 15:54:05 ID:/o0qFzVY
4の倍数がきたときだけラベルok、そのほかはラベルngへ飛ばすにはどうすれば良いでしょうか? if(a == 4 || a == 8 || a == 12) { gotoAndPlay("ok"); } else { gotoAndPlay("ng"); } ↑の方法しか思いつきませんorz
%
267 :
Now_loading...774KB :2008/03/10(月) 16:26:23 ID:QPdqET1f
>>260 onClipEvent (load) って、rootのSWFで使うと
時々挙動不審になったりする経験がある。
>>265 数学?そんなの社会に出たらつかわねーよw
とか言う人っているよね。
というのはさておき、4の倍数かどうかをどうやって調べるかは、
aを4で割って余りが0ならaは4の倍数なので以下略。
aが少数含んでると0との比較は浮動小数点的に不安あるけど、そこんとこどうなんだろ。
こんなんでダメか? if(!(a%4))gotoAndPlay("ok"); else gotoAndPlay("ng");
皆さんありがとうございます。 %で余りを使うとは考えもしませんでした。 皆さんのお蔭で無事にできました。本当にありがとうございました。
271 :
Now_loading...774KB :2008/03/11(火) 15:12:13 ID:z0d5ffGU
ActionScript3で質問です。 Input.type = TextFieldType.INPUT; で中に入力したStringの取得ってどうやればいいんですか?
よくわからんが、処理したいイベントが起きたときに イベントリスナーで、取得すればいんじゃね
273 :
Now_loading...774KB :2008/03/12(水) 02:35:13 ID:DUCJOv3T
環境:AS2.0 配列でsample.shift()で先頭を消して 一番後ろを常に代入し続けていくとだんだん処理が重くなるのですが これは別に原因があるのでしょうか? 処理はおそらく下のような感じだと思うのですが・・・ sample[1,2,3] shift sample[2,3] 代入 sample[2,3,4] shift sample[3,4] 代入 sample[3,4,5] 以下延々とボタンを押すごとに処理をしていく。
?
shiftとpush()を繰り返してるんだろうか、それともsample[2] = n; なのだろうか、毎回、new array()してるんだろうか。 > 処理はおそらく下のような感じだと思うのですが・・・ 自分で書いた処理なんじゃないかと問い詰めたい。
お願いします。 環境Flash Pro 8 PC用のFLASHで月と日にちを取得して365日違う絵を表示させるにはどうしたらいいでしょうか。 数字を1桁2桁に分割して1〜9の画像に置き換える方法は分かるんですが…
質問です。 クリックした際、ブラウザの「戻る」や「進む」、「ホームページ」などをなくし フラッシュで作ったサイズだけで表示させたいのですが。 フラッシュだけのスクリーンにするにはどうすればいいでしょうか?
>>278 JavaScript。ちょっとだけ板違い。
>>277 違う絵ってのは、外部JPG?それともSWF埋め込み?
>>280 埋め込み式でやりたいです。
月取得してから日にち取得で2階層、
32フレームにそれぞれ32枚画像を持たせたMCを呼び出すような感じで考えているんですが…
//日にち毎の背景設定
go_1 = "bg01"; go_2 = "bg02";go_3 = "bg03";go_4 = "bg04";
go_5 = "bg05"; go_6 = "bg06";go_7 = "bg07";go_8 = "bg08";
go_9 = "bg09"; go_10 = "bg10";go_11 = "bg11";go_12 = "bg12";
go_13 = "bg13"; go_14 = "bg14";go_15 = "bg15";go_16 = "bg16";
go_17 = "bg17"; go_18 = "bg18";go_19 = "bg19";go_20 = "bg20";
go_21 = "bg21"; go_22 = "bg22";go_23 = "bg23";go_24 = "bg24";
go_25 = "bg25"; go_26 = "bg26";go_27 = "bg27";go_28 = "bg28";
go_29 = "bg29"; go_30 = "bg30";go_31 = "bg31";go_32 = "bg32";
goes = eval("go_" add dates);
tellTarget("tsuki01"){
gotoAndPlay(_root.goes);
}
エラーが出ます\(^o^)/
携帯用のASとごっちゃになっててワケが分からなくなってきました。
あ、なんか自己解決できたみたいです。すんまそん。
なんでその日一枚だけの画像のために366枚埋め込むんだよw
284 :
Now_loading...774KB :2008/03/17(月) 01:46:35 ID:arzxdFIJ
ActionScriptが実行時にデータとして保持しているABCファイル(ASのバイトコード)を、 ActionScript Virtual Machineに認識させて実行する方法があると聞いたのですが ぐぐってもなかなかそれらしき情報にたどり着けません。 その方法をご教示願います。AS2・AS3のどちらの情報でも構いません
285 :
284 :2008/03/17(月) 02:35:01 ID:arzxdFIJ
Loader::loadBytesでバイト列として保持されたSWFを読み込めば、所定の目的は達成できそうです。 ありがとうございました。
え?
Flashで現行のCRエヴァのようなパチンコゲームを作りたいのですが スクリプトに疎く、どういう組み方をすれば出来るのか検討もつかないので 色々と自分なりに調べてみました。 しかし、手ごたえのある情報を見つけることが出来ませんでしたので そういうゲームを作るに足る情報が載っているオススメの本やサイトを ご存知の方はいらっしゃいませんでしょうか?
質問です。 マウスイベントを使用しないで、 例えばタイムライン5で一時停止を10秒間した後、 タイムライン6から再生させる記述はないでしょうか?
たまにはsetTimeOut()関数のこと、思いだしてあげてください。 以外と知られてないのかな、この関数。
おはようございます。 ムービークリップ上に配置したボタンインスタンスに メインシーンのフレーム1から再生しなおせ、という命令文を置きたいのですが どうしたらいいでしょうか。 swf自体を再読み込み、みたいな感じなんですが… tell target〜だとMCしか指定できませんよね。 これ指定先を大元のシーン1にする方法ってあるんでしょうか…
すみません、自己解決しました。 キーワード検索したら過去ログが引っかかったw on(press){ gotoAndPlay("シーン1",1); } で、おkでした。
と、思ったら… シーン1の1フレーム目に飛ぶのはいいんだけど、 ゲーム内容がそのまま記憶されたままになっている…orz これじゃゲームオーバー後に再開だから意味がないorz
んなもん2フレーム目以降にゲーム配置すればいいだろ
>>294 >ゲーム内容がそのまま記憶されたまま
初期化すればいいし、あるいは
>swf自体を再読み込み、みたいな感じ
getURLで実際に再読みこみされりゃいい。
>>294 1〜3フレーム目はローディング画面で
実際のゲームは4⇔5フレームで状態受け渡ししながらループしてるみたい。
出来合いのサンプル改良してるだけなんだけど…
>>296 初期化はどうやるんですか?
getURLは分かるんだけど、できればswf内で解決したいです。
ゲーム部分が1フレーム目から地続きなんじゃないの? 再開地点とゲーム処理の間に空白のフレームを挟んでみなよ
>>298 1フレーム目に空フレーム入れて
それぞれのAS内のフレーム指定を1ずつズラしてみたんだけど、
やっぱりゲーム内容が記憶されたまま再開になってしまう/(^o^)\
ちなみに神経衰弱です。
カウントダウンつけてタイムが0になると全画面ダミーボタンで覆われて触れないようになるって感じにしてるんですが…
>>299 後半のような 問題の本質と関係ない説明をされても分からんよ
まぁ Flash の基礎を勉強していけばある日解決するさ
投げておいてなんだが すまん ゲーム部分をメインタイムラインに直に書いてたんだな ゲーム処理をMCにすればいいと思うよ んで再開地点から地続きにならなければ大丈夫かと
う〜ん、うまく行かないorz リトライボタンは諦めました。 とりあえずゲームオーバーになったらswf開きなおせばいいや的にw おさわがせしました。
303 :
Now_loading...774KB :2008/03/28(金) 01:06:58 ID:UIkbm5dp
真剣衰弱ってことは「クリックしたら〜〜する」ってな命令があるんだろ? AS覗けないからこんな方法しか出せんが、 その命令を初期状態になるよう全ての関数に命令出せば解決するんじゃね めんどくさいが
>>303 > 真剣衰弱 → ×
神経衰弱 → ◯
閉じてる話題だし 方法もバカス
306 :
Now_loading...774KB :2008/03/30(日) 15:33:51 ID:FZ1kgWls
AS3.0のsharedobjectでリアルタイム共有ができるんですか?
SharedObjectは1.0互換だろJK
AS辞書にはできるようなこと書いていたけど・・・気のせいか。 回答thx
気のせいっつーか、AS1.0でもできるからさ
mjdk スマン、てっきりローカルにしか保存できないものばっかりと思ってた・・・
まー2.0以下のドキュメントにはFCSの別書読め位でまともに記載されてないからな。 Adobeに和訳PDFが置いてあったと思うけどURL忘れちまった。悪い。 SharedObject.connect辺りでググればサンプル出てくると思うから適当に調べてみてよ。 AS3.0とも互換してるから3.0用のリファレンスでも参考になるんじゃないかしらね
312 :
Now_loading...774KB :2008/03/31(月) 22:24:36 ID:yWVe/zJz
ActionScriptって物理ができないと習得できない?
314 :
310 :2008/04/01(火) 02:07:57 ID:DxhkcEig
>>311 thx
まァこれからボチボチFlexでAS3.0弄んでみる。
315 :
Now_loading...774KB :2008/04/08(火) 19:01:16 ID:msCOnszu
別スレッドでも質問させてもらっているのですが 反応が薄かったのでこちらでも質問させてください。 FMS3を使い、ログ出力をしたいのですが、 たとえば、FLVの視聴時間、アクセス日時、 IPアドレスなどの情報をビジュアライズ化して表示したいのですが (csvファイルなどで出力もできるととても嬉しいです。) 標準機能では見当たらないのですが、なにか、チュートリアルやサンプルファイルなど ご存知でしたらお教えください。 宜しくお願いします
すいません。 PHP上で呼び出されるswfファイル内から PHP側でセットしたクッキー情報にアクセスする方法って あるのでしょうか?
>>316 sendAndLoadでクッキー情報を吐き出すPHPにアクセスするか、
swfを準備するとき、あらかじめFlashVarsにクッキー情報の値を入れておくか。
318 :
316 :2008/04/09(水) 09:58:49 ID:hN9SyLfZ
319 :
Now_loading...774KB :2008/04/12(土) 17:54:33 ID:ORc1xjRM
質問です。 flashに埋め込んだ音楽のピッチや速度、音程なんかはASで変化させることが出来るのですか?
321 :
Now_loading...774KB :2008/04/13(日) 11:49:12 ID:8UC753yS
319です、 ぁー… やっぱりそうですかぁ、残念ですorz 返答ありがとうございました。
322 :
Now_loading...774KB :2008/04/13(日) 16:17:09 ID:8UC753yS
変数についての質問です、 MCを自由な位置へ移動させそのX,Y座標をダイナミックテキストに表示させようと思うのですが、 座標を知りたいMCのASに、 onClipEvent(){ X座標 = this._x; Y座標 = this._y; } と記述し、ダイナミックテキストの変数部分にそれぞれX座標、Y座標としたのですがうまく行きません アドバイスよろしくお願いします。
>>322 onClipEvent() ← このカッコの中にイベント名を書かなければならない
イベント名
load MCがインスタンス化されタイムラインに表示されたときに一回だけ実行する
enterFrame 毎フレーム実行する
mouseDown MCを左マウスボタンを押すと実行する
keyDown キーを押すと実行する 最後に押されたキーを知るにはKey.getCode()を使う
ほかにもいっぱいあるけど後はリファレンスで調べてね
配置したムービークリップとは別に、instance1という名の 別のインスタンスが見えないところで動作しているのですが、 これは何でしょう??? そのMCに onMouseDown = function(){ trace(this._name); } と記述して実行するとインスタンス名が二つ出力されます。 ちなみに作っているのは、いくつかFLVを貼り付けたコンテンツです。
>>324 ムービークリップに明示的に名前を宣言せずに配置すると
デフォルトの名前がinstance1、instance2・・・・となります
名前をつけずにMCを配置してませんか?
>>326 ↓でセットしてみるとか
if (xml.namespace("") != undefined) {
default xml namespace = xml.namespace("");
}
>>325 説明不足でした、すみません・・・。
ええと、インスタンス名 test_mc としてムービーを配置すると、
同じムービーがもうひとつ動いているようなのです。
(つまり、test_mcとinstance1という二つの同じムービーが出現してしまいます)
>>328 どうやってMCを作って配置したのかわからんが、
ウィンドウ-->ムービーエクスプローラーで確認してみるとか。
330 :
326 :2008/04/14(月) 16:21:36 ID:6oG57tRd
>>327 ありがとうございます。
namespaceでググったら解決できますた。
AS3.0で一定周期で表示更新していくにはどうすればイイノですか? 今までフレームでしていたのですが Flex環境になってよくわからなくなりました・・・。
>>331 Event.ENTER_FRAMEもしくはTimer
TimerEventの間隔時間の指定はどうするのですか?
ぁ、自己解決しました。
>>332 さんありがとうございました。
335 :
Now_loading...774KB :2008/04/20(日) 14:05:43 ID:r5NuGKSH
教えてやってください。 AIRアプリを作ってます。 NativeApplication.nativeApplication.getDefaultApplication(extension:String); これでアプリケーションのパスがとれるのですが、 このアプリケーションを起動させることってできますか? たとえば、getDefaultApplicationでエディタのパスを取得した後、 開きたいファイルのパスを指定してエディタを起動させる というようなことがやりたいです。 よろしくお願いします。
336 :
Now_loading...774KB :2008/04/20(日) 18:25:18 ID:gWt3kvcB
AS3のマウスイベントについて質問です。 マウスイベントを設定したMC_Aの上にMC_Bが重なっている状態です。 MC_Aにマウスイベント(ROLL_OVER,ROLL_OUT)を設定したのですが MC_Aにマウスがロールオーバーしている状態で MC_Bにマウスが重なるとロールアウト判定されてしまします。 MC_Bについてマウスイベントを無視する方法はありませんでしょうか? よろしくお願いしますm(_ _)m
>>336 MC_B.mouseEnabled = false;
でどうだろうか
338 :
Now_loading...774KB :2008/04/20(日) 20:27:22 ID:gWt3kvcB
>>337 mouseEnabled = false;
で解決できました。
神速な回答ありがとうござます。
339 :
Now_loading...774KB :2008/04/24(木) 11:02:13 ID:CnL6PBll
textfieldで質問。 textfieldをマルチラン(ワードラップ有効)で設置してるときにtextfieldの見た目の一行目(scrollプロパが返す行)に 書かれているテキストを取得する方法を知りたいです、もし可能であればご教示下さい。 ワードラップが有効なので実際は一行で書かれたテキストが二行に渡って表示されている箇所があり、 単純に textfield.text を "\n" で split して目的の行のテキストを取得しようとしたらズレが生じてしまいました。 見た目の行数によって処理をしたいので ・ ワードラップによる折り返しがある行はその折り返し点までのテキストを取得したい ・ 折り返し点以降のテキストは次の行のテキストとして取得したい という動作を望んでいます。 環境はwindowsXP、AbodeFlash CS3、Actionscript2.0、exeでパブリッシュ、です、よろしくお願い致しますm(_ _)m
340 :
Now_loading...774KB :2008/04/26(土) 16:48:36 ID:b2/vGOiH
クリックするとstartDragとかでつまんで動かせるMC上にあるボタンが、 お盆に乗って運ばれてきたのに永遠にお預けされた食事のように機能しません。 対処法はありますか?
ボタンが反応していないんですか?ボタンが機能しているがstartDragだけが機能しないのですか? お盆には直接食べ物が乗っているんですか?
>>840 お盆MC.食事BTN
で、お盆がon(press){this.startDrag();}
食事がon(release){}みたいになってるんだろ?
onハンドラが重なってると下層のものは無効になるからね
食事のon(release){}が上になるように工夫汁。
例えば
お盆と同じ形の透明MCを作って
下のレイヤーに配置。そっちにon(press){this.startDrag();}を書いて
お盆MCの座標にenterFrameで透明MCの座標を入れてやる。
onClipEvent(enterFrame){
_root.お盆MC._x=_root.透明MC._x;
_root.お盆MC._y=_root.透明MC._y;
}
みたいな感じでどお?
actionscriptで動的に作ったMCがね、_rootが次のフレームに移動すると消えちゃうんだけど、 消えないようにするにはどうしたらいいの?
>>342 ありがとうございます。
やっと食事にありつけました。
>>344 は解決しました。 というか消えてませんでした。
347 :
Now_loading...774KB :2008/04/29(火) 14:21:34 ID:wEt66jY2
Flex3です ImageコントロールにComboBoxのようなドロップダウンリストを持たせるようなことは、簡単にできますか?
以下のXMLを読み込むプログラムを作成(・・いろんなサイトを参考にしつつ自分なりに理解)しました。 AS2.0では問題無く動くのですが、AS3.0にすると以下のメッセージがでます ・移行の問題:actionscript3.0ではonLoadイベントハンドラはflash playerによって実行時に 自動的にトリガされません最初にこのイベントハンドラをaddEventListener("load",callback_handler)を使用して登録する必要があります ・loadはXMLのメソッドじゃないよ 下記のソースをAS3.0に対応するにはaddEventListenerの記述がいるのでしょうが xmlをロードする場合はどういう記述をすればいいのでしょうか? 3.0である必要性はなく興味本位なのですがよろしくお願いします m(_ _)m ---以下作成プログラム 同一フォルダにある"data.xml"を読み込んで表示する------- this.RoadXML() // 外部XMLの読み込み function RoadXML(){ var objXML:XML = new XML(); objXML.ignoreWhite = true; objXML.onLoad = function() { parse(objXML); } objXML.load("data.xml") } // XML確認 function parse(objXML){ // XMLデータを出力 trace ("\n 読み込んだXML"); trace (objXML.firstChild); }
351 :
348 :2008/04/30(水) 18:57:09 ID:4uj89aTc
>349,350 どうもありがとうございます。それ用の物ができたんですね 興味本位で新しいAS3にした方がいいんじゃないかな、と思ってたんですがAS2から変更点多いんですね やっとこさ使い慣れたアンダースコアが消えててショック _x _width etc それなりに慣れたAS2でいくか、見栄はってAS3でやってみるか・・ よく考えてみようと思います ありがとうございました m(_ _)m
352 :
Now_loading...774KB :2008/05/02(金) 17:00:22 ID:1N2a4mRb
AS2で質問です。 振り分け → MC_B.play() or MC_C.play() → 振り分けに戻る(繰り返し) という流れを作ってるんですが、MC_BやMC_Cが終わったら振り分けに戻って繰り返す部分が判りません。 onClipEvent でムービークリップが終了したら振り分けのメソッド呼ぶようにしたら良いのではないかと思うんですけど 方法を教えてください。
353 :
Now_loading...774KB :2008/05/02(金) 17:27:49 ID:1N2a4mRb
ていうか、ムービークリップが終わってから次の処理をさせたいんだけど。 どうしたら良いのか兆速で教えてください。
>352 >>onClipEvent でムービークリップが終了したら〜 MC._currentframe==MC._totalframes MCの最終フレームで振り分けメソッド読んでもいいんじゃない?
355 :
Now_loading...774KB :2008/05/02(金) 17:41:46 ID:1N2a4mRb
356 :
Now_loading...774KB :2008/05/02(金) 18:07:36 ID:1N2a4mRb
this.attachMovie("MC1",_mc1,10); _mc1.play(); trace(_mc1._totalframes); これでplayはできるんですが、undefinedになってしまうんです。なにがマズイんでしょうか? ちなみにMC1は15フレームです。
357 :
Now_loading...774KB :2008/05/02(金) 18:11:25 ID:1N2a4mRb
あと、これもundefinedです。 trace(_mc1._currentframe); 何かとてつもないミスをしてるんでしょうか?
attachMovieの第2引数
AS2で質問です。 画像を拡大/縮小する際、Flash MX上からだと、デフォルトでスムージングが掛かりますが、 コレをプロパティのチェックからではなく、ActionScript側から制御できませんか? _quality = 'low'; だと他のTextやShapeも荒くなってしまうので、何か方法があると助かります。 (FlashをPHP-mingから生成しいるので、スレ違いだったらすみません;)
すいませんが、asファイルを使って外部にasを記述しようとしているのですが、 いいサンプルサイトないでしょうか .flaのルートから読み込む方法がいまいちピンとこないので・・・ どうかよろしくお願いします
361 :
Now_loading...774KB :2008/05/04(日) 19:05:17 ID:RV6eX3NM
F1押せ
362 :
Now_loading...774KB :2008/05/04(日) 19:25:48 ID:MEo4Vl2I
ActionScript3で質問です。
「ボタンを押したら新しいウインドウを開く」という機能のmxmlファイルを作っているのですが、全然動いてくれません(;;)
何か致命的な勘違いをしているのでしょうか…
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="
http://www.adobe.com/2006/mxml " layout="absolute" width="640" height="480">
<mx:Script>
<![CDATA[
public function run():void{
//1.ウインドウオプションを設定します
var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
windowOptions.systemChrome = NativeWindowSystemChrome.NONE;
windowOptions.type = NativeWindowType.LIGHTWEIGHT;
//2.上記オプションを持つ新規ウインドウを作ります
var newWindow:NativeWindow = new NativeWindow(windowOptions);
}
]]>
</mx:Script>
<mx:Button x="387" y="152" label="run" width="179" fontSize="12" click="run()"/>
<mx:TextInput x="97" y="154" width="263" text="
http://www.pixiv.net/member_illust.php?mode=medium&illust_id=756313 " id="textInput"/>
</mx:WindowedApplication>
>>361 ありがとうございます
helpのここにある記述のことを指摘されてるのだと思うのですが・・
・読み込まれたスクリプトおよび書き出されたスクリプトのエンコーディング
ここのように、asファイルの記述を丸々読み込むのでは無く
import 、include(?)を使用する例を探しているのですが何か無いでしょうか
FlashDevelop 3.0.0 b7 を使用しています。 trace()で何もでないのでいろいろと調べたら、FlashConnect.trace() というのがあるとのことで、試して見たのですが、 未定義、見つかりませんとエラーが出てしまうのですが解決策をお願いします。 以下は、ためしに組んで見たスクリプトです。 AS3もプログラムも初めてなもので、何か誤解しているかもしれません。 そのあたり、間違いを指摘していただけると幸いです。 package { import org.flashdevelop.utils.FlashConnect public class NewClass { public function NewClass() { init(); } var a:int = 100; var b:int = 200; var c:int = 0; public function init():void { c = a + b; FlashConnect.trace(c); } } }
>
>>364 あれ?FlashDevelopはだいぶ前からtraceをサポートしてるはずだけどなぁ
projectはどれを選んでる?
ActionScript3.0です。 スレッドの実行をn[ms]停止させるには、どう書けばいいですか?
>>366 スレッドと言われてもわからんぞ
具体的にどういう事をやりたいか書く
>>367 どもです
読んでみます
>>368 TextAreaを(MARQUEEタグみたいに)自動で横スクロールさせたいと思って、こんなコードを考えてみました。
private function scroll():void{
textArea.width= textArea.length*12;
for(var i:int=0;i<textArea.length;i++){
textArea.x -= textArea.length*12;
//【ここで100msほど待たせたい】
}
}
任意の時間、処理を一時停止させることができれば便利だなあと。
ループ処理の間は画面描画は行われないからそのコードだといきなり 終わりの状態で表示される TimerかEvent.ENTER_FRAMEを使ってずらす関数(ハンドラ)を呼ぶのがいい
371 :
364 :2008/05/05(月) 19:43:44 ID:FIzzl4MI
ディフォルトプロジェクトです。 とりあえず最初の Main.as に以下のように書いて見ましたが、output に出ません。 プレーヤーを変更とかいうようなことが前バージョンでは必要だったようですが、 in new tab , popup , external player のどれを選んでも新しいタブでしか開かれないのですが。 package { import flash.display.Sprite; public class Main extends Sprite { public function Main():void { var a:int = 100; trace(a); } } }
>>370 ありがとうございます。
Timerを使って書いてみました。
こう書くと一応動きますが、Canvasに水平スクロールバーが出てしまいます…
どうすれば水平スクロールバーを非表示にできるでしょうか(;;)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml " layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #4FC57B]" initialize="scroll()">
<mx:Canvas x="141" y="119" width="482" height="164" borderStyle="solid" borderColor="#41B156" borderThickness="2" cornerRadius="9" autoLayout="false">
<mx:TextArea x="10" y="30" width="930" borderStyle="none" backgroundColor="#FFFFFF" backgroundAlpha="0.0" wordWrap="false" fontSize="14" height="38" editable="false" enabled="true" id="textArea">
<mx:text>スクロールさせる文字列:あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやいゆいぇよらりるれろわゐうゑをん</mx:text>
</mx:TextArea>
</mx:Canvas>
<mx:Script>
<![CDATA[
var delay:uint = 50;
var repeat:uint = 100;
var myTimer:Timer = new Timer(delay, repeat);
public function scroll():void{
textArea.width= textArea.length*20;
myTimer.start(); myTimer.addEventListener(TimerEvent.TIMER, timerHandler); myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler); } private function timerHandler(e:TimerEvent):void{ repeat--; textArea.x = textArea.x-6; statusTextField.text = ((delay * repeat) / 1000) + " seconds left."; } private function completeHandler(e:TimerEvent):void { statusTextField.text = "Times Up."; } ]]> </mx:Script> <mx:TextArea x="171" y="366" width="392" id="statusTextField"/> </mx:Application>
374 :
Now_loading...774KB :2008/05/06(火) 15:19:35 ID:pKdej3Ek
こんにちは、よろしくお願いいたします。 ダイナミックテキストの中身を サーバーから取った改行区切りのデータで 1ループごとにランダムに変化させたいのですが・・ my_lv = new LoadVars(); my_lv.onData = function( src ) { str = src.split("\n"); fieldtext = str[ int(Math.random()*400) ]; }; my_lv.load("line_split_html.php"); これだと1ループごとにDBに接続して不可になってしまいますよね? my_lv.loadをifにして一回だけにして my_lv.onData = function( src )の配列strを、どうやって外に取り出して参照できるのでしょうか?
質問させていただきます。 AS2.0で、祝祭日や今日は○○の日と表示する絵が変わる物を作りたくて以下のようなスクリプトを作りました。 // 月と日付を取得 t = new Date();/ mm = t.getMonth()+1; dd = t.getDate(); // 管理しやすいように、月と日を4桁にする(頭に0を付けて下2桁だけ抽出) today = ("0"+mm).substr(-2,2)+("0"+dd).substr(-2,2); //日付別にフレームに移動 if (today>=0101 && today<0104) { //正月 Mc.gotoAndStop(1); } else if (today == 0203) { //節分 Mc.gotoAndStop(2); } else if (today == 0211) { //建国記念日 } このように指定日になると、ムービークリップ「Mc」内のフレームに移動指定をしています。 ここまでは問題なく動作します。 しかしある特定の数値、具体的には0429や08xx、09xxを指定すると 「トレーリングガベージが見つかりました」というエラーが出て指定できません。 //エラーが出る例 } else if (today == 0429) { //昭和の日 Mc.gotoAndStop(5); なぜこれらの数値でのみエラーになるのか理由がわからないので対処法がわからず困っております。 そもそもトレーリングガベージがどんなエラーなのかもわからな(ry どうか救いの手を…
todayって文字列なんじゃねーの?
なぜ8進法なんだろうと思って調べてみたら、 0から始まる文字列を数値に変換した際、勝手に8進法として解釈される仕様だそうで…。 エラー出た文を } else if (today == parseFloat("0429")) { Mc.gotoAndStop(5); parseFloatで数値をそのまま返して解決できました。 ホントありがとうございました!
376のいうようにtodayは文字列なので、 if (today == "0429"){...} とか if (today>="0101"){...}//辞書順比較 じゃねーのかな
レス番↑377の間違い
Flash と CGI を連携させる方法がわかりません。 どうか、loadVariablesNum の使い方解る方いませんか? また、CGI(Perl)でどう受け取れば良いんですか?
382 :
Now_loading...774KB :2008/05/08(木) 00:41:09 ID:CCOQbFbZ
>>382 OK、あり。早速調べてみる。
なんか、ここいら辺は結構入り組んでて、
自分で最適なのを見つけるのが難しい気がするなぁ・・・。
ドキュメントクラスのコンストラクタに記述していくことって、 Flash のルートのフレームにアクションを記述することと同じ、って考えていい? もちろんFlashにはフレームの概念があるから、Flexなんかだけでつくるのとは 若干違うとして。
同じと思う flashのルートにMovieClipを直接おいてドキュメントクラスでそれを操作するなんてこともできる
386 :
384 :2008/05/15(木) 09:36:23 ID:ztmHezKy
たとえば、Flashのルートに TestTextField ってインスタンスを作って、 ドキュメントクラスのコンストラクタに TestTextField.x += 100 TestTextField.text = "TESTMESSAGE" とかやっても TestTextField が未定義って言われちゃうのはなぜ? ルートのフレームに同じ事を書くと通るんだけど。 ドキュメントクラス = ルートのフレームアクション って考え方が間違ってるって事?
ドキュメントクラスのソースが出てないので何とも言えないが、 メインタイムラインはドキュメントクラスのインスタンスとして考える。 つまり、メインタイムラインでテキストフィールドとかを使おうと思ったら、 ドキュメントクラスでMovieClipを継承し、テキストフィールドをインポートして おかないとだめだと思う。
CS3環境AS2.0です。マウスイベントについて質問させて下さい。 ComboBoxと、ボタンクリップを交互に操作していると。 ボタンクリップの反応が遅くなる現象が発生しました。 (連打できてた処理ができなくなる程度) 手順は、 ・ボタンクリップで操作 ↓ ・ComboBoxオブジェクト操作 ↓ ・ボタンクリップを操作する 交互に触らない限りは、遅さは感じません。 何か、解放?関係の処理か、マウスのフォーカス辺りで注意すべき事があれば 教えていただけないでしょうか。
遅さを感じるといわれてもわからんw 具体的に何秒待たないと有効にならんとか、理解できる表現で書いてくれw
390 :
388 :2008/05/21(水) 13:11:40 ID:H2GQL7ss
>>389 説明不足ですいませんでした。
さらに細かく書くと
・ボタンクリップをクリックすると、特定のムービークリップの座標を動かす
という処理を行っています。
・ComboBoxオブジェクト操作後、ボタンクリップをクリックすると、
1回目のクリックは、普通に反応し、
2回目のクリックは、1秒くらい待たないと反応せず。
3~4回目以降は、一度ボタンクリップのイメージの範囲内でマウスカーソル
を動かしてからでないと、反応しませんでした。
・ALT+TABとかで、窓の切り替えを行うと、通常の反応速度に戻りました。
ComboBoxオブジェクトと、ボタンクリップの階層は
_root.AAA.ComboBox
_root.AAA.BBB.CCC.ButtonClip
のような配置になっています(AAA~CCCはすべてMovieClip)
わかりづらくて申し訳ないです。
FlashDevelopでBuild Current File をやると、なんかの拍子に、特にちょっとコード書き換えた時に、 swfの出力される場所が初期のsrcフォルダ内だったり、その上だったりするんだけどバグかな?
392 :
Now_loading...774KB :2008/05/31(土) 00:22:06 ID:lmiirBK0
こっちだった・・ ゲーム制作で行き詰っています 画像を沢山使いたいのですがソースが繰り返しで大量になってしまします。 例) [Embed(source='***001')] private var ***001:Class;...略(***002〜***100) private var selectImg:Array=new Array(100); 何か良い方法ありませんか? よろしくお願いします。
10種類の敵に10種類の玉を当てる場合、hittestは10回書く以外に方法はないのでしょうか? 10種類の敵に1〜10の番号をつけ、for分の中でまわしてみましたが、 上手くいきませんでした。 for、enterFrame、hittestを組み合わせるのは、流石に無茶でしょうか。
>>393 当たり判定がうまくいかないと言っている場合は
その方法でもできるはずです。
というかその方法が一番効率的です。
hairetsu = [0,0,0,0,0]; という風に一つの変数の中に配列で数値が入っているとします。 この入っている数値が全て0かどうかを確かめるには if (hairetsu[0] == 0){ if (hairetsu[1] == 0){ if (hairetsu[2] == 0){ …………(以下略 と記述するしかないのでしょうか?もっと簡略な記述方法があれば是非参考にしたいので教えて頂きたいです。よろしくお願いします。
395ですが自己解決しました。すみません。
ASのエディタのスレがありましたら教えてください。
検索して無ければ無いのでしょう。自分で立てるかググって他サイト等を捜しましょう。
400 :
Now_loading...774KB :2008/06/06(金) 17:20:32 ID:FP4+RqPB
AS3でAS2のeval関数みたいな使い方出来るやつってないですか? for文で一気にムービークリップを連番で宣言したいんですけど、ヘルプ見ても分かりませんでした。 もしくはムービークリップの名前を動的に変えるにはどうしたらいいでしょうか?
無けりゃ自作すりゃいい
402 :
Now_loading...774KB :2008/06/07(土) 04:57:14 ID:JH8xy+Dw
403 :
Now_loading...774KB :2008/06/07(土) 21:19:01 ID:F+ZY8hxU
FlashDevelopというツールを使ってActionScriptで開発することになったんですが ActionScript3.0の入門用サイトって無いでしょうか? さっぱりわからないので・・
グーグルっていうところで検索すると見つかると思いますよ。
>>404 見つけられなかったんで
何というキーワードで検索すれば見つかりますか?
409 :
Now_loading...774KB :2008/06/15(日) 15:53:25 ID:bUWMXaCW
AS3のとあるソースに、外部ファイルをLoaderでロードして、読み込んだイメージを特定のSpriteに表示させる方法に loaderのデータをdrawで描画したbitmapを作り、それをSpriteにaddChildしてやってるのを見たのですが これって無駄手間にはならないのでしょうか?自分なら直接loaderインスタンスを特定SpriteにaddChildすると思いますが 描画するという方法と直接addChildする方法で何か違いや利点はあるのでしょうか?
さぁねぇBitmapとして扱いたかったのかもねぇ。 でもそれならLoaderのcontentをキャストして取り出せばいいだけなんだが。 とりあえず作った人に聞け、ってとこか
class controlMc1{ private var mc:MovieClip; private var cmc:controlMc2; function controlMc1(base:MovieClip){ mc = base; cmc = new controlMc2(mc.movieClip2); cmc.rotateCircle(90); } } class controlMc2{ private var mc:MovieClip; function controlMc2(base:MovieClip){ mc = base; } private function rotateCircle(r:Number):Void{ mc.circle._rotation = r; } } class main{ private var cmc:controlMc1; function main(){ cmc = new controlMc1(_root.movieClip1); } } _rootにmovieClip1を配置、movieClip1の中にmovieClip2を配置、movieClip2の中にcircleを配置 実行するとcircleが90度回転する FlashOOP本のP389にあるコードからの引用です controlMc2の5行目はprivateではなくpublicだと思うのですが(実際privateだと動かない) 誤植なんでしょうか?
412 :
Now_loading...774KB :2008/06/16(月) 01:06:39 ID:TnrMt4Dc
2.0を使ってるんですけど、外部mp3を読み込んでfukidashiっていうmcのplay_bを押すと再生。 そのままfukidashiのフレーム2に移動してボタンの色を変えてます。 stop_bで再生停止。 んでfukidashiの1フレームにもどる。 っていうのをrootに書いてるんですけど、一回は思いどうりの動きをするんですけど 一度再生を停止すると次にplay_bを押しても動作しません。 fukidashiの1フレームには「stop();」と書いてます。 説明へたですいません。なぜなんでしょうか? _root.mysound = new Sound(); _root.mysound .loadSound("music/lm_01.mp3", false); fukidashi.play_b.onRelease = function(){ _root.mysound.start(0, 999); fukidashi.gotoAndStop(2); } fukidashi.stop_b.onRelease = function(){ _root.mysound.stop(); fukidashi.gotoAndStop(1); }
どういう構造になってるかわかんないから原因はわからない flaファイルをくれたらわかるかも 俺がAS3しかわからないから微妙だけど・・w あと0秒の位置から無限回音を鳴らしたいなら _root.mysound.start(0, 999);は省略して _root.mysound.start();と書けるんじゃない?
>>411 誤植かもねー
privateだと同じクラス内からしかいじれないけどクラス内でいじってるわけでもないしなー
>>414 ありがとうございます
私の知識が足りないだけで、何かやり方があるのかと思っていましたが
やはり誤植なんですね
ウンコな質問だけどいい? AS組込みのクラスのコードって見る方法あるのかな? 例えばDisplayObjectContainerのaddChildメソッドが どうやって実装されてるのかとかさー。
クラスファイルを直接エディタで開く
フラッシュの描画領域内にマウスポインタが存在するかどうかを 判別するにはどうしたらよいでしょうか? hitTestだとムービークリップが重なっている場合や、 ムービークリップが描画領域全面を覆っている場合などで うまくマウスが描画領域外に出たことを検出できないことがあります
まず環境を言ってくれよ
420 :
418 :2008/06/17(火) 17:38:08 ID:5uNL17PE
>>419 すみません
FLASHはCS3でactionscriptは2.0もしくは3.0です
もしくはってなんだww どっちでもいいの? AS2とAS3じゃ互換はないけど・・・? AS3なら flash.events.Event.MOUSE_LEAVE マウスポインタが Flash Player のウィンドウ領域から離れたときに、Stage オブジェクトによって送出されます。
>>421 いや、これから作るのでどっちでもよかったのです
ありがとうございます
使用ソフト FlashCS3pro スクリプト AS2.0 rootの1フレーム目に置いたAというムービークリップをボタンにして rootの5フレーム目に置いたBの画面に移るという処理を扱いたいので、 rootのAというMCに on(release){ gotoAndPlay(5); } と入力し、 AというMCの中に入って _up _overを作り、オンマウスで色が変わるように設定しました。 そしてhit領域のためにflash_movie_hitというMCをつくり、そのMCに onClipEvent(load){ this._visible=falce; this.hitArea = flash_movie_hit; } そしてAというMCの中の1フレーム目に this.hitArea=flash_movie_hit; flash_movie_hit._visible =false; this.stop(); というASを入力しました。 その後パブリッシュしてみると、_overとhit領域は指示通りきいていて ボタンの証拠である指カーソルに変化はするのですが、 そのボタンをクリックした時に、5フレーム目にジャンプしないのです。 上記のスクリプト以外に何か入力しなくてはいけないのでしょうか・・・?
424 :
Now_loading...774KB :2008/06/26(木) 15:20:56 ID:9CW7xM1/
使用ソフト FlashCS3pro スクリプト AS3.0 AS3.0でScrollPane内に読み込んだSWFのMCをコントロールするにはどうしたらいいでしょうか? たとえば、ScrollPane内に『test.swf』を読み込んで、 その中にあるMC『hoge』のx座標をいじる、みたいなことです。
ちょっとまえに、FlashDevelop3.0.0b7 環境をぶち込んでみたんですが、 なぜか、 import org.flashdevelop.utils.* ; で見つからないとほざきやがります。 てめーで持ってるライブラリなのになんで色々やらなくちゃならんだろうと、 半分涙目で、情報を追ってます・・・。 そーいえば、corelib の時も、必死こいてやりましたが、結局どうもならず srcの隣に置きましたorz...
>>425 Global Classpaths(グローバルクラスパス)の設定は何処にしてる?
427 :
423 :2008/06/27(金) 17:58:24 ID:TTA1+dsk
酷似したスレッドタイトルでしたので、間違えて投稿してしまいました。 こちらでの質問却下は取り下げさせてください。
428 :
Now_loading...774KB :2008/07/03(木) 00:24:03 ID:3UC5WDjc
XMLやXMLListの扱いとかが超解りにくい…メニューとかツリーとかで使おうと 思ったんだが、説明あっさり過ぎです。 どこかにいい資料ありませんか?
>>429 変わってる所はあるけど、AS2用でも全然役に立ちますよ。ありがとう!!
431 :
Now_loading...774KB :2008/07/09(水) 13:15:11 ID:T9g9zW+u
ダイナミックテキストに文字を表示させたいときに、 テキストエリアに対して、縦に中央表示することはできますか? 「 ̄ ̄ ̄ ̄ ̄ ̄] | | ←こういうかんじです | あああ | | | [______」
質問させてください。 アナログのカウントダウンタイマーを作成したいと考えています。 できれば、タイマーの設定時間はその時によって変えられるようにしたいですが、 どうすれば可能でしょうか? 時間の設定は、→キーで10分くらいまで行えると楽かな?と思っています。 よろしくお願いします。
いくつかのシーンに分かれているアニメーションをBGMとシンクロさせようとしています。 bgm.swfという外部ファイルを読み込もうとしています。 1シーン目の2フレーム目に以下のasを記述するとシンタックスエラーが出てしまいます。 loadMovieNum ("bgm.swf", 1); bgm.swfの方ではサウンドをストリーミング再生、繰り返し1で再生させています。 書いてあるとおりに記述しているのにどうしてなのかわかりません。 使用ソフトはFlash 8 Basicです。 解答お願いします。
マルチバイト文字が一個混じってるように見えます
これは酷い
436 :
433 :2008/07/12(土) 04:33:29 ID:xvQ8BxIe
解決しました。 死にます。
437 :
433 :2008/07/12(土) 04:36:19 ID:xvQ8BxIe
どうもありがとうございました!
すみません。質問です。 FlashMediaServer3のアプリケーションディレクトリ内に置いてあるxmlファイルを クライアントから取得するにはどうすればよろしいでしょうか。
SharedObjectに垂れ流してみたら?
440 :
Now_loading...774KB :2008/07/22(火) 10:47:38 ID:b6U20t6n
初歩的な質問ですが ダイナミックテキストに文字を表示させたいのですが、やり方がどうもわかりません…… やり方を教えていただけると凄くうれしいです。 それと、動画を表示することって出来ますか?
>>440 ダイナミックテキストに仮にaというインスタンス名をつけたら
a.text = "文字";
で、文字を表示させることができる。
動画を表示させるなら、ステージにflvファイルをドラッグ&ドロップして埋め込みにするか、
FLVPlayBack、またはMediaDisplayコンポーネントからflvファイルのパスを指定して
ストリーミング再生にするかの方法がある。
442 :
Now_loading...774KB :2008/07/23(水) 14:17:24 ID:Hrl8buGM
>>441 様
なるほど、ありがとうございます!
テキストエリアに入力した値をダイナミックテキストに表示させたいのですが(掲示板のような感じで)
それをするにはどういった事をしたら良いのでしょうか?
続けての初心者的な質問ですみません。教えていただければ幸いです。
動画の表示方法は…わからない事が多すぎて理解が追いつきませんでした。勉強してきます。
その程度のレベルならここで逐一聞くよりも入門書一冊買った方が余程早いと思うが
0〜14の数字があって、その中から n個を重複しないように選んで取り出す ↑こういうのを作りたいんですけど、今のところ array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]; for (i=0; i<100; i++) { a = Math.floor(Math.random()*15); b = Math.floor(Math.random()*15); c = array[a]; array[a] = array[b]; array[b] = c; } こういう風にして arrayの前から n個を取り出すようにしてるんですが もっと効率的な方法ってありませんか?
arrayをコピーしといて、コピーから取り出すたびに詰めていけばいいんじゃないの?
あとそれシャッフルのつもりなんだろうけど、 for (i=0; i<array.length; i++) { a = Math.floor(Math.random()*array.length); tmp = array[a]; array[a] = array[i]; array[i] = tmp; } で十分だと思うよ
っ splice
448 :
444 :2008/07/23(水) 20:40:22 ID:FFiEfRvF
>>445-446 ありがとうございます
for (i=0; i<array.length; i++) {
a = Math.floor(Math.random()*array.length);
array.splice(i,1, array[a])
}
これでシャッフルすればいいんですね
シャッフルの方法が非効率だと思っていたので助かりました
>>448 それじゃ配列を破壊してるだけじゃないかい?
変に効率を求めて自分でよくわからないコードにしたら意味がないから、
シャッフル部分を
>>446 に置き換えるだけで、あとは今までどおり書いた方がいいよ
よく考えてませんでした
テストしてから配列壊してるのに気づきました
>>449 そうします
すごい漠然としてて初歩的な質問で申し訳ないんだけど、 ActionScript(というかFLASHだろうか)でこれはできない!ってことってどんなのがある?
ActionScriptで世界を平和にすることはできない
>>451 そういうのは自分で触れてみて答えを出すもんだ
漠然というのを前提とするなら、CだろうがJavaだろうがASだろうが、 できることよりもできないことの方が比べ物にならないくらい多いよ だからできることを聞いた方が早いと思うよ
455 :
どしろうと :2008/08/02(土) 17:41:27 ID:fZhs/XFP
Flash CS3で作成したアニメーションがActionScriptでどういう実装になっているのか 見たい時、何か方法ありますか? Flashに「ActionScript出力」の様なメニューがあったりするのでしょうか? 教えてください。そして無知な私を罵ってください。
456 :
Now_loading...774KB :2008/08/05(火) 18:16:46 ID:dzqAgjN0
はじめまして、actionscript2.0の勉強をしています。 動画を再生させて、その上でお絵かきツールを動作させたいのですが、うまくいきません。 action movie button の三つのレイヤーを作り、 actionではお絵かきツールを作り、 movieでは動画をそのままステージに貼り付けて、 buttonでお絵かきツールの絵を消すボタンを配置してます。 お絵かきツールとボタンは正常に動きます。動画も別のプロジェクトなら問題なく動いたのですが このプロジェクトでパブリッシュすると、動画を表示させる所で音だけ流れていて肝心の動画が流れないという状況になってます。 どうにかしたいのですが、どなたか教えていただけますか?
457 :
Now_loading...774KB :2008/08/09(土) 00:19:58 ID:ZcNwI59+
AS3、FP9です。 AS3は配列に型がないみたいなのですが、初期化で変数、クラスを入れると、 そのインデックスをその型にできるみたいなので、 それを使って、クラスの配列みたいな感じで使いたいのですが、 簡単に初期化する方法がありましたら教えてください。 今は↓みたいにやっていますが、数が増えてくると大変になってきます。 private var tf0:TextField; private var tf1:TextField; private var tf2:TextField; public var tf:Array = [tf0, tf1, tf2];
便乗失礼します。
いまAS3勉強中なんですが、
>>457 さん、こういうのはダメなんでしょうか。
for (var i:Number = 0; i < 5; i++ )
{
arr[i] = new TextField();
arr[i].text = "test"+i;
}
>>458 ありがとうございます。
その場合、aryはどうやって宣言するのでしょうか。
自己解決。 Arrayの関数の方で数値を指定してできますね。
462 :
Now_loading...774KB :2008/08/10(日) 00:25:43 ID:jPeh7IYU
AS3は、通常FP9に留まっていて、マウス入力やタイマーなどがあると、 Main(スタート)クラスが始まり、終わりまで行くとFP9に戻る感じだと思いますが、 その始まる位置を変える事はできるのでしょうか。 Hogeとか他のクラスから始めたり、WaitFP9()みたいに関数から始めたりです。
共有オブジェクトについて質問です。 共有オブジェクトを利用してセーブ機能つきゲーム等を制作した場合、 保存される変数の値等はユーザーのPC側に保存されると思いますが、 ユーザー側が、保存されてる内容を意図的に変えてしまうことはできるのでしょうか? (例えば共有オブジェクトが保存されてるファイルをメモ帳等で開いて、 任意の変数の値を書き換えてしまう等)
>>464 早速ありがとうございます。
暗号化というと例えば、どの変数が何を示すか分からないような文字列にするとか、
ダミーの変数を沢山作ったりするとかですか?
もっと高度な方法があるんでしょうが今思いつくのはそんなところです…
>>463 テキストデータじゃないからメモ帳で編集は無理。
.sol Editorってフリーソフトで編集できる。
>>463 そういうことは暗号化等どれだけ頑張ったところで突破されるから、
書き換えられても問題ないような設計にするとか、方向を変えた方がいいと思うよ
>>466-467 なるほど、ありがとうございました。
異常値が入ったら修正するようなプログラム入れて対処してみます。
数通り暗号化して、複合時に一つでも違ったら初期値に戻しちゃうって意地悪はよくする
470 :
Now_loading...774KB :2008/08/23(土) 14:32:25 ID:zVFPyY8N
開発環境はADOBE FLASH CS3 PROFESSIONALです(多分) すみません、ダイナミックテキストに文字を入力して、その文字を別のテキストボックスに出力させたいときは どうすればいいのでしょうか?
471 :
Now_loading...774KB :2008/08/23(土) 15:11:31 ID:zVFPyY8N
470です。 以下のようなソースを書いてみました。 this.testtext.text = this.intext.text testtextはダイナミックテキストで intextはテキスト入力で指定しました。 これでパブリッシュしてみたのですが、intextにflash上で文字を打ち込んでもtesttextに反応はありませんでした。 ただ、intextに最初に入っている文字がtesttextに入力されたままです。 flash上でintextに入力した値がtesttextで表示されるようにするにはどうすればいいでしょうか? 教えてください。本当に困ってます・・・
AS2かAS3か書いてくれないと困るなw そりゃ、そうやったら最初の文字が入るだけでしょ なにをしたときに、ダイナミックテキストに文字を表示したいのか そのイベントの中に書くべき
視聴する側のPCスペックが低い場合、処理が間に合わずFLASHがコマ落ちしたりしますが、 その場合、飛ばされたフレームのASが実行されないという事はあるんでしょうか。 どんなに処理が重いFLASHでもASはフレームどおりに実行されると考えておk?
サウンドをライブラリで共有し、ActionScriptからサウンドを再生するにはどうしたら良いでしょうか? ---------------------------------------- <soundLib.swf> サウンドアイテム [BGM01] をリンケージし、 ・ActionScriptに書き出し ・ランタイム共有用に書き出し ・最初のフレームに書き出し 全てにチェックを入れる。 URLに [soundLib.swf] と記述 ---------------------------------------- <main.swf> ファイル>読み込み>外部ライブラリを開く から サウンドアイテム[BGM01]をライブラリに配置。 this.createEmptyMovieClip("Sound_mc", 1); b01 = new Sound(this.Sound_mc); b01.attachSound("BGM01"); this.b01.start(); ---------------------------------------- 現在このようなやり方で試しているのですが、サウンドは再生されません。
Flash8+AS2での質問です。長文すみません。 現在ボタンを複数配置し、マウスを使わずキーボードの矢印キーで フォーカス(選択カーソルのようなイメージ)を移動させるインターフェースを作っております ボタンにはオーバー時、ダウン時の画像を設定し、フォーカスされた時の状態を解るようにしてますが、 ソレとは別に選択時の黄色い枠が出てしまい、ちょっとかっこわるいです _focusrect = false; を記述するとこれは消えますが 同時にキーボードの矢印キー移動機能も消え、TABでしか移動できなくなってしまいます。 配置したボタンがかなりの量なので、TABでローテーションするのは使いづらく _focusrect = true; になってるときの移動は大変都合がよいので 単純に黄色枠だけ取り払うか、或いは_focusrect = false;でも 矢印キーで「→なら右に有るボタンにフォーカス移動」のように出来る方法が有りますでしょうか 宜しくお願いします。
476 :
is :2008/09/11(木) 02:35:55 ID:lgvDpygP
他のスレッドとマルチになって申し訳ないんですが超困ってるのでご了承下さい。 非常に困っているのでどなたか知っている方が居ましたら教えてください。 Flashのインタラクティブなコンテンツ内で、FLVの背景ムービーの上にαチャンネル付きの人物映像のFLVを配置しています。 上に置かれているFLVムービーは、2択で変わるので、リアルタイムにFLV合成するしか無いのですが、合成すると人物のアウトラインが黒く縁取られます。 同じ映像データの元アルファ付AVIを、アフターエフェクツ上などで合成してレンダリングすると、問題ない映像となるので元ソース上は問題ないようです。 出来ればこの黒い縁を無くしたいのですが、それが仕様上無理でも、出来れば縁の色をFlashのプロジェクト上で制御できないかと思っております。 どなたか、ご教授いただければ幸いです。 宜しくお願い致します。
マルチ氏ね
>>477 がいいこと言った。
マルチ野郎は逝って良し。
AS3を使っているのですが、イベントキューポイントってどうやって設定するのでしょうか?
480 :
Now_loading...774KB :2008/09/13(土) 03:06:33 ID:f3DPJiiu
質問です。 50枚の写真を1枚ずつムービークリップにしたものがあります。 そのムービークリップを重複せずにランダムに20枚選び、 ステージ上に、縦4枚×横5枚で計20枚を表示させたいのですが、 どのようにやればいいのでしょうか。 よろしくお願いします。
1〜10までの数値配列をソートしても [1,2,3,4,5,6,7,8,9,10]とならず、 [1,10,2,3,4,5,6,7,8,9]になってしまいます。 オプションでArray.NUMERICを指定してもダメでした。 なにか解決方法はないでしょうか? よろしくお願いします。 ちなみにAS2です。
>>481 普通にできるけどなぁ。
var a:Array = [4,6,7,1,9,5,2,8,3,10];
a.sort(Array.NUMERIC);
trace(a);
>>482 こちらでも同じことを試したところ問題なくソート出来るんですが、
XMLから取得した配列をソートするとおかしくなるようです。
XMLから取ったデータは文字列だから、Number()で数値にしてから配列にいれたらどう
Array.sort()は、数値フィールドもストリングとしてソートするみたいだけど 変換したほうがいいんですかね?
>>485 デフォルトの動作ではストリングとして処理される
でもArray.NUMERICを引数に渡したからといって自動的にNumberにキャストされるわけではなくて、
数値があればこのソートアルゴリズムでソートしますよってだけだから、はじめからストリングだと数値として認識してくれない
数値への変換も上手くいかなかったので XMLからの取得を見直しました。 結果、Array.NUMERICでソート出来ました。 お手数をお掛けしました。
すいません教えてください。 MovieClip_1(名前mc0)の中に3つのMovieClip_2(名前mc1,mc2,mc3)があって、 それぞれのxをtraceするとしたとき、 trace(mc0.mc1.x); trace(mc0.mc2.x); trace(mc0.mc3.x); とすれば出来るのですが、これが100個とかなると大変なのでfor文にしたいですが 書き方が分かりません。できれば名前を指定せずにfor each...で書ければ言うことないんですが それが無理ならば名前を規則的に付けて読んでいく方法はどうすればいいのでしょうか
>>488 for(var i=1;i<=100;i++){
trace(mc0["mc"+i].x);
}
もしくは
for(var e in mc0){
trace(mc0[e].x);
}
490 :
488 :2008/09/15(月) 11:17:10 ID:UWuFrPBL
すいません自己レスです。 名前を規則的に付けて順次アクセスする方法は、配列アクセス演算子とやらを使ったらできました! for (var i:uint = 1; i<=3; i++) { trace(mc0["mc" + i.toString()].x); } もし、mc0内のそれぞれのMovieClipに名前を付けずにfor eachで出来る方法があれば 教えてください。よろしくお願いします。
491 :
488 :2008/09/15(月) 11:23:51 ID:UWuFrPBL
>>489 すいませんかぶっちゃいました。
一個目はできたんですが、二個目のができませんでした!
for each (var e:MovieClip in mc0) {
trace(e.x);
}
>>491 いや・・・全然違う事やってるじゃん
人のレス、よく見ろよ・・・
つーか、おまえのやってるのってAS3.0じゃん
はじめから書いとけよ ウザイナ
493 :
Now_loading...774KB :2008/09/16(火) 22:57:58 ID:SavpeRG8
actionscriptがメジャーなプログラム言語と肩を並べる日は来るのかな〜?
javascript に一致する日本語のページ 約 21,900,000 件中 1 - 10 件目 (0.21 秒) actionscript に一致する日本語のページ 約 3,140,000 件中 1 - 10 件目 (0.05 秒) まだまだ先だね
495 :
Now_loading...774KB :2008/09/17(水) 18:09:40 ID:gu50QH4h
コンポーネントのFLVPlayBackかMediaPlayBackを利用して、シームレスにウェブ上にあるmp4(h264)をループ再生したいのですが、 completeイベントを受けてplay()させると一瞬映像が停止してしまいシームレスループになりません。どうすればいいでしょうか? FlashCS3、AS2、WinXPPro32bitSP2、映像は1秒ぐらいの短いものです(30FPS)。よろしくお願いします。m(_ _)m
AS3使ってます。動画とテキストを同期させたいので調べてみたら。flvplaybackコンポーネントで キューポイントを使えば同期が出来る。という情報を得ました。 それでやってみたのですが、キューポイントを設定するまでは出来たのですが、それの使い方がわかりません どなたか心優しい方、教えていただけませんか?
>>495 コンポーネント使うと自動的にリサイズされるときの間ができるので、
NetStreamクラスで動画プレイヤーを自作しよう。
>>496 cuePointイベントでプロパティの値を取得しよう。
498 :
495 :2008/09/18(木) 00:17:42 ID:i0PU7FoK
>>497 ありがとうございます!早速作ってみます。
499 :
Now_loading...774KB :2008/09/18(木) 11:02:04 ID:WjCd1GAK
質問があります。 実行した場合に出力パネルに表示される文字列を テキストフィールドに表示したいのですがうまくいきません。 どのような式を入れればいいのでしょうか? 例:trace("book")→出力パネルに表示される ↑の出力パネルに表示されるbookをテキストフィールド(text_txt)に代入して表示する場合はどうすればいいですか? 今クイズを作ってるのですが問題が出力パネルに表示されて表示させたいテキストフィールドに表示されないので。。 文がかなり下手でわかりづらいと思いますが、わかる方いらしたらよろしくお願いします。
500 :
499 :2008/09/18(木) 11:11:58 ID:WjCd1GAK
すみません。質問の意味を間違えてました。 外部テキストファイルからデータを読み込んで テキストフィールドにその内容を表示するにはどのようにしたらいいでしょうか? 2度目の投稿申し訳ありませんがよろしくお願いします。
>>497 回答ありがとうございます。試してみますね!
いまどきAS2なんて結構いるだね
flash player 8 対応にしてくれっていうクライアントがまだまだ結構いるからね
505 :
500 :2008/09/18(木) 17:09:43 ID:/9zMCs+I
>>501 すみません AS2です。
本当に何度も申し訳ないです。
506 :
495 :2008/09/18(木) 17:45:57 ID:i0PU7FoK
度々すいません。 AS3,flashplayer9、でnetStreamを使いh264を読み込み再生するところまではこぎつけたのですが、 FlashCS3付属のスタンドアロンプレイヤーでは何の問題もなく再生されるのですが、 HTMLでパブリッシュすると再生中に再生速度が速くなったり遅くなったりと不安定になります。 h264のmp4はAftereffectsCS3で出力したものです。FPS30、音声なし、ビットレートは500〜2000まで色々試したのですがビットレートは関係ないようです。 キーフレームも0〜100まで色々試しましたが安定しません。rootのFPSは30未満にするとカクつくようになります。 昔あったwmodeの問題を思い出し三通りとも試したのですが、やはりダメでした。そこでfirefoxで再生してみたのですが、これだとなぜか速度は安定しました。 IEのflashplayerは最新のものに更新してあります。どうすればいいでしょうか?(;_;)
507 :
495 :2008/09/18(木) 18:06:02 ID:i0PU7FoK
間違えました。×AS3→○AS2です。ごめんなさい
>>473 必ず実行される。
そうでないとクラッシュするよ。
>>474 soundLib.swfに関数を1つ作る。サウンドオブジェクトを生成して返すようにする。
main.swfからsoundLib.swfをローダー関数で読み込む。
main.,swfから関数を呼び出して、サウンドオブジェクトを得る。
510 :
Now_loading...774KB :2008/09/19(金) 14:26:40 ID:wpRE4AUp
OS:Win XP SP2
Flash CS3
質問です。
AIRで、ドメインAにあるA.swfを読み込んで表示させたいんですが、
A.swfに FlashのUIコンポーネントを使っていると、
SecurityError: Error #2070: セキュリティサンドボックス侵害 : 呼び出し元
http://ドメインA/A.swf は app:/Main.swf が属するステージにアクセスできません。
とでます。
ちなみに、パブリッシュをFlash Player 9にして、Security.allowDomain("*")を
呼んでやると、正常に表示されました。
パブリッシュを Adobe AIR 1.0にしていると、Security.allowDomainは
使えないので、ロードしたswfのloaderInfoを
LoaderInfo.parentSandboxBridge = this(thisはロードしてる側) とか
に設定したんですが、上記のランタイムエラーがでて表示もされないです。
これの回避方法を教えていただけないでしょうか...
512 :
Now_loading...774KB :2008/09/19(金) 14:48:53 ID:wpRE4AUp
crossdomain.xmlは置いています。 リファレンスもすべて見てみましたが、やはりAIRだとうまく いかないです。 読み込むswfの中にUIコンポーネントがなければ、なんでも できてるんですが....
513 :
Now_loading...774KB :2008/09/20(土) 13:51:37 ID:e6AmzOHu
環境:WindowsXP FlashCS3 actionscript3.0 SharedObjectの読み込みについて質問です。 ローカルだと100%値を読み込んで分岐処理ができるのですが、 サーバーにあげると分岐処理が成功したり失敗したりします。 サーバーの場合、読み込み・書き込みにタイムラグがあって、 同一フレームでSharedObjectの読み込みと分岐処理をすると失敗してしまうみたいなのですが SharedObjectの読み込みが完了したかどうかを調べるscriptはどう書けばいいのでしょうか?
514 :
Now_loading...774KB :2008/09/21(日) 01:30:05 ID:tLPUlQuM
前任者がつくったFlashを解析したいのですが、 いい方法はないでしょうか? なんか工夫しているのかデコンパイラ使っても肝心の ActionScriptの内容が探れません。 そのFlashがどのサイトからデータを取得すればわかればいいので データ取得元さえを探れればいいのですが・・・ (Flash自体は新規作成しますが、仕様がわからないのです) いい方法がございましたらご伝授お願いします。
>>514 IEなら ie HTTP Header、Firefoxならfirebugなどでヘッダーを見れば
どこに接続しているのかわかると思います。
516 :
Now_loading...774KB :2008/09/21(日) 10:47:45 ID:tLPUlQuM
兆速レスありがとうございます。
mcを連番で複数配置し クリックされたmcの番号を取得したいのですが ・・・・・・ while(p<5){ p++ Mc="mc"+p _root[Mc].onPress=function(){ ・・・・・・ とするとpは必ず5と表示されてしまいます onPressの直後に処理を止めようと 条件付けを色々工夫してみましたがダメでした mc別に書けば動くので最悪そうしますが 何とか一括で出来ないものでしょうか
>517 肝心の関数の処理が書いてないので何ともいえないけど p = 0; while (p<5) { Mc = "mc"+p; _root[Mc].myPoint = p; _root[Mc].onPress = function() { trace(this.myPoint); }; p++; }
actionscriptの質問なのですが、ブラウザでflashを実行したとき、 そのswfファイルが置かれていたサーバのIPを取得するにはどうすればいいですか?
>>518 ありがとうございました
取得というのは単に表示するのではなく
変数として保持したいということだったのですが
それを参考にonPress前後で2度受け渡しするように(?)書いたら出来ました
>520 とりあえず、onPress内の記述はonPressが発生したときに実行されるので while中は無視される、ってのだけ覚えとけばいいんじゃないかな
flash MX 2004を使っています。 音楽と映像がズレてしまいます。同期はストリーミングにしています。 タイムライン上で音楽に合わせてオブジェクトを配置したのですが、 実行すると音楽が数フレームズレて流れてしまいます。 これはタイムライン上ではなく実行した映像に合わせてタイミングを調整していかなければならないということなのでしょうか?
523 :
522 :2008/09/21(日) 13:42:31 ID:bARROqg5
ああっすいません。↑の質問はFlash初心者スレで聞くべきでしたね。 スレ汚しすいませんでした。
がんば そこらへんは、最初みんなつまづく所のはず
>>521 whileやforは一瞬の処理のはずなのに
変数も一瞬で変わってしまうのに
そこでmcの指定をしたものがずっと残っていることが認識をおかしくしていたようです
ニコニコ動画みたいに、動画とコメントを同期させて表示させるにはどうするんでしょうか? だれかわかる人います?
マルチーズ^^
529 :
Now_loading...774KB :2008/09/26(金) 11:00:53 ID:pNr53ab8
UIscrollbarをテキストフィールド内の文字列でなく、 ムービークリップ内のオブジェクトのスクロールに使うにはどうしたらよいのでしょうか?
530 :
Now_loading...774KB :2008/09/26(金) 11:04:28 ID:dGfVhu3h
シンボルが再生されながら横移動するときに、 その残像が重なってちくせきされていくようなASをおおしえてくれませんでしょうか。 お願いします。
>>530 処理速度を気にしないならaddChild()でどんどん残像を足していって後から消していく
軽くするならBitmapDataにどんどんシンボルをdraw()していって必要に応じてフェードさせてく
いずれにせよforループじゃなくてonEnterFrameに書くASになるぜ
残像がずっと残るのか一定時間経つと消えるのかによっても実装方法は変わるぜ
これ以上の回答は状況がよくわからんから無理
外部ファイルからテキストデータを取り込んで表示させたいのですが、 System.useCodePage=true; var loader:URLLoader= new URLLoader(); loader.addEventListener(Event.COMPLETE,completeHandler); loader.load(new URLRequest("data.txt")); function completeHandler(event:Event):void{ output_txt.text=event.target.data; } をアクションに打ち込んで、SWFの起動時にテキストを表示させることはできました。 次に、SWFの起動のn秒後にこのテキストを表示させたいのですが、どうしてもできません。 やり方がわかる方がいれば教えてください。
Timer
534 :
532 :2008/10/01(水) 13:43:05 ID:MlDLD/+U
Timerですか・・・?調べてみます。ついでの質問で申し訳ないのですが、動画から時間データを抜き出すのは どうやるのでしょうか?出来るのでしょうか?
535 :
Now_loading...774KB :2008/10/01(水) 17:46:53 ID:6Ll9d5R/
onMetaData
536 :
Now_loading...774KB :2008/10/01(水) 20:24:30 ID:PVey1JJN
WinXPsp3 で FlashDevelop + AS3 を使っています。 Loader で読み込んだコンテンツを swf で表示させたいのですが、 LoaderInfo の width と height を用いて swf 本体の width と heightを 変更する方法があれば教えてください。
537 :
Now_loading...774KB :2008/10/01(水) 23:42:30 ID:zqzj11qt
AS3です、FLASHCS3を使っています 親スプライトに子スプライトAと子スプライトBをaddChildしていて スプライトBに子スプライトCをaddChildして、スプライトC上で変数aを定義しています 各スプライトに同名nameを与えています この構造でスプライトAからスプライトCと変数aに対して処理したいのですがパスの書き方がわかりません スプライトAから parent.getChildByName("spriteB") でスプライトBは指定できましたが、この後はどのように書けばいいのでしょうか?
spriteB.getChildByName("spriteC") spriteC.a こういうこと?
539 :
537 :2008/10/02(木) 08:58:54 ID:PY4rRG+y
>>538 レスありがとうございます
質問がわかりずらくすみません
537の場合で
parent.getChildByName("spriteB")-この後の記述がわかりません
試しに
parent.getChildByName("spriteB").spriteB.getChildByName("spriteC");
こう書いてみましたがエラーが出てしまいできませんでした
質問です。 on (press){ set_mc.removeMovieClip(); } root上にset_mcがあるのですが 消えてくれません。
541 :
540 :2008/10/02(木) 10:58:48 ID:G3V+Nf9S
actionscript2です。
542 :
540 :2008/10/02(木) 11:03:18 ID:G3V+Nf9S
すいません最小構成では動きました。 他の場所を探ってみます。
>>537 parent.getChildByName("spriteB")
でspriteBを返すので、そのまま
parent.getChildByName("spriteB").getChildByName("spriteC");
でいいはず。
2行に分けるとこんな感じ。
var spB:Sprite = parent.getChildByName("spriteB")
var spC:Sprite = spB..getChildByName("spriteC");
var a = spC.a
544 :
540 :2008/10/02(木) 14:26:07 ID:G3V+Nf9S
質問です。 actionscript2です。 違う階層の場合は、同じインスタンス名を付けても 大丈夫なのでしょうか? 後になってそれが原因で不安定なった場合、 原因の究明に時間がかかりそうで心配です。
>544 気のせいです 問題ありません
>>535 onmeatadataですね!調べてみました。動画のメタデータを取得するメソッドのようです。 それで、一度サンプルを見つけたので作ってみようと思い、作ってみました。 var netCon:NetConnection =new NetConnection(); netCon.connect(null); var netStr:NetStream=new NetStream(netCon); netStr.client=new Object(); netStr.client.onMetaData=metaDataHandler; netStr.play("video.flv"); var vid:Video=new Video(160,120); vid.x=10; vid.y=70; vid.smoothing=true; vid.attachNetStream(netStr); addChild(vid); function metaDataHandler(objInfo:Object):void{ var str:String =""; for(var prop:String in objInfo){ str += prop + ":" + objInfo[prop]+ "\n"; } txt.text=str; } をアクションに打ち込み、ダイナミックテキスト(メタデータ表示用)のインスタンス名をtxtに設定 動画を同じファイルにvideo.flvで置いておいて実行してみましたが、 「Error #2044: ハンドルされていない NetStatusEvent : level=error, code=NetStream.Play.StreamNotFound at _fla::MainTimeline/frame1()」 と出て、動画もメタデータも取得できませんでした。何が原因なのでしょう・・・? それと、これで取得した動画の再生状況を変数に入れて扱うことは可能ですか? あ、開発環境はAS3です。
547 :
546 :2008/10/02(木) 15:55:46 ID:aZzvZKZT
自己完結しました。動画ファイルにアクセスできてなかったみたいです。お騒がせしました。 しかし、現在の再生状況(開始されてからの時間)が取得できてないみたいなんですが、そもそもこれでは 出来ないんでしょうか?
548 :
537 :2008/10/02(木) 18:05:26 ID:PY4rRG+y
>>543 下の二行に分ける方法がわかりやすく使わせて頂きました
ありがとうございます!
>>547 開始されてからの時間じゃないけど、再生位置は
netStr.time
でとれるよ
>>549 netStr.timeで取れるんですね。ありがとうございます!
質問させていただきます。開発環境はAS3です。 flvplaybackコンポーネントを使っています。んで、 パラメータのcontentPathをウェブ上で自由に変えられないか迷ってるんですが、 どうしたらいいでしょうか? もしくは、flashの動画をウェブ上で切り替える方法を探してます。 flashに詳しい方がどなたかいらっしゃったら教えてください・・・
>>551 flarhvarでswfに動画のパスを渡す
フラッシュ側はそのパスをflvplaybabckのインスタンスに渡す
でOKかと
タイプミス ×flarhvar ○flashvars
flashvarsですか?よくはわかりませんが、調べてみますね!ありがとうございます!
555 :
554 :2008/10/06(月) 15:17:59 ID:j7I+Fyra
flashvarsについて調べてみましたが、よくわかりませんでした。 トップページからクリック(サムネイル等を)したら同ページにあるswfファイルにその動画が表示される。 という風にしたいのですが・・・もう少しヒントを頂けますか?本当に困ってます。
>>555 ページの遷移なしに切り替えるってこと?
たぶんLocalConnectionでいいんじゃね?
>>556 はい、そういう風にしたいのですが・・・何か案はありますか?
>>558 だからLocalConnectionでいいんじゃね?
もしくはスレ違いになるがJavascript。
560 :
750 :2008/10/07(火) 14:30:45 ID:WI3Iuoc5
localconnectionですか…? それはPHPとHTMLで書いたサムネイルをクリックしたらフラッシュに データを飛ばす、というような動作は出来るのでしょうか? さっき調べたところ、swfからswfは出来るようですが…
>>560 サムネイルをswfにするってことじゃないかな
562 :
Now_loading...774KB :2008/10/08(水) 00:11:08 ID:gP2fYbYa
MP3を埋め込んだ外部swfを読み込んだら勝手にswfが再生されてしまいます。 下記のように書いているんですが、どうすれば読み込みのみだけするようにできますか? loader.load(new URLLoader("./swf/sound.swf")); また、MovieClipに変換してmc.stop()とかするととまるんですが、最初の0.2秒ぐらい再生されてしまいます。 var mc:MovieClip = loader.content as MovieClip; mc.stop(); 環境はas3、Flash9です。 回答お願いします。
>>561 サムネイルをswfですか…それも考えましたが、そうなると動画のアップロード
をするのが出来なくなってしまうんですよね……youtube見たいな感じで作りたいな〜
と思ってるのですが……
>>563 swfでも動画はアップロードできるよ
なんでサムネイルをswfにできないのかよくわからないけど、
それならjavascriptかフレーム使うしかないんじゃないかな
>>563 なるほど、やり方はあるのですね。ありがとうございました。
すみません、質問させてください。 SwfからHTMLにデータを送信する方法ってありますか? AS3を使ってます。
24時間耐久10分でフラッシュを作れ!
┏━┓ ┏━┓ ┏━┓ ┏━┓
┏┛┏┛ ┏┛ ┃ ┏┛ ┗┓ ┏┛┏┛
┏┛┏┛ ┗┓ ┃┏┛┏━┓┗┓ ┏┛┏┛
┏━┛ ┗━┳┓ ┃ ┃┃ ┃ ┃ ┃┏━┛ ┗━┳┓
┗━┓ ┏┳┛┃ ┃ ┃┃ ┃ ┃ ┃┗━┓ ┏┳┛┃
┃ ┃┗┳┻┓ ┏━┳━━┓ ┃ ┃┃ ┃ ┃ ┃ ┃ ┃┗┳┻┓ ┏━┳━━┓
┃ ┃┏┻┓┗┓┏┛┏┛┏┓┗┓┃ ┃┃ ┃ ┃ ┃ ┃ ┃┏┻┓┗┓┏┛┏┛┏┓┗┓
┃ ┃┃ ┃ ┗┛ ┃ ┗┛ ┃┃ ┃┃ ┃ ┃ ┃ ┃ ┃┃ ┃ ┗┛ ┃ ┗┛ ┃
┃ ┃┃ ┣┓ ┏┫ ┏━━┛┃ ┃┃ ┃ ┃ ┃ ┃ ┃┃ ┣┓ ┏┫ ┏━━┛
┏┛┏┛┃ ┃ ┃ ┃ ┃ ┃┏━┓┃ ┃┗┓┗━┛┏┛ ┏┛┏┛┃ ┃ ┃ ┃ ┃ ┃┏━┓
┏┛┏┛ ┃ ┃ ┃ ┃ ┗┓┗┛┏╋┛ ┗┓┗┓ ┏┛ ┏┛┏┛ ┃ ┃ ┃ ┃ ┗┓┗┛┏┛
┗━┛ ┗━┛ ┗┛ ┗━━┛┗━━━┛ ┗━┛ ┗━┛ ┗━┛ ┗┛ ┗━━┛
┓┏┓ ┓ ━┓ ┏┓┏┓ ┏┓┏┓ ━┓ ━┓ ┏━ ┏━┓
┃┃┃ ┃ ┏┛ ┃┃┃┃ ・ ┃┃┃┃ ┏┛ ━┫ ・ ┃ ┃ ┃
┃┃┃ ┃ ┃ ┃┃┃┃ ・ ┃┃┃┃ ┃ . ┃ ・ ┗┓ ┗━┫
┻┗┛ 月 ┻┗━ 日 ┗┛┗┛ ┗┛┗┛ ヨリ ┗━ ━┛ .━┛ .━┛ マデ
参加者(Flash制作者・お題投下者・観覧者)募集
現行:
http://pc11.2ch.net/test/read.cgi/swf/1206509015/
569 :
Now_loading...774KB :2008/10/08(水) 23:07:22 ID:l3HN37Eb
かなり・・・ ど素人な聞き方をするかもしれませんが、誰かお答えを・・・! FLASHで作成した簡易版音楽プレイヤーがあるのですが、 音量がデカすぎました。 これを下げたいのですが、(コントローラーはいらない)、 1フレーム目をScriptではなく、単純にプロパティのところで鳴るようにしている場合、 不可能なのでしょうか? ちなみに1フレーム目のScriptは stop();となっていて、音楽がプロパティの設定で鳴る。 2フレーム目のScriptは stop();となっていて、停止ボタンがあり、ボタン自体のScriptには再生がストップする記述。 3フレーム目のScriptは stop();となっていて、再生ボタンがあり、ボタン自体のScriptには再生がスタートする記述。
>>569 サウンドの下に効果ってところがあるので、その右の編集を押してください。
波形の上に細いライン見たいのがあるので、それをドラッグして下げると音量が下がります。
571 :
Now_loading...774KB :2008/10/11(土) 07:25:24 ID:9zB5xFZO
加藤擁護派を笑うのも結構だが 笑ってるだけじゃ第二第三の加藤の出現を止めることは出来ない
AS3とPHPを使って動画共有サイトを作ってみたいのですが、参考になる書籍やサイト等があれば 教えてください。
>>572 とりあえずレンタルサーバーなら転送量で怒られないようにな。
なるほど、参考になります。ありがとうございます。他にもあればいくつでもいいので教えてください。
それだと、いくら答えてもキリがないのでこれでおしまい
>>575 youtube見ればわかるけど必要なのはwebプログラミングと製作の知識が99%
激しく板違いだと思われます
ASが必要なのって動画再生部分だけで、それってほとんどコンポーネントで終わりだし
板違いでしたか、すみませんでした。別の所で聞いて見ますね。どうもありがとうございました。
すみません。AS3を使って開発をしているものです。 flvplaybackのcontentsPathの値を外部テキストファイルへの入力で変えられる様なプログラムを作りました。 それで、一応は動くのですが、一度flaファイルでパブシッリュし直さないと動画が変更できません。 それで、自動的にパブリッシュするようなシステム、もしくは別の解決方法を探しているのですが、何かご存知の方は居ますか??? スレ違いだったらすみません;
>>579 何度も同じような質問見かけるけどマルチなの?
FlashVars使って外部からswfに動画のパスを渡す
swfは受け取ったパスをActionscriptでflvplaybackコンポーネントのインスタンスに渡して再生
flvplaybackでヘルプ検索してね
ちゃんと載ってるから
Loaderで読込んだjpgをBitmapにしたいのですが 下のコードで暗黙の型変換云々でエラーがでてしまいます。 色々と検索してみたのですが、参考サイトでは 大体これで問題ない感じで記述されているのですが… ヒントを頂けないでしょうか? private var Myimgpath:String; private var Myimg:Loader; private var MyBitmap:Bitmap; private function hoge(): void { mypath = "myimg/hoge.jpg"; Myimg = new Loader(); Myimg.load(new URLRequest(mypath)); Myimg.contentLoaderInfo.addEventListener(Event.COMPLETE, LoderToBitmap); } private function LoderToBitmap(e:Event):void { MyBitmap:Bitmap = new Bitmap(Myimg.content); }
>>581 MyBitmap:Bitmap = new Bitmap(Myimg.content);
↑「:Bitmap」がいらないんじゃないの?
座標データと、その座標の時のマウスイベントを配列にしたいんですけど、どういう風になるかわかりません・・・ 詳しい方教えてください! AS3を使ってます
↑解決しました!お騒がせしました・・・ 続けての質問で申し訳ないのですが、actionscriptの変数をサーバに保存ってすることが出来ますか?
587 :
581 :2008/10/21(火) 23:40:35 ID:dHBRgGFa
>>582 わかりやすくしようとして逆にグタグタに書いてしまいました
ちなみに型を記述しなくても同じでした
ありがとうございます
結局
MyBitmap = event.target.content;
でいけました
これはキャストって事でOKなんですかね?
phpが基礎なんで型をイマイチ理解できなくて気持ち悪いです
もっと勉強します
>>587 private var MyBitmap:Bitmap;
宣言時に型明示してるから。
使うときには付けちゃいかん。
○MyBitmap = event.target.content;
×MyBitmap:Bitmap = event.target.content;
private var i:int
って宣言したとして、使うときに
for( i:int = 0 ; i:int < n ; i:int++ )
{
trace( i:int );
}
ってしないでしょ?
for( i=0 ; i<n ; i++ )
{
trace(i);
}
589 :
Now_loading...774KB :2008/10/22(水) 13:22:47 ID:xKPz3iMY
MCのalphaをマイナスにしていくScriptを設定しており、0になったら MCの表示されなくなるようにしています。 なぜか3分ほどたてばそのMCがまた元通り表示されてるのですが、これは Flash側の仕様でしょうか? 最初100で-10ずつしていくと、いつかはまた100にもどってしまう??のでしょうか?
>>589 以前似たような質問に答えたことがある。
alpha値トレースして見ればわかるが
_alphaをマイナスし続けると
-12794.140625になった次の瞬間プラマイが反転する
アルファが0以下になったらマイナス処理を止めればおk。
591 :
Now_loading...774KB :2008/10/22(水) 15:36:48 ID:xKPz3iMY
>>590 ありがとうございます。
>>-12794.140625になった次の瞬間プラマイが反転する
というのがバグなのかFlash側がワザとしてるのかわかりませんが、
勉強になりました。
592 :
584 :2008/10/22(水) 16:00:29 ID:oS8uPxFK
SharedObjectを使えばデータを保存出来るとこちらで聞いたのですが、SharedObjectはローカルに 保存するための物だと聞きました。配列をサーバに保存するためのオブジェクトのようなものは無いのでしょうか? あ、PHPの開発環境はあるので、そちらも踏まえて教えて頂ければ幸いです。
>>591 256/100倍した値が16ビット符号付整数でアンダーフローしただけだと思う
ただの未定義動作
594 :
581 :2008/10/22(水) 23:40:42 ID:kfyMLQPi
>>588 わかりやすく伝えようと思って書き間違えました、すみません。
>>584 AS⇔PHP⇔SESSIONでいいんじゃないですか?
595 :
Now_loading...774KB :2008/10/23(木) 01:18:53 ID:Ndaj4IL8
>>592 AMFPHPでもつかえばいいんじゃない?
596 :
584 :2008/10/23(木) 11:28:27 ID:nePyFxI1
>>594 すみません、言っている意味が良く解りません。AS⇔PHP⇔SESSION
sessionとはPHPのsessionの事ですよね?
あと、配列は常に保存していつでも取り出せるようにしたいので、一時的な保存では駄目なのですが、
テキストデータにして保存→再度読み込みとかはできるのですか?
>>596 まず、ウェブプログラム板いってPHPを使えるようになってから来なさい。
598 :
584 :2008/10/23(木) 11:45:38 ID:nePyFxI1
phpは多少ですが使えます。といっても自作の掲示板を作る程度ですが…… この関数を使えば良いんじゃない?などでも良いので、教えてください。
599 :
Now_loading...774KB :2008/10/23(木) 11:50:00 ID:Ndaj4IL8
Flash Media Serverつかえば、SharedObject.getRemoteでサーバーに 保存できるで。FMSつかうのいやだったらフリーでは、Red5とかどうかね。
>>598 flash.net.sendToURL
flash.net.URLRequest
flash.net.URLVariables
このへん調べればいいと思うよ。
しったかしないで多少は自分で調べる努力しないと身につかないよ actionscript phpとかで検索すればたくさんサンプルが見つかるよ
602 :
584 :2008/10/23(木) 16:32:38 ID:nePyFxI1
わかりました。後は自分でどうにかしてみます。答えてくださった皆さん。どうもありがとうございました。
603 :
584 :2008/10/24(金) 09:59:30 ID:DL3JCvGJ
あれかいろいろと試してみて、以下のソースを書いてみました。
on(release){
// ボタンが押されたら配列zahyoの値をサーバに保存
var req:URLRequest = new URLRequest("
http://localhost/mmdb2/ex12/save.php ");
req.method = URLRequestMethod.POST
var dataObject:URLVariables = new URLVariables();
for(var i:int=0 ; i < zahyo.length; i ++){
dataObject['itemArray[' +i+ ']'] = myArray[i];
}
req.data = dataObject
urlloader = new URLLoader();
urlloader.dataFormat = URLLoaderDataFormat.TEXT;
urlloader.load( req )
}
ボタンを押したらサーバに配列データが飛ぶ、というアクションです。
しかし、これをパブリッシュすると
URLrequestをロードできませんでした。
URLVariablesをロードできませんでした。
intをロードできませんでした。
と出てしまいます。これは何が原因なのでしょう・・・数時間調べましたが原因見つからず、助けてください。
あ、このソースはメインのレイヤーじゃなくて、ボタン用のレイヤーに書いてるんですけど・・・それは関係ないですよね?
配列のデータはメインのレイヤーに書いてます・・・
なんだ584は釣りだったのか。もう相手する必要ないな。
605 :
584 :2008/10/24(金) 11:58:39 ID:DL3JCvGJ
>>604 気に障ったのなら謝ります。でも、何で釣りになるんですか・・・?
ソース書いて意見求めるのは悪いことだったんでしょうか・・・?
テキストフィールドから文字列を取得する方法はどうすればいいんでしょうか? 例えば テキストフィールドにaiueoとあった場合 この文字コード(aiueo)はどのようなプログラムで取得できますか?
>>606 質問の意図がわかりにくいんだけど
flashからhtmlに書いてあるテキストフィールドの文字列を取得する
ってことであってる?
それならjavacriptでテキストフィールドの値をreturnする関数を書いて、
flashからその関数を呼び出せばOK
ExternalInterfaceを調べてください
608 :
606 :2008/10/24(金) 12:48:00 ID:r5cuLkts
すみません、少しおかしかったみたいなので訂正します。 今actionscriptでテキストフィールドを作って そこに文字を表示させるようにしています。 その文字の文字コードを取得すればどうすればいいのでしょうか? 今タイピングソフトなるものを作っていて問題と解答を比較するため文字コードを取得 する方法が知りたいです。
>>608 charCodeAt()
あとはcharCodeでヘルプ内を検索すれば関連するものが出てくる
610 :
606 :2008/10/24(金) 13:17:01 ID:r5cuLkts
>>609 ありがとうございました。本当に助かりした。
続けて質問したいことがあります。もしよければ答えていただければ幸いです。
1分間とかの時間を表示するプログラムはどのようにすればいいですか?
例えば 01:00からカウントを始めて 00:59→00:58→・・・00:00という風に
カウントさせる時間表示はどのようなプログラムで表せますか?
何度も申し訳ありません。
>>610 AS2ならsetinterval
AS3ならtimerもしくはsetinterval
こういう場合は「actionscript カウントダウン」とか「actionscript 一定時間」とかでGoogle検索すれば
目的のものが見つかります
612 :
606 :2008/10/24(金) 13:51:40 ID:r5cuLkts
>>611 素早い解答ありがとうございました。
自分でもぐぐってはいたんですが時刻表示とかでぐぐってたので目的のものは見つかりませんでした。
参考にさせていただきます。
配列にいくつかのpublicなプロパティ(uint型)とメソッドで構成された カスタムクラスのインスタンスをいくつか並べていって 配列の任意の位置(例えば[1]と[5])のインスタンスを入れ替えたいのですが pushやpopを使った配列の操作ではなく var hoge:Hoge = new Hoge(); //カスタムクラスHoge型 hoge = piyo[5] ; //piyo[] = Hoge型のインスタンスが並んでいる piyo[5] = piyo[1] ; piyo[1] = hoge ; こんな感じでやりたいのですが、うまくプロパティの値が交換できてないようなのです。 piyo[5]のプロパティを一旦逃がしておいてpiyo[1]のプロパティをpiyo[5]に代入 その後逃がしておいたpiyo[5]のプロパティをpiyo[1]に代入 これは上手くいくんですがなんだか冗長な気がして もっとシンプルに書けるんじゃないかと考えているのですが・・・ var: Flash CS3 ( actionscript3.0 ) os: winXP SP2
>>613 冗長?
一旦逃がすのが最もシンプルだと思うけど
そのコードで new Hoge() してる理由がよくわからんけどロジックは問題ない というかそれ以外にない 値が交換できてないというのは元の値か、または検証の仕方にミスがあるんだろう
616 :
613 :2008/10/25(土) 14:38:47 ID:SP81MrFQ
>>614 プロパティが5つあったとして(年齢、身長、体重、etc...)その分だけ行数が増えるのは冗長かなと・・・
インスタンスごとそっくりそのまま入れ替えれば極端な話1行で済むと考えたのです。
>>615 コードを眺めていて確かに私に見落としがあった事に気付きました
今ちょっと全体のプロセスの再構築を考えてますが多分解決できると思います。
レスありがとうございました
actionscript2.0から3.0にインポートする方法ってあります?今まで2.0で書いていたソースを3.0に書き換えたいのですが・・・
初心者な質問申し訳ありませんが、 MCをX軸に沿って移動する場合で、加速・減速させて移動するというのは、 どういう風にしたらいいのでしょうか?
>>618 AS2だとして
MC.hayasa = 0;
MC.kasoku = 1;
MC.onEnterFrame = function(){
this._x += this.hayasa;
this.hayasa += this.kasoku;
};
>>619 ありがとうございました。
完ぺきです。
>>618 いい事言うなあお前。
みんなが頭じゃわかっててもなかなか実践できない事を口に出して言えるなんざ大変な自信だよ。
それで出来てなかったらあのインチキ占いのバアさんと一緒だぞお前。
そんなに当たり前の事を言いたかったら尼さんにでもなってから説教したらどうだ。
AS2使ってます。 外部テキスト(サーバに「load.txt」と置いてある)から変数を呼び出すのってloadvarで出来ますか? 出来ればサンプルも添えてお願いします。
624 :
623 :2008/10/27(月) 02:13:53 ID:l6Lq2dQh
あ、すっごいありました;ども、ありがとうございます〜
AS2ですけど、配列データからビットマップを生成するのってどうやるんでしょ・・・?
> 配列データからビットマップを生成するのって... 意味不明!
カスタムクラスを外部asファイルで作って そのインスタンスを作らずにaddChild()を使いたいんですけど(public static functionで) やってみるとaddChild()って何?って感じになります extends Spriteにしてインスタンスを作ると分かってくれるのですが やっぱインスタンスを作らないとaddChild()は使えないのでしょうか?
626です。すみません、書き方が悪かったです。 配列にX座標データとY座標データを入れてます。その座標データを下にビットマップデータ(絵として) を生成したいんですけど、やり方がいまいちわかりません。だれか教えてください。
太陽と地球と月の関係(公転・自転)をAS2で作ろうとおもってます。 地球の回転を単なる円ではなく、楕円にしたいのですが、どうやればできまるか
ある特定の文字を赤く表示させたり(強調など)するプログラムはどのようにすればいいですか?
ttp://www.nicovideo.jp/watch/sm5066006 この動画みたいな(仕組みは違うと思うけど)、特定の場所をロールオーバーするとプルプル揺れるFLASHを作りたいです
↑の動画だとマウスの動く速度や角度で揺れ方に変化がありますが
そこまで再現しようとするとなんだかとても大変そうなので
とりあえず(マウスの動く速さや角度関係なく)ロールオーバーしたら画像が上下に揺れる動作を表現したいです
できればでいいので、ロールオーバーしたときのマウスの速さや角度も影響する方法もあれば教えていただけるとありがたいです
private function keyDown(event:KeyboardEvent):void { tracetxt.text = "KeyCode > " + event.keyCode.toString() + "\n"; tracetxt.appendText("KeyLocation > " + event.keyLocation.toString() + "\n"); tracetxt.appendText("CtrlKey > " + event.ctrlKey.toString() + "\n"); tracetxt.appendText("ShiftKey > " + event.shiftKey.toString() + "\n"); tracetxt.appendText("EOF"); } AS3 XP シフトキーやコントロールキーを押しても、 shiftKey、ctrlKeyの値がfalseのままでした。 何が問題なのでしょうか。 keyCodeやkeyLocationは取得できてます。
635 :
634 :2008/10/29(水) 14:56:49 ID:jCV2WNJW
すいません。キーイベントをアップにしてたからのようです。 ダウンにしたら動作しました。 申し訳ないです。
636 :
632 :2008/10/29(水) 15:17:25 ID:BHgMPhcZ
本屋にいって調べたら見つかりました。 迷惑かけて申し訳ありません。
配列データをFLASHからPHPに送り、テキストデータに保存という動作をしたいのですが、 var send2:LoadVars = new LoadVars(); var str2: String = String(loadzahyo); send2.name = str2; send2.sendAndLoad('URL',send2, 'POST'); 配列データは数字です。 以上のソースを打つと、必ずPHP側に送信するデータの最初のnameとか言うのが勝手に入ってしまいます。 そのせいで再受信するときにString型として扱ってしまい、困ってます。数値データに変換すれば問題は無いのですが それも馬鹿らしいです。どうすれば最初のnameと言う値を入れないように出来るでしょうか? FLASHに詳しい方、教えてください。
638 :
Now_loading...774KB :2008/11/05(水) 12:39:14 ID:W9kd5SLb
環境:WindowsXP + FlashMX(無印) ------------------ draw_mc ------------------ area_mc ト 1_mc ト 2_mc … 1_mc〜100_mcの、あらかじめステージ上に配置されているムービークリップの 中心座標を取得してdraw_mc上に線を引きたいのですが、 [ No + "_mc" ]._x とtraceしても座標が表示されません。 どうしたらいいでしょうか?
>>638 これこそeval()じゃないの?
mc = eval( 連番 + "_mc" );
trace( mc._x );
違ってたらゴメン...
640 :
Now_loading...774KB :2008/11/05(水) 20:01:06 ID:VKFn3uST
AS3のデータグリッドで質問です。 行の選択をスクリプトで指定するにはどうしたらいいですか? dg.selectedIndex = 5; とかやっても選択状態になりません ><
641 :
Now_loading...774KB :2008/11/05(水) 20:19:54 ID:VKFn3uST
自己解決しました データグリッドにヘッダーを配置した場合には、 selectedIndex の値が +1 ずれるのだとわかりました
>>637 まったく同じscriptでためしたけど、POSTデータにnameなんて入らなかったよ
php側は、受け取るデータを$_POST['name']って書いてる?
643 :
638 :2008/11/06(木) 01:30:43 ID:KXDjmQm/
>>639 できました!evalの存在忘れてました…
ありがとうございます
Flex3.0SDKで学ぶActionScript3.0入門の91ページに 「拡張子に2文字のasを使わないことです。asファイルは、パッケージの定義ファイルに決められているからです。」 と記述してありますがここでいうパッケージ定義とはなんのことでしょうか? 公式のリファレンス等調べたのですが拡張子は.asになっています。 もともと用意されているものと混在しないように分けているのでしょうか? 誰かたすけてくだしあ><
>>642 解決しました。何故かパブリッシュしなおしたら消えてた。……謎。
>>644 たまたま同じ本を持っていたのでわかるんだが、
そこではMXMLファイル中のAS部分の切り出しの事を言ってる。
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml ">
<mx:Script>
<![CDATA[
///////ここを別ファイルに記述することができるが、その時はasって拡張子は使わないでね。
]]>
</mx:Script>
</mx:Application>
拡張子がasの場合
かならず
package
{
//ここでクラス定義など
}
という内容になる。
<mx:Script>の内側を外部ファイルに記述するときは
function hoge()
{
}
など、package{}で括らない。
これはパッケージ定義ではないので、.asという拡張子は使っちゃいかん。
ということ。
>>646 本を読んだ限りではいまいち理解できずにいました。
丁寧な解説ありがとうございました。
| | ● item598_mc | | ■ item23_mc | | ▲ item908_mc | | ★ item7_mc | ↓y FlashCS3、AS3.0です。 こんな感じでドラッグ可能な(addChildで動的に配置した)MCが並んでいます。 上から下にy座標が大きくなっています。 重ね順序も ●<■<▲<★ の順番です。 今、■ (item23_mc)を▲と★の間にドラッグすると y座標は ●<▲<■<★ の順番になります。 このとき重ね順序もこの順に入れ替えたいのですが、どんなスクリプトを書けばいいでしょうか? なお、このMCは4個だけでなく、必要に応じて10個〜100個ほど配置する予定です。 numChildrenで個数を取得してgetChildAtで総当りすればいいと思うんですが…… 自分の頭ではこれ以上思いつきません。 どうかご教授よろしくお願いします。
649 :
Now_loading...774KB :2008/11/07(金) 16:22:32 ID:3UxflK31
リストコンポーネントの特定のアイテムについて、 背景色や文字色を変更することは可能ですか?
650 :
Now_loading...774KB :2008/11/07(金) 18:04:48 ID:3UxflK31
だれもわからないすか…orz
651 :
Now_loading...774KB :2008/11/07(金) 18:24:15 ID:K2E2DqCi
CellRenderつかえばできるで
653 :
Now_loading...774KB :2008/11/07(金) 18:26:47 ID:K2E2DqCi
こういう感じのasファイルつくっといて package { import fl.controls.listClasses.CellRenderer; import fl.controls.listClasses.ListData; import flash.text.TextFormat; public class CustomCellRenderer extends CellRenderer { public function CustomCellRenderer() { var format:TextFormat = new TextFormat(); format.leading = -2; format.size = 10; setStyle("textFormat", format); } } } ↓のように設定すればスタイルが変更できるとおもふ list.setStyle("cellRenderer", CustomCellRenderer);
654 :
Now_loading...774KB :2008/11/07(金) 18:47:25 ID:3UxflK31
情報少なくてすんません…環境はCS3でAS3.0でAirです。 「特定のアイテムの背景や文字色」という意味ですが、 「上から3個目のアイテムだけ」背景は黒で文字色が白にする という感じなんです。 CellRenderer 使うと、全部の背景とかが変わるだけなんです… ><
655 :
Now_loading...774KB :2008/11/07(金) 18:49:33 ID:K2E2DqCi
list.getItemAtで何番目かのアイテムを指定してそこにsetStyleすれば できない?
656 :
Now_loading...774KB :2008/11/07(金) 19:07:42 ID:3UxflK31
>>655 レスありがとうございます。
やってみると、
TypeError: Error #1006: setStyle is not a function.
ってエラーメッセージが出てきてしまいます。
---------- 以下ソース ----------
import fl.data.DataProvider;
import fl.controls.List;
var dp:DataProvider = new DataProvider();
var i:uint;
for(i=0; i<100; i++) { dp.addItem( { label: "Item " + i } );}
var list:List = new List();
list.setSize(100,300);
list.dataProvider = dp;
addChild(list);
list.getItemAt(10).setStyle("backgroundColor",0xFF0000);
657 :
Now_loading...774KB :2008/11/07(金) 19:38:28 ID:K2E2DqCi
list.itemToCellRenderer(list.getItemAt(10)).setStyle("backgroundColor",0xFF0000); これはどう?
658 :
Now_loading...774KB :2008/11/07(金) 20:04:46 ID:3UxflK31
>>657 >list.itemToCellRenderer(list.getItemAt(10)).setStyle("backgroundColor",0xFF0000);
これでやると、コンパイルエラーが出るので
import fl.controls.listClasses.CellRenderer;
+
var crItem:CellRenderer = list.itemToCellRenderer(list.getItemAt(10)) as CellRenderer;
crItem.setStyle("backgroundColor",0xFF0000);
でやってみました。
でも、
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at List_fla::MainTimeline/frame1()[List_fla.MainTimeline::frame1:15]
at runtime::ContentPlayer/loadInitialContent()
at runtime::ContentPlayer/playRawContent()
at runtime::ContentPlayer/playContent()
at runtime::AppRunner/run()
at global/runtime::ADLEntry()
ってなるんです。 ><
659 :
Now_loading...774KB :2008/11/07(金) 20:12:33 ID:K2E2DqCi
リストイベントで itemToCellRenderer ( ListEvent.item ) こうだったらいけるんだけどねぇ。 イベント以外で設定する場合はどうしたらいいんでしょうかね。
660 :
Now_loading...774KB :2008/11/07(金) 20:19:12 ID:3UxflK31
誰か天才PGさん、できれば、そこんところの知恵をください m(..)m
複数のフレームを持っているムービークリップをrootの各フレームに一つずつ配置します。 このようなときに、ムービークリップのフレームも含め一フレームずつ進んでいく関数が欲しいのですがどのようにしたら実現できるでしょうか? 例えば以下のような事をしたいと思っています。 *mc1 - 内部に1から3のキーフレーム(A, B, C)を持つ *mc2 - 内部に1から4のキーフレーム(Z, Y, X, W)を持つ *root(シーン1) - 1フレーム目にmc1、2フレーム目にmc2が存在する。 この関数をrootで実行すると実行するごとにA, B, C, Z, Y, X, Wと進んでいく。 よろしくお願いいたします _ _ AS2です
662 :
Now_loading...774KB :2008/11/07(金) 21:32:51 ID:3UxflK31
>>661 以下の関数とプロパティを、root、mc1、mc2 のそれぞれで使いこなせばOKじゃないすか?
mc.onEnterFrame();
mc.play();
mc.stop();
mc.totalFrames;
mc.currentFrame;
>>661 各キーフレームにあるムービークリップをすべて取得して配列に格納
ムービークリップの_currentframeと_totalframesを比べて
_currentframe!=_totalframesならnextFrame()で進める、
_currentframe==_totalframesなら配列の次のムービークリップに移って同じ処理を繰り返し
配列の最後のムービークリップの最後のキーフレームまでいった今度は_rootをnextFrame()で進める
でどう?
んな事聞くなw
円が5つほど並んでいて、1つの円にマウスを乗せると その他の円の色が薄くなる...なんてことがやりたいんですが どのようにスクリプト組んだらよいんでしょうか? プログラムとは無縁の人生を歩んできて、全然分からんですorz AS3です。よろしくお願いします
>>667 すべての円の色を薄くする
マウスを乗せた円だけ元の色の薄さに戻す
の順に処理すればOK
669 :
667 :2008/11/09(日) 21:54:38 ID:dsn9F6OI
>>668 あー、そうやって考えるんですね(^^;
ありがとうございます!やってみます!
円1にマウスが重なったら、円2,3,4,5を薄く 円1からマウスが離れたら、円2,3,4,5を濃く 円2に・・・ とか考えたおれは終わっとる orz
>670 >668の処理を2つ同時にやってるだけで、終わってなんかないぞ
個別に考えた場合 実際にスクリプトにすると場合分けが余分に入っちゃうよ
LoadVarsをつかって外部ファイルからテキストをダウンロードする動作で質問があります。
var load_vars3:LoadVars = new LoadVars();
var timearray:Array = newArray();
load_vars3.onLoad = function(seikou) {
var lo_str3: String = String(load_vars3);
timearray = lo_str3.split(",");
trace("jikan2------------------------------"+ filename3[1]);
}
load_vars3.load('
http://localhost/mmdb2/ex14/saveload/jikanload.php ');
trace("aaa"+timearray3[1]);
以上のソースだと{}内のtimearray3[1]は値が表示されるのに
{}外のtimearray3{}では値が表示されません。これは仕様でしょうか?
{}の外でもこの変数を使うことは出来ないでしょうか?
>>673 順番理解してますか?
1.↓で読み込む
load_vars3.load('
http://localhost/mmdb2/ex14/saveload/jikanload.php ');
2.読み込みが完了したら↓の関数が呼び出される(onLoadっていうのはそういう意味)
oad_vars3.onLoad = function(seikou) {〜}
読み込みが終わってはじめてtimearrayの配列に値が入るのだから、
{}の外に書いておいたら読み込みが終わってるかどうかわからない
当然読み込みが終わってなければ値が入ってないから何も出てこない
仕様とかじゃなく、ちゃんと処理の順序を考えてからスクリプトを書かないとダメ
>>674 読み込みは出来てますし、値も入ってます。サンプルにも.loadは外に書いてましたし……
ですが、traceを{}の外に書くと値が入らないのです。やはり処理は{}内でしてしまわないと行けないのでしょうか?
ですが、それだと若干不便なんですよね……
>>675 良く読むよろし。
↓行頭の数字は処理が行われる順番。
1:var load_vars3:LoadVars = new LoadVars();
2:var timearray:Array = newArray();
5:load_vars3.onLoad = function(seikou) {//読み込みが完了したら実行される
6:var lo_str3: String = String(load_vars3);
7:timearray = lo_str3.split(",");
8:trace("jikan2------------------------------"+ filename3[1]);
9:}
3:load_vars3.load('
http://localhost/mmdb2/ex14/saveload/jikanload.php ');//これを書いたからと言ってこの後の処理が止まる事はない。
4:trace("aaa"+timearray3[1]);//上に続いて即座に実行される。
onLoadの方がtraceより後に実行されるんですよ。
>>677 処理の順番は理解しました。
ってことはfilename3[1]の値を{}の外で使うことは無理、と言うことですよね?
>>678 読み込まれたらそのデータを使って実行すればいいじゃん。
実行する関数とかを用意してonLoad内で使うとか。
load_vars3.onLoad = function(){
〜
func();
}
function func(){
trace("aaa"+timearray3[1]);
}
とか。
> ってことはfilename3[1]の値を{}の外で使うことは無理、と言うことですよね?
やりたい事がよくわからんが、「無理」。
>>379 の言うとおりにすれば済むと思う。
配列の最後の要素(のメソッド)を参照したいのですが hoge[hoge.length - 1].test(); これで一応上手くいくのですが、[hoge.length - 1]と同義の書き方(メソッド)ってありませんか? 例えば hoge.lastIndex.test(); みたいな感じだとスッキリしていいなと考えてるのですが
あるかないかぐらいリファレンス見ればわかるだろ
timearray = lo_str3.split(","); trace("aaa"+timearray3[1]); timearray≠timearray3
>>650 こんな感じでできない?
public class MyCellRenderer extends CellRenderer {
public function MyCellRenderer():void {
super();
addEventListener(Event.RENDER, onRender);
}
private function onRender(event:Event):void {
if (listData.row == 3) {
setStyle( 省略 ); // 3行目だけのスタイル
} else {
setStyle( 省略 ); // それ以外の行のスタイル
}
}
...
}
renderイベントじゃなくてもっと適切なイベントがあるかもしれん。
renderイベントのかわりにset function listDataをoverrideしてそこで
setStyleしてもいいかもしれん。
わしFlexSDK使いでCS3はよく知らんのではずしてる鴨。そしたら御免。
AS2です。再帰呼び出しの練習をしているのですが、どうにも上手くいきません。 タイムライン上で行いたいのですが、どなたか参考になるサイトを知りませんか?
再帰呼び出しっちゅーのが階層構造になってるナニカを掘り起こすってことなら、 ループ回してfunctionに渡せばできるんじゃね。
>>685 再帰呼び出しってのはこういうこと。
function getFolderTree( param ){
}
よくわかった
689 :
687 :2008/11/16(日) 22:24:20 ID:dlmMy+08
なんかいきなり送信されてフイタ。 function getTree( someStructure ){ var obj = new Object(); for ( var elem in someStructure ){ if ( typeof( someStructure[ elem ] ) == "object" ){ getTree( someStructure[ elem ] ); // これ } obj.elem = someStructure[ elem ] } return obj; } こんな感じ。関数自身からその関数を呼び出す。 上手く組めば、スマートに処理を記述できる。
>>685 再帰的な処理をフレーム単位で順次行いたいってことかな?
そういうことであれば、まず再起処理をループ処理に書き換えてあげる必要があるな。
たとえば木の処理でいうと、現在処理してるオブジェクトをスタック(用の配列)にpush
しながら、末端まで子のほうに進み、それが完了したらpopしながら親の方に戻ってきて、
スタックが空になったら終了みたいな。
comenというダイナミックテキストフィールドの中に変数text(中身は文字列"こんにちわ〜〜〜〜〜〜〜〜") と言うデータを「右から左に流れるように」表示したいのですが、どうやったら出来るでしょうか? そのまま表示させるのは出来るのですが、あまりにも味気ないので・・・
>>691 comenをENTER_FRAMEイベントでちょっとずつ右から左へ動かしてやれば?
初心者ですが、質問です。 MySQLのデータをActionScriptで呼び出し、 直接ブラウザに表示するようなことは可能ですか? 参考になるURL・参考書等教えていただけますでしょうか。
>>693 直接ブラウザにっていう意味がわからないけど
javascriptと連携させれれば出来るよ
>>694 回答ありがとうございます。
追加で質問なんですが、
表示だけでなく、編集・削除などは可能でしょうか?
どういう環境で実施するのか書かなけりゃそんなの答えられねぇ flash remoting でググレカス
あるイベントを下のように処理している最中に 新たにユーザイベントが発生してイベントハンドラであるhogeが呼ばれる事はあるのでしょうか? function hoge(event:MouseEvent):void { . . . removeEventListener(MouseEvent.MOUSE_DOWN, hoge) }
>>697 質問の意味がよく判りませんが、
removeEventListener()は、イベントリスナを解除するメソッドだよ。
マウスダウンした時にhogeメソッドのコールを解除するという意味
>>697 自分も詳しくないから正確にはわからんけど多分ありうるんじゃないかな?(間違ってたらスマソ)
でも、心配ならまっさきにリスナを削除してから処理を始めればほぼ問題ないんじゃない?
function hoge(event:MouseEvent):void
{
removeEventListener(MouseEvent.MOUSE_DOWN, hoge);
.
.
.
}
700 :
697 :2008/11/18(火) 22:33:32 ID:i0jPBEQt
>>698 ありがとうございます
ASはシングルスレッドで処理されるみたいなので
並行して関数が処理される事はないみたいですが
解除前にユーザイベントが発生した場合
イベントを受け付けるのかどうか気になったので
>>699 ありがとうございます
しばらくそうしてみます
色々とテストしてみようと思います
>>700 おれもこの状況でイベントハンドラが呼ばれてしまうか知りたい。
ASがシングルスレッドなので自分の書いたコードが同時に走るることはないんだけど、
イベントってなんか、イベントキューにとりあえず放り込まれてからあとで順次イベントハンドラが
呼ばれていくっていうイメージがあるんで、イベントハンドラ内で自分をremoveEventListnerしても
すでにキュー内に放り込まれた分はイベントハンドラが呼ばれちゃうんじゃないかなぁ、と勝手に想像。
なので、おれはフラグも併用するよ。
var hogeDisabled:Boolean = false;
function hoge(event:MouseEvent):void {
if (hogeDisabled) return;
...
removeEventListener(MouseEvent.MOUSE_DOWN, hoge);
hogeDisabled = true;
}
呼ばれないことが保障されているんだったら、これメンドイのでもう止めたいんだが…
実際のとこどうなんでしょうね?
ActionScriptでオブジェクトの型を取得する方法ってありませんか? JavaのgetClass()のようなものなんですが・・・
>>703 なるほど
試してみます
レスどもでした
今までActionScript2.0でゲーム作ってました。 CS3を手に入れたので3.0でのゲーム作りを始めたいのですが、 入門に何かいい本・サイトはありますでしょうか。 特にゲーム製作について触れている本だと嬉しいです。
>>705 ゲームのノウハウは2.0でも3.0でも変わらないっしょ
3.0で出来ることとかスクリプトの書き方は変わってるけど
とりあえずActionScript3.0入門ノートでいいんじゃない?
>>706 ありがとうございます 確かに仰るとおりですね
amazonで評価見てもなかなか良さそうなのでとりあえずそれを買ってみることにします
別のスレでも質問したのですが、そちらは今忙しいようですのでこちらで質問させていただきます。失礼に当たりましたらすみません。 AS2を使っています。 flvplaybackに巻き戻し機能を追加したいと思っているのですが、どうにも上手くいきません。 seekを試してみたのですが、seekはフレーム間移動のようですので、正確な時間指定が出来ないで困っています。 「現在の動画の再生状況-3秒」で再生をさせるにはどのようにしたら良いのでしょうか? ボタンをぽちっと押したら3秒前の動画に移る、と言うようにしたいのです。どうか力を貸してください。
>>708 seekで指定した時間ぴったりのところにflvのキーフレームがない場合、一番近いキーフレームに丸め込まれる
なのでflvエンコード時に自動でキーフレームを入れるとか、キーフレームの間隔が広いと多分一見ちゃんと動かないようにみえる
でもこれは仕様通りの動き
対策はキーフレームを1フレームごととか細かく打ち込むこと
as 3.0 に変更してほとんどわからなくなってしまったんですけど、 外部テキストを読み込んで表示させるというasは ------------------------------------------------------- var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE, onCompleteHandler); System.useCodePage = true; loader.load(new URLRequest("text.txt")); function onCompleteHandler(event:Event):void { var vars:URLVariables = event.target.data; news.htmlText =vars.bun; } ------------------------------------------------------- このScriptで行けたんですが、この外部テキストに よくありがちな bun1 = 本文・・・・・& &bun2 = 本文・・・・& &bun3 = 本文・・・・& &bun4 = 本文・・・・& &bun5 = 本文・・・・& って感じの中身のテキスファイルを i++; if (_root["news"+i] == undefined) { i = 1; } を使って作りたい場合のScriptってどうすればいいんでしょうか? 誰か教えて下さい。いろいろ調べてみたんですが、1週間たった今も解読 出来ません(;_;)
質問の意味が良くわからんがこういうことか? function onCompleteHandler(event:Event):void { var vars:URLVariables = event.target.data; var dataArray:Array = new Array(); for (var a:String in vars){ dataArray.push(a); } for (var i:int=0; i<dataArray.length; i++) { //テキストフィールドを直接配置してそこへ全部表示するならこっち news.htmlText += vars["bun"+ String(i+1)]; //テキストフィールドをシンボルにしてclass名NEWSでリンケージ設定してインスタンスをつくるならこっち var mc:NEWS = new NEWS(); mc.name = String(i); mc.news_txt.text = vars["bun" + String(i+1)]; mc.y = mc.height * i; addChild(mc); } }
AS3でお聞きしたいのですが。 こういったものを function createNavigation() { var button1:MyButton; button1 = new MyButton(myXML.site[0].name); button1.x = 100; button1.y = 200; button1.addEventListener(MouseEvent.CLICK, onBtn1Clk); addChild(button1); var button2:MyButton; button2 = new MyButton(myXML.site[1].name); button2.x = 250; button2.y = 200; button2.addEventListener(MouseEvent.CLICK, onBtn2Clk); addChild(button2); var button3:MyButton; button3 = new MyButton(myXML.site[2].name); button3.x = 400; button3.y = 200; button3.addEventListener(MouseEvent.CLICK, onBtn3Clk); addChild(button3); } を
function createNavigation() { for (; ; ) { if (i >= 3) { break; } var button[i]:MyButton; button[i] = new MyButton(myXML.site[hoge].name); button[i].x = 400; button[i].y = 200; button[i].addEventListener(MouseEvent.CLICK, onBtn[hoge]Clk); addChild(button[i]); i ++; } } という風にまわす事って可能なんでしょうか? 変数を配列化したいのですが、やり方がわからないんです。 どなたか教えてもらえないでしょうか?
試したの? Arrayは知らないの?
715 :
Now_loading...774KB :2008/12/12(金) 16:13:50 ID:BJWvb1Th
質問です! (環境; ActionScript2.0、flash6 、winXP) Soundクラスのpositionプロパティについて質問。 再生中の音声を stop() メソッドで止めても positon プロパティが 0 にならなくて困ってます。 このプロパティを 0 にするにはどうしたらいいのでしょうか。( 0 を代入しても変化ありませんでした) 何故困るかというと、このプロパティを使って再生中か停止中かを判断しているからです。 再生が終了したときに発生するイベントとフラグのための変数を使えばこの判断が出来ることは 分かっているんですがスマートじゃない気がして・・。 ご意見お願いしますm(_ _)m
716 :
715 :2008/12/12(金) 16:25:40 ID:BJWvb1Th
ついでに質問、positonプロパティに代入が出来ないということは、曲の途中から再生したり、 曲を1分前に巻き戻して再生したりすることも出来ないということでしょうか。 ムービークリップのタイムラインに曲を貼り付け、ムービークリップのフレーム移動を利用すれば これらが出来ることは知ってますが、外部ファイルの音声ファイルをSoundクラスにロードした場合はどうすればいいんでしょうか。
717 :
715 :2008/12/12(金) 16:38:31 ID:BJWvb1Th
すみません、
>>716 の質問はぐぐったら見つかりました。 startメソッドの引数にどこから再生するかを
指定出来るそうで、失礼しました。
>>715 はフラグ変数を使うしか無い気がするのでとりあえずそれで実装しておきます。
>>717 positionとdurationを比較したら出来るんじゃね?
719 :
715 :2008/12/13(土) 09:10:48 ID:KayOQsKS
>>718 その方法だとstopメソッドを使って停止している状態でも再生中と判断されてしまうんです。
>>715 イベントサウンド再生時の二重再生防止でフラグ使うのが半ばデフォだったりする。
フラグ使いたくないってのが良くわからないな。
721 :
715 :2008/12/13(土) 20:35:22 ID:KayOQsKS
>>720 二重再生防止は
>>718 の方法で出来るのでフラグは不要だと思うんですが、
フラグを使うのは何故ですか?
んじゃonSoundCompleteをフラグ代わりに使うのはどう? 終了したらundefinedになるようにして、undefinedか否かで判定
いや二重再生ってloadSound("sound",false)でfalse、イベントサウンドに指定した時に
再生中にsound.start()させるとダブって再生されること。
position、duration関係ない、よ、な?
イベントサウンドの場合は再生フラグを使うのが普通。
ストリーミングサウンド(第2引数がtrueで)使ってるならフラグは必要ない。
>>722 onSoundCompleteは途中で止めたときは呼び出されないから
ポーズボタンとかストップボタン使ってる場合は「再生中」の判定には使えない。
724 :
715 :2008/12/14(日) 07:24:03 ID:Dn4mqZFm
>>722 音声の再生がstop()されているかどうかの判定はそれでは出来ないですね、
でもそういうことも出来るとは知らなかったので参考になりました、ありがとうございました。
>>723 このコードでも二重再生になってしまうんですか? こちらで試したところ二重再生はおきませんでした。
var sound:Sound = new Sound(myMC);
sound.loadSound("sound.mp3", false);
~~~~~~
if ( sound.position == 0 || sound.position == sound.duration )
{ sound.start(); }
何か勘違いしていたらすみません。^^;
>>724 なるほど、で、そうしたところ途中でストップさせるとpositionが0にならないため
リスタートが出来なくなると、、、で>715の質問、て訳か。
sound.positionをonEnterFrameで監視させてpositionが動いてなければ停止中。
みたいなことも出来なくもないだろうけど
if(!flag){
sound.start()
flag=true
}
ストップ又はonSoundCompleteでフラグをfalse
としたほうがはるかにスマートだと思うけどな。
726 :
715 :2008/12/14(日) 13:07:10 ID:Dn4mqZFm
>>725 うーん、やっぱりそれしか無いんですかね。
自前でフラグ変数を用意しないと再生中かどうかが分からないような不便な仕様になってるはずがないと
思ってこちらで質問したんですが、この通りの仕様だったんですねorz
「stopをしたらその時のposition値が返り、positionは0になる」 みたいな仕様だったらフラグが
要らずに済んだんですけどねぇ。
まあ、そういうものだと思って諦めます。 お付き合いして下さった皆様、本当にありがとうございましたm(_ _)m
FLASHで動画をストリーミングして再生、と言う動作をしたいのですが、 ストリーミングが終わってから再生させるにはどういった事をすればいいのでしょうか? AS2使ってます。
プログレッシブダウンロードさせて、 ダウンロードが完了したら再生でいいのかな?
>>728 プログレッシブダウンロードは良く解りませんが、恐らくそうです。
flvplaybackコンポーネントを使って、ストリーミングをしています。
質問させてください。 addItemしたコンボボックスに対してselectedIndexは発行できないんでしょうか? 何を指定しても一行目が選択されてしまい、困っています。 例えば、ComboBox1.selectedIndex = -1; でも聞いてくれません。 ちなみにコンボボックスのパラメータのdataとlabelは全てカラです。 値が入っているコンボボックスにはちゃんと効いてくれます。
素人な自分ならこうするという案、スルー推奨。 ”カラじゃない状態にして効かしてからカラに戻す”
環境:Flash CS3 actionscript3 WinXP Pro 描画APIで背景にラインを並べて描こうとしているのですがforでループさせようとすると上手く描いてくれません。 public function DocumentClass() { graphics.lineStyle(1,0x000000,1); graphics.moveTo(0,0); graphics.lineTo(stage.stageWidth,0);//試しに描いてみる graphics.moveTo(0,5); graphics.lineTo(stage.stageWidth,5); graphics.moveTo(0,10); graphics.lineTo(stage.stageWidth,10);//ここまではちゃんと表示される for( var i = 15; i >= stage.stageHeight; i+5 ) { graphics.moveTo(0,i); graphics.lineTo(stage.stageWidth,i);//ここの処理をしてくれない } }
>= は向き逆じゃね?
734 :
732 :2008/12/19(金) 20:19:23 ID:jhSArVUB
>>733 それも試したんですけど(というよりそれが正しいはずなんですけど)
それやるとタイムアウトエラーになっちゃって・・・
iの中身がずっと同じままだから無限ループになってたわけね。
737 :
732 :2008/12/19(金) 21:09:21 ID:XjP36bAM
>>736 ありがとうございます。
解決確認しました。
勉強になりました。
738 :
732 :2008/12/19(金) 21:13:06 ID:XjP36bAM
オブジェクトのクラス名って、どう取得するの? trace(typeof(obj)) としたら、object としか出てこない。
instanceof
getQualifiedClassName() でオブジェクトの完全修飾クラス名を取得できる
>>739 flash.utils.getQualifiedClassName()
拾えました。ありがとうございます。
>>463 一応対策して敷居を上げておくのは悪くないけど
それでも破られたらあきらめる覚悟で。
絶対というならサーバー側で全部やるのが普通
ゲームの場合はハックできたほうがおもしろいんだけどね
ーーー
あと質問を・・・
Flex Builder3でmx:Textareaにログを表示しようとしてるんだけど
末尾に追加してスクロールってどう書けばいい?
745 :
744 :2008/12/22(月) 20:37:45 ID:jqgt1mZp
自己解決したのでソース晒し private function log (message:String):void { logtext.text += message + "\n"; trace (message); // 一番下までスクロールしてある時だけ自動スクロールする if(logtext.verticalScrollPosition == logtext.maxVerticalScrollPosition) callLater(function():void { logtext.verticalScrollPosition = logtext.maxVerticalScrollPosition }); }
public class foo{} public class bar{public var hoge:Class = foo;} このときhogeには特定のI/Fや基底クラスを実装しない クラスは入れられない、とかできないでしょうか?
public class foo{} public class foofoo extends foo{} public class bar{public var hoge:foo = new foofoo();} 入れる変数の型名を基底クラスにすればそのクラスまたはそれを継承したクラスでないと入らない こういうことでいいのかな?
>>746 hogeをsetter/getter化してsetterでチェックしたらどうかね?
public class bar {
private var _hoge:Class;
public function get hoge():Class { return _hoge; }
public function set hoge(value:Class):void {
if (valueが条件を満たしたクラスでない) { throw new ArgumentError(); }
_hoge = value;
}
}
>valueが条件を満たしたクラスでない flash.utils.describeType()でクラスオブジェクトから型情報を取得して <factory>タグ内の<extendsClass>, <implementsInterface>を調べれば判定できる。
750 :
Now_loading...774KB :2008/12/23(火) 23:40:12 ID:RYdj5A5g
actionscriptで_root.test.onEnterFrame = function(){} をdelete _root.test.onEnterFrame で消せるのはいいが、 呼び出すのはどうしたらええの?
あと、setVolume()のsetSeek()みたいな サウンドオブジェクトの再生時間を移動させるメソッドってない? seek()使ってみたんだけどどうも、seek()の部分だけ働かない可能性が高い。 使ってるflashはsuzukaの最新版
752 :
Now_loading...774KB :2008/12/25(木) 05:57:47 ID:tjRRZNyf
actionscript3で処理をブロックさせたいのですが...(以下のような擬似コードを書きたい) /*** giji ***/ func1(); sleep(1000); func2(); sleep(1000); ... こういうのってTimerオブジェクトとかsetInterval()でやるんですよね?例えば timer1 = new Timer(1000, 1); timer1.addEventListener(TimerEvent.TIMER, func1()); timer1.start(); timer2 = new Timer(1000, 1); timer2.addEventListener(TimerEvent.TIMER, func2()); //timer2のイベントを待ちたいが... timer2.start(); とかやってもtimer1が吐くイベントでfunc2が実行されますよね? func1の中にtimer.start();とaddEvent..(..,func2);を書くのかな? どう書くのがよいのか教えてください。
ぐぐればいくらでも出てくる件
754 :
754 :2008/12/25(木) 14:58:55 ID:tjRRZNyf
イベントハンドラ介して、その中でもうひとつのTimerをスタートさせるでいけますね。 addEvent..でfunc1を直接追加しようとしてたのが間違いでした。。 (ぐぐるとこういう例が多く見つかるので。。) timer.addEvent..(TimerEvent.TIMER, hdl1); timer.start(); function hdl1(){func1(); timer2.addEvent..(Timer.., hdl2); timer2.start();} 追加で質問したいんですが、非同期処理(wait(), notify())を実装してる参考ページ ってありますか?どなたかご存知でしたらよろしくお願いします。
すいませんAS3.0に関して3つ質問です。 使っているのはAdobe Flash CS4です。 AS3.0では createTextField が消えてしまったのですが 連番のテキストフィールド (tx1,tx2,tx3・・・みたいな共通の名前+数字があるもの)を 作る時、配列を使って var arr:Array=new Array(); for (var i:Number = 0; i < 5; i++ ) { arr[i] = new TextField(); } で一応、作れたのですが(これをやり方Aとする)、配列アクセス演算子を使って for (var i:Number = 0; i < 5; i++ ) { this["tx"+i] = new TextField(); } でもできます(これをやり方Bとする)。そこで疑問に思ったんですが (質問1) やり方Aは配列にテキストフィールドを入れたことになるんでしょうか。 (質問2) やり方AとやりかたBのどちらがいいんでしょうか (処理の汎用性や速さ、文法的なことなどから見て) (質問3) 他にいい方法はあるでしょうか。 教えて下さいよろしくお願いします。
>>756 (質問1)
やり方Aは配列にテキストフィールドを入れたことになります
ですがロジックとしては、長さが0の配列を生成し、
存在しないはずの要素にアクセスしていることになるので
const N:int = 5;
var arr:Array=new Array(N);
for (var i:Number = 0; i < N; i++ ) {
arr[i] = new TextField();
}
または
var arr:Array=new Array();
for (var i:Number = 0; i < 5; i++ ) {
arr.push(new TextField());
}
のほうがいいかもしれません
(質問2)
やり方Bはthis.tx1, this.tx2,this.tx3......というオブジェクトを動的に生成しているのでコンパイル時に最適化されません
なのでArrayクラスを使うほうがいいかと思います
(質問3)
FlashPlayer10からVectorクラスというものが追加されました
VectorクラスとArrayクラスどちらが速くなるかは検証してみないとわからないので
いい方法かはわかりませんが、こういうものもあるということで。
758 :
初心 :2008/12/26(金) 10:29:03 ID:qlwGzjuU
初心者です。 AS3.0のif文で、「もしok_mcが10フレーム以上にある時」という 条件式を作るときは、どのように書けばいいのでしょうか? 例えば「もしxプロパティが10以上にある時」ならば if (ok_mc.x >=10) { だと思うのですが、 フレームになるとどう書けばいいか分かりません。 どなたかご存知の方いらっしゃいましたら、 どうかよろしくお願い致します。
>>758 現在のフレームが何フレーム目にあるかということなら
mc.currentFrame で調べることができます
if(ok_mc.currentFrame >= 10)
こういうことはリファレンスを見ないとわかりませんが、リファレンスを見るとすぐに調べることができるものです
わからなければすぐリファレンスで調べる癖をつけたほうがいいです
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/ たとえば今回の例でいうと
フレームという概念を持つものはMovieClipクラスのみなので
flash.display.MovieClipの場所を見ると
パブリックプロパティのところにcurrentFrameの説明があります
ついでに言うと マルチはよくないですよ
761 :
初心 :2008/12/26(金) 12:10:17 ID:HVu/Beiq
>759さん ありがとうございました!解決しました。 あと、リファレンスのアドバイスもありがとうございました。 flash.displayというのがなんのことかずっと分からないのですが この場合、ok_mcにあたる部分がflash.displayなのでしょうか? (つまり表示オブジェクトという意味??) あと、マルチとはなんでしょうか? いろいろすいません、もしお時間ありましたら 宜しくお願い致します。
> あと、マルチとはなんでしょうか? イロイロな所で、同時に質問する事。 質問立てて良い答えが得られなければ「他に行って訊いてみます」等のレスを付けて、 別の場所で訊く場合はマルチにならない。 なんだかメンドクサイが耐えろ
763 :
初心 :2008/12/26(金) 12:48:34 ID:qlwGzjuU
わかりました、1カ所にしぼります。ありがとうございます!
>>761 それはパッケージというもので、関連のあるクラスがそれぞれパッケージにまとめられています
フォルダのようなものと考えてもらえばわかりやすいかもしれません
flashというフォルダの中に表示関連でまとめられたdisplayフォルダがあり、その中にMovieClipクラスがある というような感じです
flash.displayの中には他にも、MovieClipからフレームの概念をのけたSpriteクラスやビットマップイメージを表示するBitmapクラスなど、いろいろ入っています
これもリファレンスで調べるとわかります
765 :
Now_loading...774KB :2008/12/26(金) 13:18:11 ID:Y201GquH
すみません、この3行ってfor文を使ってまとめることって出来ないでしょうか? 実際には3行でなく20行あるのでソースコードが増えてしまい大変です。 button1.onRelease = function(){ textField1.text = ""; }; button2.onRelease = function(){ textField2.text = ""; }; button3.onRelease = function(){ textField3.text = ""; }; 以下のように文字列型として名前を指定してイベントを定義することが可能であればご教示下さいませ。 ------------------------- var targetButton:String; var targetText:String; targetButton = "button" + i; targetText = "textField" + i; // i は for文で使われる i です --------------------------
766 :
754 :2008/12/26(金) 13:37:08 ID:50XIukjY
>>755 ありがとうございます。スレッドライブラリいいですね。
>>765 button textFieldを配列にしてみてはどうですか? 例
>>757 もし buttonやtextFiledがMXMLのコントロールならStringでもアクセスできる(と思う)のですが。。
768 :
Now_loading...774KB :2008/12/26(金) 14:46:18 ID:uNNEmmRs
すみません、お力を貸して下さい。as3です 丸いmcがあり、これは上に50pxだけ進みます。その時、軌跡を残します。 まずこいつに線を引かせて、次に、引いた先から120度回転しまた線を引かせます、それをもとのスタート地点に戻ってくるまで繰り返させます。すると三角形が描かれます。 3角形を書くというよりはこの仕組みを作りたいのです。直進する丸クラスとそれを回転させ線を引かせるるクラスを朝から作っていたのですが、 そいつにとって必ず頭方向に直進するというところが実装できません。y-=50は頭方向に50とは違うのでした 識者の方、どうかお力を貸していただきたいです
769 :
765 :2008/12/26(金) 15:10:01 ID:Y201GquH
>>766 なるほど、配列を使えばすっきりしますね、目からうろこです、ありがとうございました。
MXMLについてはまだ勉強してなくて分からないので後で勉強します。m(__)m
>>768 Math.sin等の三角関数を使えば出来そう。 これより手軽な方法が他にあるのかも知れませんが..。
>>768 var d:Number = 50; //進ませたい距離
var degree:Number = 120; //回転させたい角度
//現在の座標
var _x:Number = 0;
var _y:Number = 0;
//進ませた後の座標
var dx:Number = _x + d * Math.cos(degree * Math.PI/180);
var dy:Number = _y + d * Math.sin(degree * Math.PI/180);
実際に動かしたわけではないので文法的に間違ってるところもあるかもしれません
こういうことをするときに注意する点をいくつか
Math.cosやsinの引数はラジアンです。角度をラジアンに直してから入れましょう
flashの角度は数学と違って時計回りです
これはわかってると思いますが数学と違って、座標軸は左上が(0, 0)です。上に進むときは-yです
771 :
初心 :2008/12/26(金) 15:36:40 ID:qlwGzjuU
>764さん とても分かりやすいご説明、ありがとうございました。 あと、リファレンスを見ても分からなかったのですが ターゲットパスについて質問よろしいでしょうか。 親ムービークリップ・・・root 子ムービークリップ1・・・back_mc 子ムービークリップ2・・・title_mc (子1と子2は並列)の場合、 title_mcからback_mcの再生を指示するには 絶対パスの場合 root.back_mc.play(); でいいかと思うのですが、作動しません。 どこかおかしいのでしょうか?
>>771 root.back_mc.play();
trace(root);
trace(root.back_mc);
でまずパスやインスタンス名の指定が正しいかの調査
773 :
初心 :2008/12/26(金) 16:08:33 ID:qlwGzjuU
>>772 さん
ありがとうございます。
エラーに
1119: 未定義である可能性が高いプロパティ back_mc に
静的型 flash.display:DisplayObject の参照を使用してアクセスしています。
774 :
初心 :2008/12/26(金) 16:09:55 ID:qlwGzjuU
>>772 さん
ありがとうございます。
エラーに
1119: 未定義である可能性が高いプロパティ back_mc に
静的型 flash.display:DisplayObject の参照を使用してアクセスしています。
775 :
初心 :2008/12/26(金) 16:11:03 ID:qlwGzjuU
と出ます。 手元の本を読むと、 「これはrootプロパティの値がMovieClipクラスのインスタンスとして 認識されていない事に由来するエラーです。これを回避するには 明示的な型変換(キャスト)を行って、rootの値をMovieClipに変換します」 とありました。 明示的な型変換とは、どのようなスクリプトになりますでしょうか? 本の例では obj = root.mcFrame; → obj = MovieClip(root).mcFrame; とありますが、 どこまでが例で、私の場合どこをいじれば良いのかが分かりません。 どうかご教授よろしくお願い致します。
>>775 MovieClip(root).back_mc.play();
とすればできるはずです
777 :
初心 :2008/12/26(金) 16:57:41 ID:4nGJN66w
>>776 さん
できました!ありがとうございますっ!!!
778 :
初心 :2008/12/26(金) 18:07:18 ID:qlwGzjuU
テキストの行間をAS3.0で指定したいです。 本によれば 行間を指定するのは leading というプロパティとあるのですが、 たとえば coment_txt.leading = 10; と書いてもエラーになってしまいます。 例えば、同じtxt用のプロパティで 周りの枠を表示するかどうかのプロパティ border では coment_txt.border = true; でうまく表示されるのですが。。 leading は、何故 border のように反映されないのでしょうか?
>>778 borderはTextFieldのプロパティですが、leadingはTextFieldのプロパティではありません
リファレンスを見ればわかることです
早く見かたを覚えましょう
leadingを設定するには
TextFormatを作成
TextFormatのプロパティleadingに値を設定
TextFieldに適用する必要があります
リファレンスには丁寧にサンプルのソースコードも置いてあるのでそれを参考にしてみましょう
780 :
初心 :2008/12/26(金) 19:27:33 ID:HVu/Beiq
リファレンスと本を読むのですが、どうにもこうにも分からないです。。
よろしければご教授願えませんでしょうか。。
>>779 さんのおっしゃる通り以下の3工程必要として
1.TextFormatを作成
2.TextFormatのプロパティleadingに値を設定
3.TextFieldに適用
//TextFormatを作成
var fmt:TextFormat = new TextFormat();
//TextFormatのプロパティleadingに値を設定
fmt.leading = 10;
上記の処理で1、2工程は合っていますでしょうか?
3工程目がどう書けばいいか分かりません。
宜しくお願い致します。
>>780 リファレンスのTextFieldとTextFormatのページの一番下にやろうとしてることそのままのサンプルがありますよ
var txt:TextField = new TextField();
var fmt:TextFormat = new TextFormat();
fmt.leading = 10;
txt.defaultTextFormat = fmt;
これは検索すればすぐ分かることだよなー。 ちょっと安易に人に聞こうとしてやいないか考えてくれ。
完全に向いてないタイプだな
784 :
Now_loading...774KB :2008/12/27(土) 02:33:09 ID:Wu151gWQ
>>770 丁寧な解説どうもありがとうございます。しかし手計算で解るようにこの式を応用しても3角形は描けませんでした…。
回転行列を思い付いた野ですが回転の中心が求められないので0原点中心回転となりうまく表示できません。
引き続き皆さまのアイデアをお待ちしております
>>784 あれ?うまくいきませんでしたか?
ちょっと図をかいてみました
http://www1.axfc.net/uploader/Img/so/29941.png まず三角形の左下の頂点を原点として三角形をかいてみます
順番は左下の頂点から矢印の方向にかいていくことにします
@最初は0度のまま右方向に線をかきます
Aflashでは時計回りを正の方向とするので、ー120度回転して線をかきます
Bそして、そのあとまた-120度回転と思われるかもしれませんが、Aでー120度回転しているので合計でー240度回転させることになります
var d:Number = 50;
var dx:Number = 0;
var dy:Number = 0;
this.graphics.lineStyle(0,0);
for(var degree:Number = 0; degree > -360; degree -= 120){
dx = dx + d * Math.cos(degree * Math.PI/180);
dy = dy + d * Math.sin(degree * Math.PI/180);
this.graphics.lineTo(dx, dy);
}
こんな感じでしょうか
>>785 できました!!
私の理解不足でした、申し訳ないです。forの部分の回転が-120,-240・・・となるというところを勘違いしていてできなかったということが分かりました。
図までいただけて本当に感謝で言葉が出ません。どうもありがとうございました!!
787 :
765 :2008/12/27(土) 23:27:51 ID:DzLOPSN/
昨日質問した者です。 何故かうまく動かなかったのでその原因を調べ、報告入れておきます。 (やったこと) ボタンのonReleaseイベントハンドラの定義をfor文でまとめて以下のように書きました。 しかしtextFieldのテキストを変えることは出来ませんでした。 for ( var i=0; i < 10; i++ ) { arr_button[i].onRelease = function() { arr_text[i].text = ""; }; }; (原因) arr_text[i] の "i" がfor文実行後の数値( この場合は "11" ) が使われてしまうため、 text[11].text と同じ定義になっていました。 現在はこれをどう回避するかを考え中です。 報告終わり。
788 :
765 :2008/12/28(日) 00:13:40 ID:6tMUqe7T
各ボタンに一意の値を持たせ、その値を使ってarr_textの何番目の要素を使うべきかを割り出すという方法で解決しました。 一意の値 = 何番目の要素かの数値 となるようにすれば簡単でした。 以上です。
>>787 変数のスコープって難しいよね。
function makeHandler(index:Number):void { return function () { arr_text[index].text = ""; } }
for (var i = 0; i < 10; i++) { arr_button[i].onRelease = makeHandler(i); }
とワンクッション入れるとよい。
790 :
789 :2008/12/28(日) 01:47:03 ID:q++LKdYM
やべっ間違えた。makeHandlerの戻り値型はFunctionだ。 function makeHandler(index:Number):Function { return function () { arr_text[index].text = ""; } }
791 :
Now_loading...774KB :2008/12/28(日) 07:18:39 ID:3LCIaMK9
質問があります as3です mc1とmc2はMovieClipをnewしております var a:Array=[mc1,mc2] var c:Object={mc1:5,mc2:8} で trace(c[a[0]]) で5が返るような感じ(実際は動かない)の処理をしたいのですが、どのようにしたらよいのでしょう… 宜しくお願いします
>> 791 つ flash.utils.Dictionary
793 :
Now_loading...774KB :2008/12/28(日) 09:11:23 ID:3LCIaMK9
>>792 ありがとう御座います!このご恩は一生忘れません。嫁になりたい気分です、どうもありがとうございました!!
794 :
765 :2008/12/28(日) 13:04:10 ID:6tMUqe7T
>>789 うお、すごい、動きました。 こう書けばfor文実行中のiが使えるんですね。
FunctionのFが大文字のものは初めて見たw
勉強になりましたm(_ _)m
大量のnew Text()を表示する処理を書いているのですが、 どうも描画が重たくなります。(50個で950msぐらい) 軽くする知恵があればよろしくお願いしますm(_ _)m
>>795 ・隠れるところは、つどつど表示リストから削除する
・Textを描画したら、全体をビットマップ描画して、Textを消す
・フレームレート数を下げる
・画質のクォリティを低くする
とりあえず、こんなところかな
あと、ActionScriptのバージョンとFlash Playerのバージョンを いくつに設定してやってるのかと、フレームレート数とステージサイズとか いろいろ書いておくと、他の人が回答しやすい。
>>797 即答ありがとうございます
ASはFlex Builder 3なのでAS3だと思います
FlashPlayerは9xを考慮して8以降、描画領域はだいたい500x400位です。
あともうひとつ、
一度生成したTextを何度もaddChildして別々のアニメーションを掛けることはできるでしょうか?
799 :
798 :2008/12/28(日) 19:16:13 ID:iVtKlAXp
しらべてみたらAS3対応は8.5以降だし95は6までしか動かないって・・・ ASは勉強し始めたばかりなのでまだまだです
今から勉強するんならAS3やったほうがいいんじゃない?
携帯Flashなら、AS2が現役
今のところ、AS2ができない人材は役に立たない AS3の新規案件だけをこなすのなら話は別だが、現実はそんなに甘くない
そうなんだよねー。 やっぱ仕事で使うのはまだまだAS2だろうし、とにかくいろんなプラットフォームで動かしたいならAS2かなー プログラミングの勉強したいとか3Dやりたいとかなら速くてオブジェクト指向のAS3が全然いいんだけどねー 主観的だけど、趣味でやるならAS3のほうがいいなぁ
AS2もAS3も所詮スクリプト。 簡単だからどっちもやればいい。
Javaは?
ところでみなさんはswfファイルをデコンパイルするときはどんなソフト使ってますか? flaファイルに変換するソフトで愛用してるものがあったら教えて下さい。 自分はsothink社のソフトを使ってみたのですがASのコードが壊れてしまっていて別のを探してます。
あ、swfファイルからASだけを抽出するソフトを使ったらコードは壊れませんでしたが、flaに変換したいです。
809 :
Now_loading...774KB :2008/12/29(月) 14:32:09 ID:xKkTDK7/
a1=[17,23,28,53,63,79,85,98,97,96]; という配列の中身を昇順にしたくて a1.sort(16); と書いても a1=[17,23,28,53,63,79,85,96,97,98]; になってくれなくて変わりません。何が原因なのか分かる方いませんか?
ソート方法は検索すれば詳しいサイトが一発でみつかるよ
811 :
807 :2008/12/29(月) 16:15:06 ID:SXhnzmSI
flaに変換するデコンパイラは全部有料みたいだなぁ。 買ってからじゃないとちゃんと変換出来るかどうか 分からないとはまいったな・・。 ASだけ抽出するソフトで抜きだしたソースをちまちま貼り付けたほうが 確実っぽいのでこうします。。
812 :
Now_loading...774KB :2008/12/29(月) 20:19:47 ID:xKkTDK7/
>>809 一応自分なりに探してるんですけどね・・
a1.sort(Array.NUMERIC);でもダメでした
初心は結局ドロンか。 弱いな、心が。
ウチの環境(FlexSDK, AS3)だと比較関数なしの a1.sort(Array.NUMERIC) だけでOKだたよ。 AS2だとこれじゃダメなんかね。a1.sort(null, Array.NUMERIC) にしたらいけるのかな。 それか真面目に比較関数を書くしかないのかねぇ。 var compare = function (a, b) { return Number(a) == Number(b) ? 0 : Number(a) < Number(b) ? -1 : 1; } a1.sort(compare);
デコンパイラいくつか試してみたけどどれもイマイチ。 1つのシンボルを使いまわして作ったswfをデコンパイルすると インスタンス1つごとにシンボルが作られててすごく無駄なことになってる。 増大したシンボルの整理なんかしたくねー。
>>816 今度、ボランティアで老人ホームのHPにあるフラッシュを手直しすることになったんですが
デコンパイラを使うと便利そうなので、おすすめものをご教示下さると非常に助かるのですが、
良かったらお願いします。^^;
>>817 有料だから使ったこと無いけどCS3に対応してるのならどれでも同じようなものなんじゃないかな?
http://www1.axfc.net/uploader/File/so/16067 ↑.flaファイル
フラッシュで、マザー2に出てくるような部屋の中をキャラクターが動き回る、といった部分の作成をしています(Flash8)。
ここで左右の壁にぶつかってそのままキーを押し続けた時、滑る様な動きで上or下に移動するようにしたいんですが、
どのようにプログラミングしたらいいんでしょうか?
せめて、左右の壁にぶつかった状態で斜めにキーを入れた時、壁にめり込んでしまう、といった仕様だけはなんとか直したいので
そこだけでも解決方法を教えてもらえれば、と思っています。(めり込んでいても、キーを離すと押し出されるように戻ります)
あまり時間はないので、ファイルはすぐ削除すると思います。
こういうバグを直すのがプログラミングで一番楽しいとこであり、成長するきっかけだったりする。 何故期待通りに動かないのかを考えてみよう。
821 :
Now_loading...774KB :2009/01/02(金) 05:03:26 ID:uwl2zsnm
すごい、初歩的なことだと思うんですが、息詰ったので教えて頂きたい。
(1)使用ソフト/バージョン:Flash CS3
(2)OSのVer:OSX
(3)作品の具体例
ttp://www.ffiles.com/flash/photo_galleries/xml_gallery_4_1117.html ここのサンプルをカスタムしています。
サンプルでは、xmlでjpgを読み込んでいますが
swfを読み込もうとしています。
xmlでswfを読み込んだあと、外部のswfに設定したボタンアクションなどが
xmlから読み込んだら全く効かなくなってしまって困っています。
表示だけされているのですが、クリックしても動かないので
お手数ですが、解決方法をご教授願います。
ボタンアクション「など」とは?その他、何が動作しない? ボタンの手前にムービークリップがあるとボタンは動作しないけれど、それではない?
丸投げ質問大杉。
>>822 ご返答ありがとうございます。「など」と抽象的な表現申し訳ありません。
おっしゃる通り、ムービークリップが手前にあるため動かないみたいでした。
初歩的なミスですいませんでした。
>>823 失礼致しました。
AS2.0、Flash8、WinXP、で質問。 MC._alpha = 0; と MC._visible = false; の描画にかかる負荷ってどちらが重いんでしょうか? 直感的には _alpha = 0; だと透過処理が必要になって重くなるんじゃないかというイメージが あるんですが実際はどうなんでしょう。 それともう1つ、配列についてなんですが、 arr1 = []; arr2:Array; arr3:Array = new Array(); にはどういう違いがあるのでしょうか? 皆さんがどう使い分けをしているのかを 参考にさせて頂けたら幸いです。
_visible = false;の方がランニングコストは低く収まるはず。 インタラクティブなイベントを受け取る必要のある場合は意図的に_alpha = 0;にしたりする。 arr1 = []; // コンストラクタ無しの配列初期化 arr2:Array; // 型宣言だけ? arr3:Array = new Array(); // コンストラクタ有りの配列初期化(初期エレメント数を指定可能) new Array()はprototypeで改造した配列も使用する場合に有効なのかな?よくわからに
827 :
825 :2009/01/12(月) 13:12:12 ID:LWAk6J+W
>>826 レスありがとうございます。
なるほど、_visibile = false; のほうが負荷抑制には有利なようですね、
_alpha = 0; はイベントの受取が必要なときにだけ使ってみます。
配列は初期化処理が違ってくるんですか、以前、var宣言内で
arr1:Array;
を
arr1 = [];
に書き換えただけで動くようになったことがあって不思議に思っていました。
前者は初期化がされていなかったせいで動かなかったのかな。
これから配列の初期化処理について詳しく調べてみます、ありがとうございましたm(_ _)m
>>808 そのASだけ抽出するソフトってどんなのがありますか?
他の皆さんも知ってたらどうか教えてください。
>>827 変数宣言の型指定と初期値指定の話がごちゃ混ぜになってるね。
(1) var arr1;とvar arr1:Array;の違いは型指定の有無。
後者がArrayしか与えられないのに対し前者は型なしなので数値や文字列と何でも与えられる。
いずれも初期値指定がされていないので、その値はundefined(未指定値)になっている。
(2) var arr1;とvar arr1 = [];の違いは初期値指定の有無。
前者の値はundefined、後者は空のArray。
いずれも型指定なしなので、後でarr1=123;とかやってもコンパイルエラーにはならない。
(3) var arr1:Array;とvar arr1:Array = [];の違いも初期値指定の有無。
前者の値はundefined、後者は空のArray。
いずれも型指定ありなので、後でarr1=123;とかやるとコンパイルエラー。Arrayしか与えられない。
arr1:Array;をarr1 = [];に変えたら動くようになったのは、前者はあくまで値はundefinedで何も
与えられていない状態だったから。
830 :
825 :2009/01/14(水) 19:04:25 ID:oQ7y724r
>>829 気付くのが遅れてすみません、詳しい説明ありがとうございました。
undefinedの状態でarr1を使ってたのがいけなかったんですか、これからは必ず初期化処理を
入れたコーディングをするようにします。m(_ _)m
831 :
Now_loading...774KB :2009/01/15(木) 02:32:36 ID:sdqLaR/q
変数を宣言するときに変数名にIDとなる番号を付与したいです 以下だとエラーが出ますけどやりたいのは for(i = 0; i < 50; i++){ var "hoge" + i:String = "hoge"; } というようにhoge0〜hoge49を宣言してhogeを代入したいのです どうやって書けばいいんでしょうか
>>831 配列型の変数を使ったほうがいいですよ。
switch(a) { case 1: a = 0; break; case 2: a = 0; break; } if(a == 1) { a = 0; } else if(a == 2) { a = 0; } 上みたいな場合、switchとifはどっちが軽いでしょうか?知ってる方教えてください
>>833 switchの場合aの値に一致するcaseに飛ぶのでどんな値でも計算量は1になる
ifの場合aの値が1ならswtichと変わらないが2の場合、
2回aを比較することになるのでそのぶんswitchより遅くなる
>>833 速度を気にするなら実際にタイム計測したほうがよろしいかと。 その場合、aが何かによっても結果が変わりますし。
タイム計測のやり方はぐぐればいっぱい出てきます。
>>834 バイトコードやVMのレベルではswitchも上から順に比較してるかもよ?
賢くジャンプテーブル生成していればswitchの方が早くなるだろうけど。
caseに文字列も使えることを考えるとジャンプテーブルは無理じゃないかな。
intの場合だけ特別扱いかもしれんが。VMの実装をみないと何ともいえないんじゃない?
やっぱ実測して確かめるのが確実かね。そこまでする程、性能にセンシティブなところならば、だけど。
837 :
Now_loading...774KB :2009/01/15(木) 17:32:30 ID:AyKmFMNR
xmlから読み込んだ問題をテキストエリアに 1文字ずつ表示させるには どうしたらいいですか?
別の文字列に始めの1文字を入れ、テキストエリアに表示、 別の文字列に1文字追加、テキストエリアに表示を繰り返すとか。
839 :
Now_loading...774KB :2009/01/15(木) 21:36:53 ID:V2J8krg6
>>838 記述としてはどんな感じに
なりますか??
840 :
Now_loading...774KB :2009/01/16(金) 09:42:35 ID:5jyWbj19
質問です。AS2.0でいう _root.gotoAndPlay("frame");は、AS3.0ではどんな感じで記述すればいいですか? やりたいことは子MCからメインタイムラインを制御することです。
>>839 i=0;
onEnterFrame = function(){
if(i<xmltxt.length){
txtarea.text += xmltxt.charAt(i++);
}
}
>>840 MovieClip(root).gotoAndPlay("frame");
>842 ありがとうございました!
844 :
Now_loading...774KB :2009/01/16(金) 18:04:34 ID:4I2X4mMD
Lite1.1で開発。 2〜11までの数値をかぶらないようにランダムで出したいのに なんでか重複しちゃうんだけどこれおかしい? それまでの数値と重複したら再度ランダムかけてるつもりなんだけど。 スクリプトはMC[script]の中のMCに書いてて 1が空白になった全11コマMCの各フレームに割り当ててる。 if (try == 1) { r=random(10)+2; r1=r; tellTarget("../num_1") { gotoAndStop(/script/:r);} } if (try == 2) { for (r=random(10)+2; r1==r; r2=r){ r=random(10)+2; } tellTarget("../num_2") { gotoAndStop(/script/:r); } } if (try == 3) { for (r=random(10)+2; r1==r || r2==r; r3=r){r=random(10)+2; } tellTarget("../num_3") { gotoAndStop(/script/:r); } }
var arr = [2,3,4,5,6,7,8,9,10,11]; //配列を用意する //arrの要素を適当にシャッフルする(コード省略) for(i = 0; i < arr.length; i++){ tellTarget("../num_" + (i+1)) { gotoAndStop(/script/:(arr[i])); } } AS1/2の構文はよく知らないので書き方が間違ってる所あるだろうけど、こういうのじゃダメ?
846 :
Now_loading...774KB :2009/01/17(土) 19:51:40 ID:wfapOyy9
as3なんだけど、ステージにmc置いたの。でフレームアクションでmcのクラスをnewしたの。ステージに直接置いた方はマウスイベント受けとりたい。 newした方はマウスオーバーだけでも受けとりたい。両方の願いを同時に叶える方法を知ってたら教えて欲しいんだ。enabledとかmousechildも試したが、一方のmcがマウスイベント取っちゃってだめだったよ
使用メモリを確認できるASありませんか?SWF6です
ありません
849 :
Now_loading...774KB :2009/01/19(月) 11:35:30 ID:Bw8XiDu3
>>846 ふたつを別なクラスにすればいいんじゃないか?
>>849 ふたつのmcは別なんだ、誤解を招く書き方だった。そういうことじゃない?
ちゃんと説明するとメインタイムラインでmc1のインスタンスをadd、ステージに直接mc2を置いたんだが、mc1がmc2のマウスイベントを盗っちゃってるんだ。
mc1でもまうすオーバーなど使ってるし、mc2でもマウスオーバーなど使ってるのにmc2だけ効かない。理想はmc1でマウスイベントを受け取って、mc2でも受けとりたいんだ。
mc1のマウスオーバーイベントからmc2のマウスオーバーをdispatchできない?
Google Maps API for FlashがAIR対応ってことで試したんだけど Flash CS3に書き出すとurlが未定義とか出てできないけど もしかしてFlexのみ対応ってことですか? -------------------------------------------- var map:Map = new Map() map.url ='***********'; --------------------------------------------
Flash8 professional 、ActionScript2.0使用です。
movieClip、getRect関数の動作を確認するために以下のようなコードを書きました。
ルートにムービークリップmc1を配置し、(mcの名前もインスタンス名も同じmc1)
そのmc1に、次のようなアクションを入れたのですが。
onClipEvent( enterFrame ){
var objRect : Object
trace(this._x);
trace(this._y);
objRect = this.getRect(_root);
trace ( objRect[0] );
trace ( objRect[1] );
trace ("***")
}
getRectでmc1の領域を取得したかったのですが、traceで表示されるのはundefinedだけです。
traceで_x,_y._width._heightなどは表示されるのですが、
getRect,getBounds,LocaltoGrobal,grobalToLocalなどではundefinedしか返ってきません。
なにが間違っているのか指摘していただければ幸いです。
flaファイルは以下にうpしました
ttp://xepid.com/src/up-xepid4604.zip
854 :
853 :2009/01/20(火) 01:57:06 ID:FMeDAENf
スミマセン、自己解決できそうなのでひとまず質問は撤回します
ぐぐればいくらでもサンプルが見つかりそうな質問。
856 :
Now_loading...774KB :2009/01/20(火) 11:53:21 ID:AxTZTVMx
ActionScript3.0で、 ROLL_OUTしたら、 2秒後に(または数フレーム進んでから) 指定のフレームにgotoAndPlay()させたい時は そんな指示をすればいいでしょうか? どなたかご存知の方いらっしゃいましたら どうか宜しくお願い致します。
857 :
Now_loading...774KB :2009/01/21(水) 09:01:57 ID:A6Q7hOvk
>856 う〜ん、それは難しいな。。 俺にはわからねえや。
いろいろと調べましたが解決策が見つからなかったので質問させてください。 SWF7でダンジョン風ゲームを制作しているのですが、通った場所を自動で記していくオートマッピングのシステムで躓いています。 今は4*4の画像(1マス)をマップ(20*20=400)分だけ複製配置して、通ったところだけをvisibleプロパティでfalseからtrueにして実現しているのですが、とても重くなってしまっているのが現状です。 他に何か効率の良いオートマッピングの方法がないでしょうか。良ければ知恵を貸してください。お願いします。
400個の画像を配置するだけなら
重たくなるなんてことはない
どこか処理に問題があるのだろうけれど
>>858 の情報からではわからない
860 :
Now_loading...774KB :2009/01/21(水) 11:48:56 ID:2bEGrjvv
ローカルで動くプレゼン用のスライドショーのような物を作れと 命じられたのですが、その中の要件である部分をクリックしたら エクセル起動してxlsを表示したいというのがあって、 これってセキュリティー上ムリですよね? swfからローカルのアプリケーション起動してファイルを開いたり出来るもんですか?
861 :
Now_loading...774KB :2009/01/21(水) 12:04:49 ID:VgWtqgEk
TextFieldについての質問です。AS3です。 キャレットの位置に文字を挿入する関数を、 textを現在の位置でsliceして挿入文字を埋め込む、という方法で実装しました。 しかしこうすると、もともとtextにあった部分的なTextFormatはすべて 失われてしまいます。 どうすればTextFormatが失われずにこの挿入処理を実行できるでしょうか。
>>858 MC属性を変更して表示を変えるのでなくて、MCを削除して見た目を変えるという方法を取れば?
1. 例えば、トレースした時に表示する色で背景を塗っておいて、その上にMCをひく。
2. キャラクタが通った所を順次MC削除していく。
3. MCを削除したところに背景色が現れる。
863 :
Now_loading...774KB :2009/01/21(水) 12:57:43 ID:2bEGrjvv
>856 mc.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler); function rollOverHandler(e:MouseEvent){ var hoge = setTimeout( hoge2, 2000); } function hoge2(){ gotoAndPlay(フレーム) } とか?
864 :
Now_loading...774KB :2009/01/21(水) 13:03:23 ID:2bEGrjvv
>863 まちがった。ROLL_OUTだった。
>>859 解りづらくてすみません。いろいろと試してはいるのですが……。返信ありがとうございました。
>>862 そんな方法もあったのですね。ありがとうございます。今から試してみます。
すみません、マック環境、バージョン8で作成したフラッシュをパブリッシュすると WindowsでShock Waveなんたらというエラーがでます。 Windowsで見れるようにする方法をご存知な方教えて頂けますでしょうか?
「なんたらというエラーが出ます」という情報だけで正しい回答を示せるのはエスパーだけ
すみません、問題解決しました…
キーボードのイベントなら引数の型はEventじゃなくてKeyboardEventだと思います
871 :
869 :2009/01/22(木) 17:28:59 ID:iuupbQmb
ありがとうございました。 エラーがなくなりました。
たびたびすいません 円を表示するルーチンなのですが以下の asファイルで initBall()をしても表示されません。traceして iniPoint にはPointが入っていることは確認できました。画面描画には何が足りないのでしょうか package { import flash.geom.Point; import flash.display.*; public class Ball extends Sprite { var myVector:Point = new Point(0,0); var myPoint:Point = new Point(0,0); var mySpeed:int; public function initBall(iniPoint:Point, iniSpeed:int, iniVector:Point): void { myPoint = iniPoint; mySpeed = iniSpeed; myVector = iniVector; var myShape:Shape = new Shape(); myShape.graphics.beginFill(0xFF0000); myShape.graphics.drawCircle(iniPoint.x, iniPoint.y, 50); myShape.graphics.endFill(); this.addChild(myShape); trace(iniPoint); } } }
Ballクラスのインスタンスが addChild されてないのでは
874 :
872 :2009/01/23(金) 13:37:14 ID:dIcpwGnA
呼び出し元で var myBall:Ball = new Ball(); myBall.initBall(myPoint,0,myDirection); addChild(myBall); としたら表示できました。 ありがとうございます。 package内で initBallしたときに自分で表示させる方法はありますか?
引数で親のDisplayObjectContainerをとって 親.addChild(this); なんてやったらうまくいくんじゃないでしょうか
FlashCS3、as3で質問です ライブラリにクラス名aでリンケージしたMCがあり、そのMCには、クラス名inaでリンケージしたMCが入れ子になっています。inaのタイムラインでは、変数が定義されてます また、flaファイルの置いてある場所にaというクラス、inaというクラスのasファイルを作りました。こちらはMovieClipを継承してます。 ここで、aのクラス内から、inaのタイムラインに定義した変数を参照したいのですが、inaへのgetChildなどでの参照.変数としても、未定義のプロパティとなってしまいます。 inaのクラスに変数を定義してみたり、dynamicやstaticにしてもアクセスできません。 どうしたらaのクラスファイル内からinaのタイムラインの変数を参照できるのでしょうか
CS3,AS2のsetIntervalのことで質問なのですが メインタイムラインの1フレーム目に下のように書いて実行するとthisの内容が 分かれてしまいます。これはわけあっての事ですか?それともバグですか? setInterval(a,1000); function a() { aa(); trace(this); //undefined } function aa() { trace(this); //_level0 }
>>877 オレも知らなかったんでにわか知識だがw
setIntervalには2つ書式があって
setInterval(関数,間隔)
setInterval(インスタンス,メソッド名(文字列),間隔)
上の書式だとthisが参照できないのは仕様らしい。
で、下の書式で
setInterval(this,"a",1000);
と書けばいいらしい。
スコープの概念について調べると理解できるかも
AS3での質問です。
ttp://dhiktir.web.fc2.com/test.htm こちらのページにあるZipファイルの中に「CS4.fla」と「CS3.fla」の二つのファイルがあります。
この二つは基本的に全く同じファイルです。
違いは「CS4.fla」の方は、Adobe Flash CS4を使って作成し、保存したもで、
「CS3.fla」の方は「CS4.fla」をCS3形式で保存したものです。
中身はまったく同じにも関わらず、「CS3.fla」の方ではエラーが出ます。エラー内容は
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at test2_fla::MainTimeline/frame1()
です。
なぜこのような違いでエラーになるのでしょうか?
881 :
877 :2009/01/24(土) 19:13:39 ID:UPSpx4rL
882 :
861 :2009/01/25(日) 00:13:18 ID:8V9RcpEk
FormatのついたtextをFormatがついたまま メモリ上で運用する(すなわち変数として保持する)方法ってありますか。 sliceとか使うとそういうデータがない状態になるみたいで。
>>880 です。たぶん自己解決。OSがSP2なのが原因みたい。
他にもあり得ないエラーがいっぱいでる。
884 :
876 :2009/01/25(日) 05:59:13 ID:5HTwfiWC
あれからまだ弄ってますが未だに解決できません…。ご協力願いたいです…
質問です ダイナミックテキストフィールドにActionScriptで XX.text="OO";とやるような感じで 上付き文字や下付き文字を使用するにはどうすればよろしいのでしょうか?
>>885 htmlTextで装飾できるんじゃない?
supタグとかsubタグサポートしてれば出来ると思います
Flah8 ac2での質問です。 swf内に配置したボタンからjavaでウインドウサイズを指定したページを開かせたいのですが、 どのようにすればいいのでしょうか?
flash javascript 小窓 で検索
Flah ac2 java 氏ねや
ワロタw それでも意図を組んだからこのスレも捨てたものではないな
cs3覚えようかと思ってぐぐったらもうcs4が出てた..。
4はクセモノだから早めに慣れとかないと後々困る しかし3は当然使えないとハナシニナラン。趣味ならきにすることはない
d、3覚えてくるよ。
895 :
sage :2009/01/26(月) 17:12:58 ID:+eIwEVlq
質問です クラス { ファンクション1 { var オブジェクト型 = this; } ファンクション2 { } } 上記のような場合「ファンクション1」を呼び出した後、オブジェクト型「this」で入るのはファンション1になるのでしょうか? そしてこのオブジェクト型を呼び出す場合、 例えば オブジェクト型[引数] として使用した場合、再帰処理としてファンクション1を使うことになるのでしょうか? どうかお願いします
ファンクション1がどこから呼び出されたかによって this は変化する ASのバージョンによっても動作が異なる ASのバージョンと実コードを記述して、 こういう場合の this は何を指しますか、と聞いたほうが早いかも
>896 >895です 手元にあるのはこの処理が書かれているasファイルのみである為、 このasファイルを呼び出す場合はFlaファイルを作って引数を渡していました その為、どこからという問いには呼び出し元から…となります また実コード記述は少々問題がある為、どうしても簡略的な書き方となってしまい申し訳ありません 下記、内容となります 使用ASバージョン:2.0(actionscript2.0使用) コード 呼び出し元(Flaファイル) var テスト:クラス名 = new クラス名(); テスト.ファンクション名(引数); 呼び出し先クラス(asファイル) クラス名 { ファンクション名(引数) { var オブジェクト型:Object = this; } }
>>897 その場合の this は呼び出したクラスのインスタンスを示す
>var テスト:クラス名 = new クラス名();
の「テスト」というインスタンスと同義
>>898 897です
何度もお答えして頂いてありがとうございます
返答に質問を返すようで申しわけないのですが、
『その場合の this は呼び出したクラスのインスタンスを示す』というお答えして頂いた内容に関して
今回のthisは『var テスト:クラス名 = new クラス名(); 』の『テスト』を指しているということでしたが、
例えば下記のような場合
呼び出し元(Flaファイル)
var テスト:クラス名 = new クラス名();
テスト[0]="1st"
テスト[1]="2nd"
テスト[2]="3rd"
テスト.ファンクション名(引数);
上記のようにインスタンス作成後、配列?のような形で値を入れて呼び出し先であるファイルで呼ぶ
呼び出し先クラス(asファイル)
クラス名 {
ファンクション名(引数) {
var オブジェクト型:Object = this;
trace(オブジェクト型[0]);
}
}
このような場合、thisによってクラスを指定しているということはtraceで『1st』が表示される…ということなのでしょうか?
なにぶん学びはじめて日が浅いこともあり、突拍子も無いことを言っている可能性もありますが、よろしくお願いします
> テスト[0]="1st" > テスト[1]="2nd" > テスト[2]="3rd" ここらへんがめちゃくちゃなので まず実際にコードを記述して fla ファイルをパブリッシュすることをお勧めする
>ここらへんがめちゃくちゃなので >まず実際にコードを記述して fla ファイルをパブリッシュすることをお勧めする はい…手元にadobeが無い為後日行ってみます 加え、また一つご質問よろしいでしょうか? 今回、不明点として記述させて頂きました下記内容……こちらの意味とは何なのでしょうか? var オブジェクト型:Object = this; 『this』は呼び出し元の『var テスト:クラス名 = new クラス名();』の『テスト』であるということを先ほど教えていただきました。 ですが、thisが何であるかを教えて頂いたのですが何を行っているのか理解できず… このような記述がどのような場合に使われているのか……まことに申し訳ありませんが、教えて頂けないでしょうか? よろしくお願いします
■前提 ArrayとDisplayObjectContainerが1個ずつ存在する。 Arrayの要素は全て上記DisplayObjectContainerに属するDisplayObjectが多数。 なお、DisplayObjectContainerには上記以外のDisplayObjectも含まれている。 ■やりたいこと Arrayに格納されているDisplayObjectのDisplayObjectContainerにおけるインデックス位置を、 DisplayObject.yの小さい順にソートしたい。その際Arrayの順序は書き換えない。 (例) ソート前:qaw34se8d6r2ft1gy5hu7jik9olp ソート後:qaw12se3d4r5ft6gy7hu8jik9olp 数字:Arrayに属するDisplayObject、英文字:それ以外のDisplayObject、 並び順:DisplayObjectContainerのインデックス順、数字の大きさ=y座標の大きさと仮定。 ■備考 環境はAS3、FlexSDK3.3.0、FlashPlayer10.0.12。 1秒辺り何度も処理するので出来る限り負荷の少ない実装にしたい。 どうしても自力で答えに辿り着けなかったので、どうかご教授お願いします。
>>901 > var オブジェクト型:Object = this;
何かのサンプルコード見て質問してるのかな?
その一行を見てそれが何の目的を持ってそのようにしているかなんて
作った人にしかわからない。
>>902 その例では
「インデックス順にY座標の値を書き換える処理」
になってない?
>>904 確かにそう見えるかも。すまんかった。
実際にやりたいことは、y座標もArrayも書き変えず、y座標を見て
Arrayとコンテナ両方に登録されているDisplayObjectだけを
コンテナのインデックス順に並び変えたいんです。
>>905 (1) ソート対象のDisplayObjectのみを抽出し、別途に作成した配列Aに次々とpush
(2) 配列Aを DisplayObject.y の値で 昇順ソート
(3) 配列Aの先頭から順番に インデックス位置を設定
でどう?
ソートはDictionaryクラスを用いると簡単
907 :
Now_loading...774KB :2009/01/27(火) 15:04:06 ID:XaAeGZYU
TextFormatをTextFieldの終端に設定したいんですができますか。
908 :
908 :2009/01/28(水) 02:51:00 ID:5gmMOGgm
できました。 defaultTextFormat=tf;//tfは指定したいTextFormatオブジェクト です。知らなかった人は覚えてね。
"TextFieldの終端" がどういう意味なのかを説明してくれないと誰にも分からないという罠。
Flash見習いですが、質問です。 配列にライブラリから読み込んだインスタンス名を格納し、 その配列を使用して、「配列名.goToAndPlay()」の形で ムービークリップの2フレームから再生、という動きは可能でしょうか? 例: ※ライブラリには「mc○」(○は0〜6まで)でインスタンスが登録されているものとする var mc:Array = new Array(); ←ライブラリからインスタンスを読み込んだ際、インスタンス名を格納する配列 function rollov(){ _root.mc[i].gotoAndPlay(2); } for (i=0; i != 7; i++) { _root.attachMovie("mc"+i, "mc"+i, i); mc[i] = eval("mc"+i); } } _root.mc[i].onRollOver = _root.rollov; 記述には至らぬ点が色々とあるかと思いますので 出来れば色々と突っ込んでくれると嬉しいです。
はい次の質問どうぞー
attachMovieでライブラリからシンボルを読み込む際、 指定した識別子のシンボルが無い場合は何の情報が返ってくるんでしょうか?
何の情報も帰ってこないって情報が帰ってくる
>>914 ありがとうございます
nullやundefineとはまた違うんでしょうか?
もし他のスレで聞いた方が良いのならそうします
916 :
Now_loading...774KB :2009/01/30(金) 15:54:59 ID:oOxYjaob
FULL FLASHのサイトを作りました。 AS3.0でリキッドレイアウト (ウインドウサイズにぴったりで、 ウインドウの大きさ変えたら それに応じてコンテンツが中央に来るレイアウト) を指示したいのですが、どのようなコードを書けば良いでしょうか? 自分で調べたところ、 下記のコードを発見しました。 もしこのコードで合っているなら、 これをどのフレームに記述すればよいでしょうか? import flash.display.StageAlign; import flash.display.StageQuality; import flash.display.StageScaleMode; import flash.events.Event; stage.addEventListener(Event.RESIZE, resizeHandler); ご存知の方おりましたら どうかよろしくお願いいたします。
918 :
Now_loading...774KB :2009/01/31(土) 15:13:08 ID:Vcu4AIju
progressionでロールオーバーボタン置いたmcにup、over、down、currentラベルつけてるんですがover時に音鳴らそうとIDEでoverに設定したんですが再生が遅れます。音はライブラリに読み込んでいて重はくないと思います。 なんとかoverで音再生できませんか…? 宜しくお願いします
>>916 private var left:number=0
private var top:number=0
private var right:number=stage.stagewidth
private var bottom:numbar=stage.stageHeight;
ball.x=stage.stagewidth/2
ball.y=stage.stageHeight/2
920 :
Now_loading...774KB :2009/02/02(月) 07:42:33 ID:rFcEOWbV
>>919 さん
ありがとうございます!
このスクリプトは、そのまま書けばいいのでしょうか?
私のインスタンス名に置き換える必要のある部分
などはありますでしょうか?
また、書き込む場所は
メインタイムラインの1フレーム目でよろしいでしょうか?
どうかよろしくおねがいいたします。
自分で試そうともしないのか
922 :
Now_loading...774KB :2009/02/02(月) 12:15:15 ID:NO9jMB6W
>>921 試しましたが、下記のコンパイルエラーが出てしまいます。
private属性は、クラスプロパティの定義でのみ使用 private var left:number=0
private属性は、クラスプロパティの定義でのみ使用 private var top:number=0
private属性は、クラスプロパティの定義でのみ使用 private var right:number=stage.stagewidth
private属性は、クラスプロパティの定義でのみ使用 private var bottom:numbar=stage.stageHeight;
どうすれば良いか、わかりません。。
どなたかご存知のかたいましたら、どうかよろしくおねがいします。
924 :
Now_loading...774KB :2009/02/02(月) 12:35:53 ID:NO9jMB6W
>>923 クラスの作り方が分かりません。
調べているんですが。。
class PrivateExample {
private var left:number=0
private var top:number=0
private var right:number=stage.stagewidth
private var bottom:numbar=stage.stageHeight;
ball.x=stage.stagewidth/2
ball.y=stage.stageHeight/2
}
こういうことでしょうか。。?
これもコンパイルエラー
「クラスをネストすることはできません」
になってしまいます。。
検索エンジンを駆使してがんばれ、調べるのは君だ AS3 クラス 講座 といった単語で地道に調査 Flash のヘルプでもいい
本気でAS3でやるつもりなら 本当に基本中の基本の話なんだから一通り勉強した方がよい (そのつもりが無いんならAS1/2にしといた方がいいと思う) 一応、AS3はどっかのサンプルを適当にコピペして使ったり そういうことしかしてない人が扱ったりするような言語じゃないから 最低限サンプルを元に自分で書き直せるくらいの技術がなければ話にならない
927 :
Now_loading...774KB :2009/02/02(月) 17:10:43 ID:NO9jMB6W
>>925 、926
コメントありがとうございます。
本気でAS3きわめるつもりです。
本も5冊買って
サンプルは使わずに一からやっているのですが
つまずく事が多いです。
でも、優秀なプログラマは、自分で調べるという事が基本なのですね。
教えて下さってありがとうございます!がんばります!
928 :
AS :2009/02/02(月) 20:46:24 ID:qP+iYuyg
load.movieでJpgを読みこみたいんですが、 解像度を指定できますか? それとも読み込んだ後?にASで加工するのが普通?
929 :
919だよ :2009/02/03(火) 00:51:09 ID:AUVhcSxP
NO9jMB6Wさんへ ぜひActionScript3.0アニメーションをかってみてください。 すぐにその問題は解決しますよ。 あと本5冊ってなにを買いました。 もし初心者なら、 AS3.0プロフェショナル→初めてのAS3.0→ActionScript3.0アニメーション をお勧めします。 自分はこれで覚えました
931 :
Now_loading...774KB :2009/02/04(水) 00:26:48 ID:mUP2yIC8
box2dについて質問です。環境は、Flex3SDKです。 ついさっきDLしてきて、サンプルのMain.asのコンパイルは通って再生できたんですが 箱が動いてくれません。初期状態のまま止っています。 Test.asのUpdate()で描画の更新をしてると思うのですが、DrawJoint, DrawShapeあたりが コメントアウトされています。それらの関数自体もコメントアウトされていたので、それらを外して コンパイルしたら案の定エラーが出ます。大抵のエラーは変数名が違ったりしてたので直せたのですが、 どうしても、どうやって直していいか分らない部分があり、結局コンパイル出来ませんでした。 なにか多きく道を外れているような気がします。ぐぐっても同じ症状が見当たりませんし… このサンプルは華麗にスルーすべきなのでしょうか
932 :
Now_loading...774KB :2009/02/05(木) 02:23:12 ID:MLsPzFb8
AS2でこんな関数があります。引数が配列と指定されてます。 function test( hen:Array ){ trace(hen[0]); trace(hen[1]); } test( { 50 , 55 } ); 実行して変数を渡したが識別子が必要だと怒られました。 引数が配列型の場合は、どう書けばいいでつか?
test([50,55]);
fl.controls.ComboBoxオブジェクトが1こあるswfを Flex3で読み込んで、Flexのswfに組み込んで表示させたは良いんだが、 肝心の値を読み出す方法がわからない…どうすればいいんだろう。
お疲れ様です。どうか質問させてください。 沢山小さな写真を並べ、その画像をロールオーバーで コメントのムービークリップをカーソル横に表示させ 見れるようにしようと思っています。 しかし、ステージ端のものはコメントが切れてしまうため、 マウスのカーソルの座標の場所によって ロールオーバーで表示させる場所をを変えたいのです。 600*800ステージのを縦横真ん中で四分割するとして、 左上、左下、右上、右下という エリアごとにロールオーバーの場所を出し分けるものを書こうと思ったのですが mouseX mouseYで座標を取る、if分で出しわけるということくらいしか分からず つまずき上手くかけずエラーばかり出てしまいます。 因みにAS3で書かなければなりません。どうか知恵をお貸し下さい!
>>936 どういったスクリプトを記述して
どこでエラーが出ているのか書かないと誰も答えられない
>>936 色々やりかたはあると思うけど、そのやり方でもいいと思う。
コメントは全部配置して非表示にしておいて、
ロールオーバーで該当コメントだけを表示(直前に全て一旦非表示)
とかでいいんじゃない?
エラーの原因はエラーメッセージ見たりtrace仕込んだりしながら直していくしかない。
939 :
Now_loading...774KB :2009/02/05(木) 16:20:48 ID:aQXr5iJ9
attachMovieについての質問です。 this.attachMovie("circle", "circle2_mc", this.getNextHighestDepth(), {_x:100, _y:100}); というふうに、{}内に初期のプロパティの値を設定できますが、 _y:アタッチムービーしたムービークリップの高さ にしたい場合、 「アタッチムービーしたムービークリップの高さ」はどう記述すればよいのでしょうか。
>>937 ,
>>938 コメントは外部から読み込みたいので最初から配置は難しく、
書いたスクリプトは本を見ながら見よう見まねで書いて動かないレベルというか
ちょっと見せられる段階ではないので、もう少し形になってから後ほど出直してきます。
素早いコメント有難うございました!
>>939 1ステートメントじゃ無理じゃね?
分けて書けばいいんじゃね
942 :
Now_loading...774KB :2009/02/05(木) 16:49:54 ID:aQXr5iJ9
>>941 さん
コンパクトに記述したかったんですが、ムリなんですね…。
どうもありがとうございました。
943 :
Now_loading...774KB :2009/02/05(木) 18:34:21 ID:5uu9qkU5
>>919 さん
ありがとうございます!
ActionScript3.0アニメーション
早速買ってみます!!
もともとAS2.0はおろか
web業界に入ったのが2ヶ月前です。
この2ヶ月でなんとか
htmlとcssのタグ打ちはできるようになりました。
もともとインタラクティブデザインに興味があり、
AS3.0に絞ってやろうと思いました。
僕が買ったのは
1冊目 速習Webデザイン ActionScript 3.0
2冊目 ActionScript 3.0 逆引きクイックリファレンス
3冊目 ActionScript3.0 ビジュアル・リファレンス
4冊目 ActionScript 3.0 プログラミング入門
5冊目 詳説 ActionScript 3.0
944 :
Now_loading...774KB :2009/02/05(木) 18:34:42 ID:5uu9qkU5
1,2冊目は同時購入。 1冊目はとても分かりやすく、レッスンをほぼ終了。 MovieClipオブジェクトに関しては AS記述できるようになりました。 ↓ AS3.0の全容が全く見えてこなかったので 辞書式の3冊目も購入。2冊目とあわせて見るも、 理解できず。。 ↓ 少しレベルアップした解説本をまたやれば 見えてくるかと思い4冊目を購入。 1冊目とかぶるところが多く、しかし、全容が見えない。。 ↓ そもそもアクションスクリプトとは何なのかを 知ればいいのかも、と思い、5冊目を購入。 難しいですが、分からない文字調べながら 読み進めているのが現状です。 諦めずにがんばります! ありがとうございました!!
>>939 this.attachMovie("circle","circle2_mc",this.getNextHighestDepth(),{_x:100, _y:100, _height:500});
とかでいいんジャマイカ?
AS3で、座標による重ね合わせの変更をしたいのですが、 便利なクラス、または効率的な方法はないでしょうか。 やりたいことは「Y座標が下のMCほど重ね順が上になる」というものです。
Arrayにつっこんでsort
AS3で、今日の年月日を所得して、 その前後数か月の月も表示させたいのですが、 月の数字を足したり引いたりしても-11月とかでてしまいます。 Dateクラスは自動的に月や年度を変えてくれるような説明を読んだのですが、 どうもやり方を間違っているようなのでご指摘よろしくお願いします! //12か月前を表示 var dayNames:Array = ["日", "月","火","水","木","金","土"]; var dateObj:Date = new Date; var year:String = dateObj.fullYear + "年"; var mon:Number = dateObj.month -12; var month:String = mon +"月"; var date:String = dateObj.date + "日"; var day:String = "(" + dayNames[dateObj.day] + ")"; date_txt.text = year + month + date +day;
949 :
Now_loading...774KB :2009/02/06(金) 10:08:01 ID:5advChc4
>>945 さん
汎用性を持たせるために、変数で取得しつつ記述したいんですよ。
this.attachMovie("circle","circle2_mc",this.getNextHighestDepth(),{_x:100, _y:100, _height:Stage.height-this._y});
みたいな。
この場合、this._yのthisは circle2_mc._yではなくて _rootの_yになるので
意図通りになりません…
actionscriptとは少し違っているかもしれませんがどうか教えてください やりたい事:asファイル単品でswfファイルを作る 自機マシーンに入っているのはCS3なのですが、このCS3でasファイル単品をコンパイル?してswfを作る方法がないか探しています なんでもFlexとやらならば可能という記述はみますが、CS3でならばという話は聞きません CS3はflasファイルでないと作れないのでしょうか? どうかよろしくお願いします
余裕のよっちゃん
953 :
Now_loading...774KB :2009/02/08(日) 03:22:08 ID:CAg/6rDR
コンストラクタで var circle:Shape=new Shape(); circle.graphics.beginFill(0x777777); circle.graphics.lineStyle(2,0xdddddd); circle.graphics.drawCircle(0,0,10); circle.graphics.endFill(); circle.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown); this.addChild(circle); ってやってるんだけど EventListenerが呼ばれません なんで?
954 :
953 :2009/02/08(日) 03:37:10 ID:CAg/6rDR
circle:Sprite = new Sprite() だったら動いたよ。 Shapeに登録できんのだぜ。 しかしAS3の情報はとんでもなく使えねえ。 helpを読め ってとんでもなく泥沼だよな。 AS3に詳しい人間じゃなければ読めないので泥沼になりがち かといって個人のページは。。。 Shapeに登録できると書いてあったページを信用したおれが馬鹿なのですね。 そして某 makecircle:shapeな関数をこぴぺして使ったおれが 馬鹿なのですね。 そこの中の人の本をかって 日本語の誤植をメールで 失礼のないように送ったが 何も帰ってこないのは おれが馬鹿なのですね。 ごめん ぐちった。 みんながんばってね。
>AS3に詳しい人間じゃなければ読めないので泥沼になりがち そんなに難しい? 索引でSからShapeを探して最初の説明読んだら書いてあるんだが
InteractiveObjectを継承してない時点でもわかるんだけどね
>>956 それはAS3がある程度わかる人じゃないと難しいでしょう
>>951 AS2なら、mtascとswfmillでOK
AS3なら、flexSDKがいるよん♪
ちなみにCS3って書いてるのFlashCS3の事だよね
スクリプトベースでコンテンツ作りたいなら、FlashDevelopとかお薦めです
959 :
Now_loading...774KB :2009/02/09(月) 16:20:40 ID:Tbp8StXX
AS2の、型宣言についての質問です。 普段、型を宣言する場合、例えば以下のように書くとするのですが、 var testMC:MovieClip; 二階層目以降の変数を型宣言する場合、以下のようには記述できませんよね。 var testParentMC.testMC:MovieClip; その場合、どう記述するのが正しいのでしょうか。
二階層目内で変数宣言をすればよい
961 :
Now_loading...774KB :2009/02/09(月) 18:20:08 ID:Tbp8StXX
>>960 さん
できれば一階層目にまとめて書きたいのですが、ムリなのですか?
以下のようなオブジェクトを10個作って、traceしたところ myXpは、それぞれのオブジェクトが数値を保持しているのですが myPointの方は、すべてのオブジェクトで数値を共有しているようです。 こういうものなのでしょうか? traceの結果 100 100 101 100.1 102 100.2 103 100.3 public class Ball extends Sprite { var myPoint:Point = new Point(100,0); var myXp:Number; public function initBall(iniPoint:Point): void { myPoint = iniPoint; myXp = iniPoint.x; //BallのShapeを表示 this.addEventListener(Event.ENTER_FRAME, move); this.addEventListener(MouseEvent.CLICK,clicked); } function move(evnt:Event):void { myPoint.x = myPoint.x + 0.1; myXp = myXp + 0.1; trace(myPoint.x, myXp); } }
>>960 ようわからんけど
var mc:MovieClip = this.hoge.piyo;
みたいにしたいのかな
>>962 public class Ball extends Sprite
{
var myPoint:Point
var myXp:Number;
public function initBall(iniPoint:Point): void
{
myPoint = new Point(100,0);
かな
965 :
962 :2009/02/09(月) 18:49:49 ID:uyN/MTUm
>>964 ありがとうございます。
たしかに function initBall 内で new Point(100,0) とすると保持できたのですが
呼び出し元から point(100,0) を引数で渡すと(iniPointのことです)
やはり myPoint.x は1ずつ足されて表示されてしまいます。
元は同じ iniPointからとってきているのになぜでしょうか
966 :
Now_loading...774KB :2009/02/09(月) 19:11:37 ID:Tbp8StXX
>>965 あーあー、それ同じもの渡してるからそうなるんじゃ?
インスタンス.initBall(new Point(100,0));
みたいに別のpoint渡さないとそれぞれに別のpointとして保持されないよ
それか、point.clone()で同じ値のコピー作るか
public function initBall(iniPoint:Point): void
{
myPoint = iniPoint.clone();
>>965 呼び出し元でちゃんとひとつずつnewしてる?
リロードし忘れたorz
970 :
962 :2009/02/09(月) 19:43:38 ID:uyN/MTUm
>>967 ,968,969
ありがとうございます! できました!
なぜこういう結果になったのかも理解できました。
ありがとうございました
971 :
Now_loading...774KB :2009/02/09(月) 20:37:43 ID:Tbp8StXX
■■■■■■■■■■■■■ ■ ■ ■ ■ ■ Stage ■ ■ ■ ■ ■ ■■■■■■■■■■■■■ ■範囲内(ステージ外、10px)で、ランダムでxとyの値を出す場合、 どういう式になりますか。
972 :
Now_loading...774KB :2009/02/09(月) 20:38:43 ID:Tbp8StXX
↑あ、ずれた ステージの周りに■がある図です。
特定の複数あるサウンドだけを停止する事ってできるのでしょうか? A001.mp3〜A012.mp3だけサウンド停止してBGMなどは再生されてほしい場合 stop(A001.mp3〜A012.mp3) こんな形になるような命令したいのですが 正規スクリプト変換できる方、よければご指導お願いします。 環境:FlashCS3 アクションスクリプト2.0
>>973 停止したいサウンドオブジェクトを配列につっこんで
for文等で一つずつ再生停止すればいい
Flex3, AS3です。 作ったswfをMS PowerPointに埋め込んで使おうと思っています。 困ったことに、1度swfにフォーカスを移してしまうと、 →、←、↑、↓、PageUp、PageDownを押してもPowerPoint自体のページ送り(戻りも)ができなくなってしまいます ホイールスクロールでやればできますが、キーを使いたいのです。何か良い方法はありませんか?
977 :
Now_loading...774KB :2009/02/10(火) 11:38:17 ID:QJvRy8ma
>>974 -20<x<-10 であり、かつ 10<x<20
-20<y<-10 であり、かつ 10<y<20
とかでやっていたら、
四隅だけにしかしゅうちゅうしなくないですか?
本題とは関係ない突込みだけれど > -20<x<-10 であり、かつ 10<x<20 そんな x は存在しない
979 :
Now_loading...774KB :2009/02/10(火) 12:27:45 ID:ZBzCffMP
10歳以上20歳未満かつ40歳以上60歳未満のアテクシ
>>977 こんな感じか。
手元で試してない。承知の上よろしく。
r1 = Math.random() *10.;
rand = Math.random();
if( rand < 0.25 )
{
//左側
x=r1*-1;
y=Math.random()*stage.hetght;
}
else if( rand < 0.5 )
{
//上側
y=r1*-1;
x=Math.random()*stage.width;
}
else if( rand < 0.75 )
{
//右側
x=stage.width+r1;
y=Math.random()*stage.hetght;
}
else
{
//下側
y=stage.hetght+r1;
x=Math.random()*stage.width;
}
981 :
Now_loading...774KB :2009/02/10(火) 13:31:24 ID:QJvRy8ma
>>978 979
すいません。参考URLをそのまま引用してました。
正しくは&&ではなくて||です。
>>980 ありがとうございます。検証してみます。
アドビのヘルプのインターフェースの説明に猫が出てくるんだがこれが適当すぎで笑える
Tweensyの読み方ってトゥイーンジー(Tween + easy?) で合ってますか
984 :
Now_loading...774KB :2009/02/12(木) 02:33:46 ID:VhsSTmyQ
普通は慣用でスィー
あってるよ。 スレをアゲる悪いおじさんの言うことなんて、聞いちゃダメだよ。
ActionScript3で、どこかしらの場所に"abc.txt"というファイル名で "xyz"と書かれたテキストファイルを作るソースを教えてください。 同様にバイナリファイルも、内容・ファイル名はソース内で決めうちでいいので 保存する方法を教えてください。
FileReference クラスを用いる
localConnect使うとMacOSXのflash playerがフリーズするのは既知のバグなんでしょうか? safari・firefoxともに動作しません 自分のサイト以外も見てみたんですが、ことごとくフリーズします 一応javascript経由でやりとりはできるのですが、 localConnectならswf内で完結して便利なのに使えず困ってます・・・
for文の初期化分でローカル変数を宣言した場合、 その変数スコープはfor文の外に出てしまうのでしょうか? for文の外まで引き摺ってしまうとしたら非常に面倒ですが…。
試せば分かるだろ・・
991 :
989 :2009/02/14(土) 06:11:23 ID:fMmkw1Qk
ブロックスコープ自体がASにはないのですね。 お手数をお掛け致しました。
ムービークリップの基準点 (ScaleX,ScaleYを変更したときの基準となる位置 デザイン画面では真ん中などにある小さい白丸) の座標を、AS3でコード上から変更することはできますでしょうか
無理