ActionScript 誰かが物凄い勢いで解答するスレ 19
1 :
Now_loading...774KB :
2008/03/13(木) 07:42:51 ID:Ey5T6ogp
2 :
Now_loading...774KB :2008/03/13(木) 19:06:18 ID:wRwe6t9z
1さん乙でつ! さっそくですが教えて下さい 【やりたい事】 ひし形のエリア内にランダムに点を打つ方法 現状はヒットエリアを用意しランダム座標で判定 do〜whileで一定以上打つまで回す という 方法ですがこれだと色々都合が悪いのです 計算でエリアを算出方法はないでしょうか??
3 :
Now_loading...774KB :2008/03/13(木) 19:07:11 ID:lhW46qj3
WinXP-HEでFlash8-Proを使っています。 SWF上でマウスの動きを制限するにはどうしたら良いでしょうか? 試しに、ある条件(pencilF が true)で一定のY座標に固定し、X軸方向 のみに動かせる目的で this.onEnterFrame = function() { if (pencilF == true) { this._ymouse = 50; } } としましたが駄目でした。
>>2 だから数学はちゃんとやっておけと、って、ところでキミ何歳?
さすがに小学生に計算方法を教える自信はない。
>>3 SWFでマウスの座標は変えられないんじゃない?
>>3 >SWF上でマウスの動きを制限
って質問内容よく考えたほうがいい。
支離滅裂すぎ。
MCをマウスに追随させたいんだろうけど
MCの位置座標は_x,_yだよ
Y軸固定するなら_ymouse = 50じゃなくて_y=50見たいになる。
_xmouseを参照して_xを決めればいいんじゃないかな。
>>4 ,5
どうも。
そうですね、目的はMCとマウスが一体となって水平に動くことですので、
(厳密に「_xmouseを参照して_xを決めれば」ではありませんが)
マウスの位置をMCの位置にする → MCのY座標を固定
これで、結果としてMCをマウスの動きに合わせて水平に動かすことが出来ました。
>>2 ヒント: 一次関数 領域
7 :
2 :2008/03/13(木) 21:19:05 ID:wRwe6t9z
1次関数でできたのね… 何とかやってみましたが点が左右に集中してしまいまつ もうちょっと平均的にちりばめたいんですが… このやり方だとヘタクソなんでしょうか? //左右対称のひし形 横480 縦240(AS3) var dot :Array = new Array();//ドットインスタンス用 for( var i:int=0; i<=1000; i++ ){//千個打つ var dx:int = Math.random()*480; var r:int = Math.random()*2; var yLength:Number, dy:Number; if ( dx < 240 ){ yLength = 0.5 * dx; if ( r==0 ){//左上 dy = Math.random()* yLength +( 120-yLength ); }else{//左下 dy = Math.random()* yLength +120 ; } }else{ yLength = -0.5 * ( dx-240 ) + 120; if ( r==0 ){//右上 dy = 120 - Math.random()* yLength; }else{//右下 dy = Math.random()* yLength+120; } } dot[ i ] = new Dot();//点MC addChild( dot[ i ] );//点表示 dot[ i ].x = dx;//位置 dot[ i ].y = dy; }
左右寄りに集中しているわけではないと思う。そう見えるだけ。なぜか? このプログラムだと、まず最初にX方向の位置を決めて、その位置のYを 決めているんだけど、Yの範囲は左端は1なのに対して、中央部分は240 だから、左右の隅っこの方は密度が高くなるから。 ではどうすればいいか? あ、彼女からTELきた、ごめんよ、またn
TEST
>>7 単純に考えるんだ
正方形の中に点を作るなら
高さ分のランダム値X
横幅分のランダム値Y
この二つを正方形の基準点に足すだろ?
なら正方形を45度回転させると
左から上の点の座標間の点と
左から下の点の座標間の点、
それぞれ逆の線と並行に伸ばした二辺の交点がひし形範囲内の座標だ
ベクトルでイメージすると分かりやすいが
右上に矢印伸ばして、右下に矢印が伸びた先が交点
LEN1 = 一辺の長さ分のランダム
LEN2 = 一辺の長さ分のランダム
X1 = Math.cos( Math.PI * -0.25 ) * LEN1
Y1 = Math.sin( Math.PI * -0.25 ) * LEN1
X2 = Math.cos( Math.PI * +0.25 ) * LEN2
Y2 = Math.sin( Math.PI * +0.25 ) * LEN2
X = BaseX + X1 + X2
Y = BaseY + Y1 + Y2
まぁ単純に正方形内で点を打ってからsin,cosの回転行列かけた方が 行数は減るかな、Mathとmatrixは処理重いけど。 もっと簡単に、一次方程式だけで処理できるよね。
正方形回転させても正方形じゃねーの?
おっと、潰れた菱形なんだっけ?じゃあmatrixで傾斜も。
中学生レベルの数学は学校で教えてもらってくださいマジで。
>>11-13 主観だがいきなり一次関数云々のレベルでmatrixは理解できるとは思えないんだぜ
行数多くてもイメージしやすい方が良いと思って書いた。
後
>>14 はテンプレ熟読して半年ROMれ
ここのテンプレに「数学基礎知識前提で質問」なんてものはない
上級な質問だけみたいなら他スレ行ってこい
>>15 だが断る。
長文書く前に質問に答えてあげたらいいんじゃねww
>>7 線分使った領域判定便利だよ。とりあえず点で。
var b:BitmapData=new BitmapData(480,240);
for (var i:int=0; i<3000; i++) {
var xx:int = Math.random()*240;
var yy:int = Math.random()*240;
//(x1-x2)*(y-y1)+(y1-y2)*(x1-x)=0 の時、(x,y)は(x1,y1)(x2,y2)を結ぶ線分上の点
if ((0-240)*(yy-120)+(120-0)*(0-xx)>0) {
//(0,120) (240,0)を結ぶ線分の上側の場合、ひし形の右下部分に移動
xx+=240;
yy+=120;
} else if ((0-240)*(yy-120)+(120-240)*(0-xx)<0) {
//(0,120) (240,240)を結ぶ線分の下側の場合、ひし形の右上部分に移動
xx+=240;
yy-=120;
}
b.setPixel(xx,yy,0xFF0000);
}
addChild(new Bitmap(b));
ああっと、考え方としては、まず長方形の領域に点打って、それをひし形になるように切り貼りする感じね。
>>16 なんで4分でレス返ってくるんだよw吹いたww
後、IDくらいは見てくれw
なんか面白かったんでもうどうでもいいや
20 :
2 :2008/03/14(金) 13:40:59 ID:rpPwXlWR
>>17 おおーこんなコンパクトにまとまるとは! 散りばめ具合も完璧っす!
ありがとうございました やっぱこのスレはすばらしいですお
winのXPで、2004MXで作成しています。 季節ごとに表示が変わる動画を作りたいです。 見よう見まねで作ってみて表示されることはされるんですが、 フレームに、ちょっと重いシンボルを追加するとと表示されなかったりと、動作が不安定です。 スクリプトは下記です。 mytime=new Date() mymonth=mytime.getMonth() if(mymonth>=0 && mymonth<2) { this.gotoAndStop("yuki"); } else if (mymonth>=2 && mymonth<5) { this.gotoAndStop("sakura"); } else if (mymonth>=5 && mymonth<8) { this.gotoAndStop("suika"); } else if (mymonth>=8 && mymonth<11) { this.gotoAndStop("aki"); } else if (mymonth>=11 && mymonth<=11) { this.gotoAndStop("yuki"); }
>>23 読み込み完了してないフレームに移動しようとしてると思われる。
プリローダーつけろ。
質問っす Flash Plofessional 8使ってます。 モーショントゥイーンで回転している最中のムービークリップの角度を アクションスクリプトで一旦変更すると、 (その後モーショントゥイーンによる回転がいくつも予定されているにもかかわらず、) アクションスクリプトで指定した角度のまま進んでしまいます。 何とかモーショントゥイーンによる回転角度に復帰させる手立てはありませんでしょうか。
ステージ上に配置した、インスタンスではないシェイプの座標や高さ・幅を取得することはできますか?
>>25 たぶん無理
3.0だとそれをAnimatorクラスで制御できるようになったから、2.0だとまだなんだと思う
自分で地味にフレームごとのMatrixの値をコード化するとかしないと駄目なんじゃね?
>>26 2.0ではインスタンスを一旦全部どけて、BitmapDataに_rootをdrawしてその領域を測るとかじゃないと無理だと思う。
3.0だったら、getChildAtでループまわして、Shapeクラスのインスタンスを捕まえればおk
for(var i:int=0; i<numChildren;i++){
var d:DisplayObject = getChildAt(i);
trace("type:" +getQualifiedClassName(d) ,
"width:" + d.width ,
"height:" + d.height);
}
28 :
25 :2008/03/15(土) 12:41:10 ID:+nTk1JO2
なるほど 動きもコード再現してみます ありがとうございます
>>24 さん
上記スクリプトの前のフレームにプリローダー付けたら、どの季節もちゃんと表示されました!
ありがとうございます!
30 :
26 :2008/03/15(土) 15:17:34 ID:NimecFPP
>>27 ありがとうございます
地道にインスタンス化することにします
http://www.nseries.com/index.html このサイトのように、ブラウザの戻る・進むボタンとURL(#l=***形式ですが)を有効化するのってどうやっているのでしょうか?
順番を見るとボタンをクリックしてページが切り替わってからURLが書き換えられているので、
ActionScript->JavaScriptにURL表示変更命令が渡っているようにも見えます。
しかし、URL指定アクセスしてもきちんとFLASH内の該当ページが表示されるので、一筋縄ではいかなそうです。
それと、このサイトはは全面SWFになっていますが、画面解像度の影響を受けていません。この仕組みも理解できません。
これをマスター出来れば、FLASHサイトも理想的に作れそうなのですが、どうすればいいのか数か月調べましたが理解できませんでした。
どうかよろしくお願い致します。
>>32 おお!!ありがとうございます。
しかし、NOKIAのサイトのはMacでもWindowsでもFirefoxで動作してましたが、
御紹介いただいたサイトはIEじゃなきゃ動作しませんね…。なぜだろう…。
Flexなら標準でその機能組み込まれているんだけどね。 便利だよ。
>>36 そのソースだと、
全文+スペースの羅列をどの部分から表示するかを指定して擬似的に移動しているようにみせてる。
なので文字の幅は半角と全角では違うだろうし、スピードが変わったように見えてしまうんだろうと思う。
スピードが変わらないようにするならテキストフィールドを動かしたほうが手っ取り早い。
静止テキストならマスクできるが、動的テキストはマスクできんだろ 動かすだけじゃないぞw
じゃcacheAsBitmapだな
>>38 マスクさせる必要は特にないだろ。
フレームがあるんだから隠すだけでいい。
41 :
Now_loading...774KB :2008/03/17(月) 22:04:53 ID:cGq/Ttjt
var url:URLRequest = new URLRequest("test.mp3") var bgm:Sound = new Sound(url); で、外部から読み込んだ音楽ファイルの音質がめちゃ悪いんですけど これを良くするor音質を保ったまま読み込む方法ってありますか?
>>41 もともと劣化しない。
キャッシュにゴミが残ってるかフォーマットが正しいか確認してみろ
44 :
Now_loading...774KB :2008/03/18(火) 15:04:56 ID:97PGlncs
>>41 Flash Playerが扱えるMP3のフォーマットは、固定ビットレート(CBR)で128kbps以下
だった気がする。ABRだと音がグズグズになったり、音飛びしたりヒスが乗ったりする
ので、注意されたし。
AS3なんですけど イベントリスナー登録するときに addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(event:MouseEvent):void{ //内容 } みたいに書きますよね このときにイベント以外のものを引数で渡す方法ってありますかね?
46 :
Now_loading...774KB :2008/03/18(火) 21:11:06 ID:77HE5tdG
環境:Flash8 Pro AS2 自分で開発するにはまだ全然初心者です。 クラスをMCシンボルにリンケージさせています。 そのクラスの function onPressで、リンケージさせてあるMCを内包しているMCのインスタンス名を 取り出したいんですけど、 function onPress(){ trace(_parent._name); } だとundefinedになりました。(もちろんインスタンス名は設定済み) どうすればうまくいくでしょうか?お願いします。
47 :
うんこランボ :2008/03/18(火) 22:45:37 ID:z/iET98e
おちんちーんブランブランふぁいたーで
48 :
Now_loading...774KB :2008/03/19(水) 02:33:10 ID:HaZFCkPd
>>45 イベントハンドラの受け口が
private function hdlHoge(evt:Event):void{};
だったとしたら、evt.currentTargetがイベント発行元の
オブジェクト参照になるので、イベントをdispatchしてるオブジェクトに
存在するpublicなプロトタイプオブジェクトなら、次のようにして参照できる。
class Foo extends EventDispatcher{
public bar:Boolean;
}
が元クラスっぽいものだとした場合にハンドラ内で
var target:Foo = evt.currentTarget as Foo;
ってすれば、
trace(target.bar);
みたいなことは普通にできる。あらかじめイベントオブジェクトとして
渡されることが想定されてないインスタンス内のプロパティについては、
継承クラスを作ってガンバレ、としか言えないなぁ。ごめん。
>>48 レスありがとうございますー
EventDispatcher継承したクラスを作ってその中に渡したいものを置いとくのかー
それなら確かにできそうですね
しかしめんどくさい汗
もっと単純にできる方法がどっかのサイトにあった気がするんですけど思い出せない・・・w
>>46 どの段階でどこからどう呼び出してるのかよくわからんので、
もっと構成と流れを具体的に。
Eventを継承したクラスを作って、渡す方法もある
52 :
Now_loading...774KB :2008/03/19(水) 10:03:23 ID:SwOs8Ksd
as2.0です、現在下の様な状態で、function cからfunction aの中にあるfunction b等にアクセスする方法はあるのでしょうか? arrayの中身はムービークリップです。 class Test8 { var targetArray:Array; function Test8(array:Array) { targetArray = array; a(); } function a() { for(var i=0; i<targetArray.length; i++) { targetArray[i].onEnterFrame = b; } function b() { this._y += 1; } } function c() { ??? } } また、function aの部分を function a() { for(var i=0; i<targetArray.length; i++) { targetArray[i].onEnterFrame = b; } } function b() { this._y += 1; } こんな風に無名関数で処理先指定した関数を、元functionの外に書いてアクセスさせる方法などありませんでしょうか?
>>52 最終的に自分がどういう事をやりたいのかを書くと良いと思うぞ
たいていの問題にはすでにベストな回答があるんだよ
54 :
52 :2008/03/19(水) 10:59:26 ID:SwOs8Ksd
>>53 返信ありがとうございます。
やりたい事というか、function aとfunction bの処理までを最初考えていたのですが
後に追加したタイムライン側から呼ぶfunction cの処理で、function a内に書いた関数と全く同じ処理が必要になり、同じソースをまた追加するのもどうかと思い
function c側からどうにかfunction bにアクセスできないものか…と考えているのですが詰まってしまいました。
後の質問はそれを考えていた中で、そもそも無名関数の指定先関数を元functionの外に書いても動かせるのか?と疑問に思い
質問させてもらいました。
良く分からんけどonEnterFrameの内容呼びたいなら、 function c() { targetArray[0].onEnterFrame(); } にでもすりゃいーんじゃね? 単純にネストした関数呼びたいなら無理。ただ、AS2.0のfunctionなら function a(){ } a.b = function(){ trace("hoge") } a.b() こんなでも行けない事は無いけどウンコみたいな書き方
56 :
Now_loading...774KB :2008/03/19(水) 16:22:38 ID:t1KdvwKI
AS3.0の質問なんですけども。 addChild(mc1); で置いたムービークリップが終わったら、removeChild(mc1)かmc1.visible = false; ;と見えなくしたいんですが ムービークリップの終了ってどうやればわかるんですか?
ムービークリップの終了というのはどういうことですか?
58 :
Now_loading...774KB :2008/03/19(水) 17:08:36 ID:t1KdvwKI
たとえば25フレのムービーがあったら25フレ後に消したい。
25フレームに stop(); parent.removeChild(this); で消えると思う 多分w
ラベル名をフレーム番号に変換できないのでしょうか? というか、ラベル名をif文とかで使えるのでしょうか? if (_currentframe > "labelname") ... みたいなことをしたいのですが。
63 :
Now_loading...774KB :2008/03/20(木) 04:02:54 ID:8ib4aita
>>62 クロージャが万能とは限らない。呼ばれるタイミングによってデタラメな値が渡ってきたり、
インスタンスの参照カウンタが減らないためにGC効かなくてリソース漏れてたり、
もうね、ゲンナリすること多いよ。クラスできっちり閉包できる範囲だと
クロージャって特効薬みたいなテクニックなんだけどねぇ。
せめてゲンナリするのは理解してからにしようぜ、そこは
クロージャでどうやってイベントハンドラに値渡すの?
じゃあこのスレ必要ねーなw
だれかクロージャでどうやってイベントハンドラに値渡すかおしえて。
>>67 には聞いていない。
71 :
Now_loading...774KB :2008/03/20(木) 16:55:43 ID:uj4yq56P
URLLoaderでLANケーブルを引っこ抜いたり、ローカルの接続を無効にしたときに、 エラーを取得できずに困っています。 ioErrorやsecurityErrorのイベントも出さないし、例外をスローするわけでもなく、 ただ何もしないという挙動を示します。 この挙動は正しいのでしょうか?また、エラーを判断する方法はあるのでしょうか? だれか助けてください。
>>71 読み込める状況で、読み込むファイルが存在しない場合はioErrorは出てる?
ところで、IPアドレスを取得したいんだがASで出来る?
使ってるのはAS3です
>>72 その場合は、ioErrorが出ます。
接続先のLANケーブルを抜くとエラーが出て、LocalのLANケーブルを抜くと、
エラーが出ない状況です。
てかクロージャってremoveできないよね? removeしなくてもいい場合しか使えないんじゃない?
CGI(php等)かjavaスクリプトかな Timerでタイムアウト検出汁
removeとクロージャの関係性の説明求む
>>74 クロージャでなくても成立する処理だから、普通の関数で書いておけばいいんじゃね?
面倒かどうかとのトレードオフで。
function a(e:Event){
b(e,"hoge")
}
function b(e:Event,v:String){
trace(e.target.name,v)
}
button.addEventListener(MouseEvent.CLICK,a)
'button.removeEventListener(MouseEvent.CLICK,a)
あとは、callee使えば外せない事もない。1回だけのイベント処理とかでしか使わんと思うけど。
button.addEventListener(MouseEvent.CLICK,function(e){
trace("hoge");
e.target.removeEventListener(e.type,arguments.callee);
});
何が面倒なのか良くわからん。ターゲットに変数持たせるなりカスタムイベント 作るなりすれば大抵問題ないと思うんだが。
79 :
Now_loading...774KB :2008/03/21(金) 15:36:56 ID:GrkR9A04
エラーがでて困っています。 原因は「Variables」だと思いますが、どうも解決できません。 ご教示願います。 var variables:URLVariables = new URLVariables(); variables.filename = "ID001"; var filepass = "delete.php" var delRequest:URLRequest = new URLRequest( filepass ); delRequest.method = URLRequestMethod.POST; delRequest.data = variables; var deleteLoder:URLLoader = new URLLoader( delRequest ); deleteLoder.dataFormat = URLLoaderDataFormat.VARIABLES; deleteLoder.load( delRequest ); Error: Error #2101: URLVariables.decode() に渡される文字列は、名前/値のペアを含む、URL エンコーディングされたクエリー文字列でなければなりません。
80 :
Now_loading...774KB :2008/03/21(金) 16:55:22 ID:zG6IB9N/
>>79 まず環境はしっかり書いておきましょうね。
ということで、AS3の話として分かる範囲で答えてみます。
まず、ソース中の最後のブロックで
>var deleteLoder:URLLoader = new URLLoader( delRequest );
としていますが、この場合、URLLoaderのコンストラクタにURLRequestの
インスタンスを食わせる必要がありません。
で、肝心のURLVariablesですが、decode()メソッドはURLLoaderで
呼ばれています(おそらく)。ということから類推すると、delete.phpからの
戻りが
&[変数名]=[URLエンコード済文字列]
の形になっていないのではないでしょうか。delete.phpが正しく戻り値を返して
いるかをチェックするために、deleteLoder.dataFormatの指定をコメントアウトし、
deleteLoderのCOMPLETEイベントをハンドルする関数で以下のようにして
調べてみるとよいかと思います。
private function hdlComplete(evt:Event):void{
var target:URLLoader = evt.currentTarget as URLLoader;
trace(target.data);
}
もう少し状況が分かればいろいろ分かるのですが。。。
未だにVariabェsなんて使わないで、PHPからはXMLで戻せよ
Canvasを継承した自作コンポーネントにて、mxmlでwidth="100%"と設定した状態で、 スクロールさせない最大の横幅を得ることはできますか? explicitWidthはNaN。 何も描画してないと、measuredWidth=0となってしまいます。(当たり前ですが)
unscaledWidthで取得できました
85 :
Now_loading...774KB :2008/03/22(土) 13:21:51 ID:wsg+51VH
>>80 ありがとうございます!!
解決できました、PHPが悪かったみたいです。
>>84 完全にAS側が悪いんだと思い、PHPに目もくれませんでした。
申し訳ない
86 :
Now_loading...774KB :2008/03/22(土) 14:27:31 ID:W8cnC/HY
Actionscript3.0でフレームをボタンクリックでジャンプさせたく、 stop(); menu_btn.addEventListener(MouseEvent.CLICK, goMenu); top_btn.addEventListener(MouseEvent.CLICK, goFtop); news_btn.addEventListener(MouseEvent.CLICK, goNews); movie_btn.addEventListener(MouseEvent.CLICK, goMovie); //フレームナビゲーション function goMenu(event:MouseEvent):void{ gotoAndPlay("menu"); } function goFtop(event:MouseEvent):void{ gotoAndPlay("ftop"); } function goNews(event:MouseEvent):void{ gotoAndPlay("news"); } function goMovie(event:MouseEvent):void{ gotoAndPlay("movie"); } だと、エラーになってしまいます・・・(泣) 三行では大丈夫で四行ではエラー・・・・どなたかご指導お願いしますm(_ _)m初心者ですいません。。
88 :
Now_loading...774KB :2008/03/22(土) 14:38:35 ID:W8cnC/HY
あ、ありがとうございますm(_ _)mエラーメッセージは TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at index_fla::MainTimeline/frame135() です・・・
じゃオブジェクトがまだ無い時点でアクセスしようとしたとかだろw
90 :
Now_loading...774KB :2008/03/22(土) 17:25:20 ID:W8cnC/HY
AS3でボタンMOUSE_OUTで ムービーを逆送させたいのですが、 スクリプトの書き方で行き詰まってしましました。。 もしよければ教えて下さい;;
>>90 とりあえず連投するなら
>>86 が解決したのかとお礼くらいは言おうぜ
mc.gotoAndStop( mc.currentFrame - 1 )
92 :
Now_loading...774KB :2008/03/22(土) 18:50:05 ID:W8cnC/HY
すいません!まだ解決はしていないのですが、 ありがとうございますm(_ _)m 続けて次の質問もありがとうございます^^; mc.gotoAndStop( mc.currentFrame - 1 )は・・・ まだ始めたばかりで・・・ もちろんこれだけではだめですよね・・・ 始めたばかりでかなりショート気味です。。
93 :
Now_loading...774KB :2008/03/22(土) 22:03:28 ID:bpLltLh4
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) コンボボックスについて質問です。 root上に、3択のコンボボックス(インスタンス名:sigBox)を、リンケージされた MCをattachMovie()で複数出現させるように任意の数だけ縦方向に出現させる にはどうしたらよいでしょうか? つまり、 sigBox0 sigBox1 sigBox2 の感じです。
94 :
Now_loading...774KB :2008/03/22(土) 22:33:57 ID:/IXmXeQt
>>93 言ってることがよくわからないけど、
MCを任意の数だけattachMovieしたいならforで回す。
hittestは重いからあまり多用しすぎないほうが良いとのことですが どなたかhittestを軽くした代替クラスを公開している人などいますかね・・・? 阿呆な質問ですみません
範囲指定でいいよ
97 :
93 :2008/03/23(日) 01:08:34 ID:f208NOmj
>>93 それはそーなんですけれども、コンボボックスでは識別子が指定できないので
MCのようにattachMovie()が適用できないです。
今のところ、(暫定処置として)ステージ外に元となるsigBoxを1個置いて、これを
forとduplicateMovieClip()で
sigBox0
sigBox1
・
・
というようにroot上の目的の位置に出現させています。
98 :
93 :2008/03/23(日) 01:09:33 ID:f208NOmj
>>98 なんかよう分らんけどMC作ってそこにコンボボックス置いて
そのMCをattachMovieするんじゃいかんの?
100 :
93 :2008/03/23(日) 02:55:22 ID:f208NOmj
>>99 要は、コンボボックスを縦に並べるたく思っています。
MCの入れ子にする案、有り難うございます。
一つの表示用ムービークリップに、幾つかの押したボタンに対応した画像をMovieClipLoaderで読み込ませて表示させています ボタンを押した瞬間に一度unloadClipで表示用ムービークリップの中身を削除した後MovieClipLoaderをしています これでダウンロードのシミュレートをすると、一度画像が全部読み込まれて表示されても、別のボタンを押してもう一度そのボタンを押すと また0%からダウンロードになりますが、これをネット上でswfを表示させた場合も0からスタートの動作は同じなのでしょうか? winXP、FLASH8です
>>102 なんでダウンロードのシミュレートなんていう無駄なことするの?
実際の環境で試せばいいじゃん
104 :
Now_loading...774KB :2008/03/25(火) 17:00:04 ID:eZ58rXsN
Flash CS3 / ActionScript3.0 を使用しているのですが、 URLVariables クラスで CGI スクリプトに変数を渡す際、 変数名に _ (アンダーバー) が含まれている場合、正常に変数を受け渡せなくて困っています。 ( %5F に置き換わってしまう ) どなたかこのまま渡す方法をご存じないですか? よろしくお願いします。
105 :
102 :2008/03/25(火) 17:29:24 ID:XsgSjR7E
>>103 すみません、今事情がありネットにあげられないもので、ソフトのムービープレビューが頼りです
ネットにあげた場合は一時的にデータがキャッシュに溜まって、読み込んだ分はunloadClipしても保持されたりもするのか?と疑問なんです
106 :
Now_loading...774KB :2008/03/25(火) 18:13:58 ID:iwn5ZKJ8
>>104 URLVariablesを使うな論議はあるとは思うけど、そこは置いておいて。
変数のやりとりは、すべてURLエンコード(UTF-8の)になってしまうのは仕様。
CGI側でdecodeURIComponentのようなデコードするルーチンを通さないとダメ。
逆に、CGIからSWFに値を返す場合にもURLエンコードする必要がある。
どうしてもダメなら、POSTでパラメータをCGIに送って、UTF-8エンコードの
XMLでSWFがデータを受け取る形が素直だと思う。
※ちなみに、「_」だけじゃなくて「.」などの特殊文字はエンコードされる。
とりあえず、現状のまま実装を進める方法はなさそう。
なんか無茶苦茶だなw
108 :
Now_loading...774KB :2008/03/25(火) 20:34:16 ID:FLsOjbFC
as3でのプリローダーの作り方教えてください
root のプロパティ loaderInfo から必要な情報が取れるよ
Frameメタデータタグをつかう
111 :
Now_loading...774KB :2008/03/26(水) 02:11:30 ID:eaH0O1Az
thank you
今気づいたんですが 自分のASのなかに大量にあるint()ってmath.floor()にしといたほうがいいですかね? なにか不具合とかあるんでしょうか
FP5以降のint関数はサポートされていない。後方互換のために残してあるけど将来消される可能性があるため使用してはならない。
わかりました
毎日AS3書いてると、ハイペースでAS2の事忘れてくな。
>>115 でも仕事とかでもなきゃもうAS2.0使う事ない、とか思わね?
余談だがMath.floorの代わりにシフト演算の「 >> 0 」で書いてる人居るかな
こっちの方が高速だよって言われてずっと使ってるんだが
妙なこだわりで可読性を悪くする キモグラマの悪い癖だ。 キモグラマの早い遅い談義も ほとんどが第三者にとって実感できないレベル。 生涯てめーしか触らないソースなら そっち使ってろ
>>117 概ね同意だが流石に深読みしすぎ
シフト演算での小数削除なんて手法の一つだろ?
珍しいかもしれんが
それを可読性や第三者への実感まで考慮して答えるのは考えすぎ
そういえばMath.floor使ってないな〜って気分で書いて
「高速」なんて単語を使った俺も悪かったが
>>118 本当だよな。
もう自殺用に縄を買った。
121 :
Now_loading...774KB :2008/03/27(木) 18:03:40 ID:FtcfcO7Z
loadMovieで外部の画像ファイルを読み込んだMCを、 他の複数のMC内にattachMovie等でコピーして利用したいのですが、 普通にするとコピーの度にloadMovieが発生してしまいます。 loadMovieした状態のものをコピーするような何かよいやり方はありますでしょうか?
BitmapDataに焼いちまえ?
123 :
121 :2008/03/27(木) 19:21:02 ID:FtcfcO7Z
>>122 あざーす!!
BitmapDataというものを知らなかったが、
調べたらできました。
助かりました。
以前4の倍数かどうか調べる方法(hensuu % 4 == 0)を教えてもらった者ですが、4の倍数+1(4n+1)(1,5,9,13)かどうか調べるにはどうすれば良いでしょうか?
3の倍数と3の付く数字の時だけアホになるにはどうすればいいでしょうか?
>>124 (hensuu % 4 == 0)
これが何してるか理解してないのか?
>>124 いくらなんでも酷すぎる 釣りだと言ってくれ
1+1=2だそうですが、1+2はいくつですか?みたいな感じだな。
>>124 4の倍数+1の数を4で割った時の「余り」はいくつでしょうか
数学なんて社会に出たら役に立たない → まちがい 数学ができないと社会の役に立たない → せいかい
>>130 知識を実生活で役に立てれなければ学歴なんて無意味→せいかい
>124 ((hensuu - 1) % 4 == 0) そんなことよりswitch文のcaseで以上・以下の条件はどう書くのか 教えてちょ
a = 100; switch (true) { case a<200 : trace("in"); break; }
switch (a) { 〜 で書けないかな
可読性や修正時の簡単さを考えれば、キモイswitch文よりガード節を使ったヘルパメソッド(関数)や 普通にif文の方が100倍良いw
if (a <= 100) { b = 1; } else if (a <=150) { b = 2; } else if (a <=200) { b = 3; } else { b = 4; } こんな感じ?
>>136 > ...ガード節を使ったヘルパメソッド(関数)
詳しく教えていただけないでしょうか?
actionscript2.0でロールオーバーすると文字したに罫線をつける記述はないでしょうか? ボタンでの処理以外で、もしあれば教えてください。宜しくお願いします。
>>139 どこにロールオーバーすると、どこの文字に罫線がつくのか?
文字にロールオーバーなら、文字をボタン化して_overのフレームに罫線つけとく
って手もあるが。
あとはテキストフィールドをMCにして、そのMCのロールオーバー時に
テキストフィールドに、下線付きTextformatを適用すればいいと思う。
>>138 複雑なif条件等を関数(メソッド)にしてしまって、メインルーチンを見やすくするという感じかな。
条件に合致した時点でreturnする。つまり上から順番にガードして、最後までガードを抜けたら、
デフォルト値が返る。
今作った例なんであってるかどうか解らんが、なんとなくニュアンスは解るとおも。
for(var i:int = 0; i<20;i++){
trace(getLabel(Math.floor(Math.random()*500)));
}
function getLabel(vx:int):String{
if(vx < 100) return "LABEL100";
if(vx < 200) return "LABEL200";
if(vx < 300) return "LABEL300";
if(vx < 400) return "LABEL400";
return "LABEL500";
}
142 :
Now_loading...774KB :2008/03/28(金) 21:34:47 ID:bc+a2mB1
FlexBuilder3(2でも)から実行したプログラムが、 ブラウザのサイズに合わせて伸縮するのを防ぐ方法 (固定サイズで表示する方法)はありますでしょうか?
>>125 function sekaino_nabeatu(num:Number):Boolean {
var buf:Number = num;
if (num % 3 == 0) return true;
while (true) {
if (buf % 10 == 3) return true;
if (buf == 0) break;
buf = Math.floor(buf / 10);
}
return false;
}
>>143 これだと0がtrueになるので修正・・・orz
function sekaino_nabeatu(num:Number):Boolean {
var buf:Number = num;
if (num <= 0) return false; //0とマイナスは問答無用でfalse
if (num % 3 == 0) return true;
while (true) {
if (buf % 10 == 3) return true;
if (buf == 0) break;
buf = Math.floor(buf / 10);
}
return false;
}
String操作しちゃだめってルール?
>>145 //3が混じってる文字列もtrueにしちゃうけどこれでいいのか?
function sekaino_nabeatu(num):Boolean {
if (num <= 0) return false;
if (num % 3 == 0) return true;
if (num.indexOf("3", 0) != -1) return true;
return false;
}
>>146 右端の1文字だけとればいいしょ
num.substr(-1,1)
さらに5の付く数字で気持ちよくなってくれ。
通常、アホ、気持ちよくとなるとBoolじゃむりだなw
>>119 遅レスだけど簡単なスクリプトで実験してみた
for( var i = 0; i < 10; i++){//平均をとるため10回繰り返す
var s_time = getTimer();
for( var j = 0; j < 1000000; j++){//←AS2の時は1000000の桁を1つ減らす
var tmp = Math.random()*100;
//tmp = Math.floor(tmp);//↓どちらか先頭コメント外す
//tmp = tmp >> 0;//↑どちらか先頭コメント外す
}
trace(getTimer() - s_time);
}
自分の環境では
AS2ではシフト演算がfloorと比べ約90%の時間で済み、
AS3ではシフト演算がfloorと比べ約78%の時間で済んだ。
シフト演算の方が早いね。為になったよ。
しっかしAS3いじったことなかったんだけど、
AS2と比べてホント約10倍早いな。
ぼちぼち書き始めるか・・・
>>151 ちなみにMath.floorとシフトのところを
tmp = Math.abs(tmp);
tmp = tmp < 0 ? -tmp : tmp;
の二つに変えて実行してもかなりの違いが出るよ。
>>117 の言う様に高速化のためのスクリプトはやりすぎると分かりにくい。
ただこのレベルならコメントで「小数の切捨て」とでも入れておけば別の人が見ても分かるでしょう。
(シフト演算知らないとかそういうレベルでは別として)
というか知っておいて損する知識は無いと思うよ。
この手の処理速度比較はよく見かけるけど、「90%高速化された」って、
何に対してという部分が不明確だし、
そもそも1000000回もループさせるような処理をするか
どうかを論じないと意味がない。
CPU負荷が高いSWFをどうしても高速化したいのなら
>>0 を使うとか
ローカル変数宣言をやめるとかっていう手法を用いればいいし、
単純なSWFなら可読性を取ればいい。
そういう柔軟性がプログラマに求められる資質。
小難しいこと抜きにプログラミングできるのがASのいいとこなんだけど。
責任転嫁するなら、Adobeがプリプロセッサを提供してくれれば
いいんだよ、こんな話は。
>ローカル変数宣言をやめる これが理解できん。10行で説明してくれ。
>>154 スマン、スコープ内宣言をやめる の間違い
156 :
Now_loading...774KB :2008/03/31(月) 10:15:08 ID:kgLNYFPg
createTextFieldでテキストフィールドを作って、文字の表示切れを無くす為とautoSizeでcenterを指定しましたが TextFormatでフォントサイズを変えた所、テキストが中央添えされたような形で表示されてしまいます これを左添え指定のように見せるにはどうすれば良いのでしょうか?as2.0です
autoSizeにleftはないの?
>>156 TextField.autoSize = "left";
もしくは
TextField.autoSize = true;
>>157 >>158 TextFormatのalignばかり弄ってました;left指定でちゃんと左添えになりました
ありがとうございました!
160 :
138 :2008/03/31(月) 12:50:35 ID:sg/u2jnm
>> 141 レス遅くなりましてすみません。 ガード節の意味よく判りました。 ありがとうございました。
Flash 8以降で出来るらしい MovieClip.beginBitmapFill ( BitmapData , Matrix , テクスチャの繰り返し , スムージング ); を、Flash MX でなんとか実装する方法ないですか
163 :
161 :2008/03/31(月) 18:13:14 ID:G/y7dINt
>>162 すみません、もう少し検索ワードなりのヒントを教えていただけますか
165 :
Now_loading...774KB :2008/03/31(月) 20:16:25 ID:aLxTfjpQ
まぁパップピルには無理だろうな。
うは、マクロメディア技術陣(当時)の実装を1人で出来る165には 到底かないません。参りましたw
>>149 var NABEATU_NORMAL:Number = 0;
var NABEATU_FOOL:Number = 1;
var NABEATU_COOL:Number = 2;
var NABEATU_FOOL_AND_COOL:Number = 3;
function sekaino_nabeatu3(num):Boolean {
if (num <= 0) return false;
if (num % 3 == 0) return true;
if ((num+"").indexOf("3", 0) >= 0) return true;
return false;
}
function sekaino_nabeatu5(num):Boolean {
if (num <= 0) return false;
if (num % 5 == 0) return true;
return false;
}
function sekaino_nabeatu(num):Number {
var buf:Number = 0;
if(sekaino_nabeatu3(num)) buf += NABEATU_FOOL;
if(sekaino_nabeatu5(num)) buf += NABEATU_COOL;
return buf;
}
function sekaino_nabeatu_str(num):String {
var buf:Number = sekaino_nabeatu(num);
switch(buf){
case NABEATU_NORMAL: return "普通";
case NABEATU_FOOL: return "アホになります";
case NABEATU_COOL: return "気持ちよくなります";
case NABEATU_FOOL_AND_COOL: return "気持ちよくアホになります";
}
}
for(var i:int = 0;i < 100; i++) { trace(sekaino_nabeatu(i)); }
for(var i:int = 0;i < 100; i++) { trace(sekaino_nabeatu_str(i)); }
>>167 sekaino_nabeatu_strの
switch文にdefaltが無いので戻り値が不定になる場合がある
つまり、関数では戻り値があると指定されているがreturnなしで関数が終わってしまう
switchには必ずdefaltを作りそれをエラー出力にすると良い
>>167 エラー処理をちゃんと入れるなら、こんな方法はいかが。
function hoge(num:Number):String{
var result:String = "";
switch(num){
case "":result = "";break;
......
default:result = "";throw new ArgumentError("not supported argument.");
}
return result;
}
case部分なんかは上のでいいと思う。
デフォルトに回った時には例外がスローされる。
正常に回ったら結果セットに文字列が入る。
いずれの場合でも関数の最後にあるreturn文を通る。
AS3の文法チェックは、こう書かないとコンパイラが警告を
出すよ。caseの中でreturnしても、条件によっては関数の戻りの型が
保証されない場合があるからだけど。
このキモい流れで質問者が途絶えたな
17さんっ!!
>>170 >switch文にdefaltが無いので戻り値が不定になる場合がある
コードを見ればわかりますが、指摘の部分は理論上絶対にcase文で定義した4つ以外の値になることはありません。
>>174 たとえばsekaino_nabeatuに
if(sekaino_nabeatu7(num)) buf += NABEATU_FOO;
なんてのを追加してsekaino_nabeatu_strの修正を忘れたらどうなる?
ありがちなミスだけどdefaultでエラー出力しておけばミスの場所を
すぐ特定できて5分で修正できる
エラー出力がないとバグ位置特定に結構悩むことになるよ
WSSE認証をしたいんだ 誰かサンプルをつくってくれ
超基本的スレに質問したのですがスレ違いのようでしたのでこちらでお尋ねします flash8(AS1&2)を使用し、バナーを作成しています。 1.swf・2.swf〜という感じで4つのバナーのswfファイルがあり、 それぞれのバナーをランダムで表示するようにしたいのです。 ransuu = Math.floor(Math.random()*4)+1; this.loadMovie(ransuu+".swf"); 空白のドキュメントに上のアクションスプリクトを書きそれぞれのswfファイルを単体で ランダムに表示させることはできました。 これを、1.swf+3.swf+4.swf+2.swfというように 4つのswfファイルを続けてランダムに表示させるにはどうしたらよいですか? 超基本的スレでsetInteralというASか、 onClipEvent(enterFrame){ if(this._currentframe==this.totalframes){ 読み込む関数 } というASを書くよう教えてもらいましたが申し訳ないんですがよく分かりませんでした。 どのようなASを入力すれば宜しいのでしょうか。
>>179 異なるswfを続けて表示させるのが解らないのか?
それともシャッフルが解らないのか?
>>179 そこまで書いてもらって何がわからんのだ?
調べた結果、どこまでわかったの?
ただ、仕様について確認したいのだが
ランダムに、ということは重複なく4つのswfをランダムに
読み込みたいということなのかな?
まず、その処理はできるのか?
>>179 おーい、俺はほったらかしかい?!
まあいいけどな〜、
俺の書いたヤツ2ヶ所ほど間違えてるんでコピペじゃ動かんぞ〜w
つかバナー作るのだけが目的でスクリプト勉強しようとか思わないんなら
このスレこそスレ違いだ。
ランダムが使えるんだからもっと原始的な方法でも充分できるしな。
183 :
179 :2008/04/04(金) 18:48:36 ID:h9YVYa5n
>182さん 超基本スレの方ですねすみません。スレ違いだと言われたので、 こちらのスレで質問後、もし解決(私が未熟で解決できてませんが…)したら お礼のレスだけしようと思ってました。気分を悪くされたら申し訳ありません。 onClipEvent(enterFrame){ if(this._currentframe==this.totalframes){ ransuu = Math.floor(Math.random()*4)+1; this.loadMovie(ransuu+".swf"); } } というASを書いたところ、Error opening URLというエラーが出ました。 パスが間違っているのでしょうか。 >つかバナー作るのだけが目的でスクリプト勉強しようとか思わないんなら >このスレこそスレ違いだ。 はい、バナーを作るのだけが目的なのですが、もしや私の質問はスレ違いでしょうか…。すいません。 >181さんのおっしゃるように重複なく4つのswfをランダムに表示させたいと思っています。
184 :
Now_loading...774KB :2008/04/04(金) 20:08:50 ID:w2sIE7/n
>>183 作ってくださいスレじゃないんだから少しは考えようね。
numberArray = new Array(1, 2, 3, 4);
function shuffle(arr) {
setArr = new Array();
whilecnt = 0;
while (0<arr.length) {
setArr[whilecnt] = arr.splice(Math.floor(Math.random()*arr.length-1), 1);
whilecnt++;
}
return setArr;
}
newArray = shuffle(numberArray);
num = 0;
this.createEmptyMovieClip("swfLoadMc", this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc.onEnterFrame = function() {
if (target_mc._currentframe == target_mc._totalframes) {
num++;
if (num<newArray.length) {
swfMcl.loadClip(newArray[num]+".swf", swfLoadMc);
}else{
delete target_mc.onEnterFrame;
}
}
};
};
var swfMcl:MovieClipLoader = new MovieClipLoader();
swfMcl.addListener(mclListener);
swfMcl.loadClip(newArray[num]+".swf", swfLoadMc);
>183 ところで読み込むswfは複数フレームの動画なんだよね? 1フレームしかない静止画だと_currentframe==_totalframesじゃうまくいかない。 Error opening URLって大概パス間違いだけど、1フレームのswfだったら ransuuがunderfindになってるのかもしれない。
AS3でFLVPlaybackでフルスクリーンにするとき、どうやったらsmoothingとdeblockingをオンにできますか? そのままだとVideoクラスで読み込んでsmoothingとdeblockingをオンにするのと比べて、画質が悪すぎる。 詳しい人、助けてください!!
>>182 >俺の書いたヤツ2ヶ所ほど間違えてるんでコピペじゃ動かんぞ〜w
そんなレスしてるからこっちに流れてくんだろw
まず、自分がダメだと思えよw
btn1.addEventListener(MouseEvent.CLICK,mc1Handler); btn2.addEventListener(MouseEvent.CLICK,mc2Handler); ・ ・ ・ function mc1Handler(event:MouseEvent):void { //処理 } function mc2Handler(event:MouseEvent):void { //処理 } ・ ・ ・ こんな風に手動で書かずに動的生成してやりたいんですが、 どういうやり方があるでしょうか。
>>188 動的って意味取り違えてないか?
btnを配列にするとか、ハンドラは1つでtargetで処理対象を変えるとか考えたのか?
>>184 spliceだと元配列破壊してるから、2回以上実行できんぞそのshaffle関数
>>184 それ179にわかると思うかい?w
if文だけで書いてやんなよ。
>>190 すまん。その場で適当にノリで書いたからそこまで気にしなかった。
Flex2についての質問なんですが、TileListクラスのインスタンスにselectedIndicesをセットして 複数選択されている状態にしようとしているのですが、どうも挙動がおかしいのです。 たとえば function hoge():void{ var indices:Array = new Array(); indices = [1, 2]; tileList.selectedIndices = indices; //A }//B のようなコードでBuilderでデバッグすると、Aの処理が終わったところでは確かにtileList.selectedIndicesと indicesは[1, 2]なんですが、どうもBのところに行ったところでどちらの配列も空になっているみたいなんです。 #もしかしたらそれぞれAの前、Bの前だったかもしれませんが、空になったのは確かです。(手元に環境が無くて…) これは正しい挙動なんでしょうか?
>>193 確か、とか、かもしれませんで正しい挙動かと聞かれても答えようがない
>>194 今日改めて確認しました。
Aを実行した時点で、indicesの中身が空になります。
tileList.selectedIndicesはきちんと[1,2]になっていました。
tileList.selectedIndices = indices.slice();
にすれば回避はできますが、どうして配列の中身が
なくなってしまうのかが解りません。
>>195 indicesの中身が空なのではなく、hoge()関数を抜けたのでindicesでは参照できないのでは?
どうやって空だと確認したのかわからんが。
関数抜けたら関数内で確保した変数は消されるからselectedIndicesはundefinedになると思うが selectedIndicesに配列コピーしたいならindices.concat()として複製しないとダメかと
>>197 tileList.selectedIndicesにはhoge()で作った配列の参照が渡されてるから
undefinedにはならないでしょ。
>Aを実行した時点で、indicesの中身が空になります。 >tileList.selectedIndicesはきちんと[1,2]になっていました 196で結論が出てるじゃん。 スコープを抜けたから、indicesは空になる。 tileList.selectedIndicesには、indicesの参照が残ってる。
ActionScript2では Math.sin( Math.PI )は0にはならないようですが 皆さんはこれに対してなにか対策はとっていますか? Math.sin( Math.PI )==0などを避けるしかないのでしょうか
>>196-199 念のためスコープからはずしてみました。
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml " layout="absolute">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private var indices:Array = new Array();
private function hoge():void {
indices.push(1);
indices.push(3);
tileList.selectedIndices = indices;
Alert.show(">" + tileList.selectedIndices + "\n>" + indices.toString());
}
]]>
</mx:Script>
(略)
</mx:Application>
結果(Alertの中身)
>3,1
>
関数のスコープ関係なしに、indicesの中身がなくなっているように思えます。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml " layout="absolute" creationComplete="init()">
<mx:TileList id="tileList" />
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.IndexChangedEvent;
private var indices:Array = new Array();
private function init() : void {
indices.push(1);
indices.push(3);
tileList.selectedIndices = indices;
Alert.show("tileList.selectedIndices = " + tileList.selectedIndices + ", indices = " + indices);
}
]]>
</mx:Script>
</mx:Application>
結果 tileList.selectedIndices = 1,3 indices = 1,3
別に異常ないよ。
>>202 えぇぇ??
と思ってそのソースで試すと確かにtileList.selectedIndicesもindicesも1,3になりますね。
自分のソースと比較して、どうやら私の書いたTileListのdataProvider指定↓
<mx:TileList id="tileList" x="10" y="10" width="300" height="200" dataProvider="{dat}" />
を
<mx:TileList id="tileList" x="10" y="10" width="300" height="200" />
にすると202さんと同じ結果になりました。
つまり、dataProviderが指定されているTileListのselectedIndexに代入した側の配列の中身は
空になってしまう。というわけなんですが…ますます何でこうなるか解らなくなりました。
>>203 SDKのソースを追っていくと、途中で引数の配列をぶっ壊しながら、selectedIndicesを指定してる。
while (indices.length) {
//中略
indices.shift();
//中略
}
なんでこんな処理してるのか、めんどくさいから読まないけど、
参照元の配列はぶっ壊れると思えばOK。
新しい選択を得たい場合は、tileList.selectedIndicesからgetしろ。
>>200 俺は基本的にDegree(度)で扱ってるけど角度求める関数には
大体「0,90,180,270」はチェックしてるよ。
厳密には0,180度をradian値に戻す時の誤差でMath.PIの近似値になってるんだけど
たまに0や180に近い値が「1.2246063538223773e-16」みたいな結果になるから
if( Math.abs( Deg - 0 ) < 0.01 || Math.abs( Deg - 180 ) ) return 0;
という感じで誤差許容範囲に当てはまる時はMath.sinを使わないようにしてる
if文の条件2個目「Math.abs( Deg - 180 ) < 0.01」ね
>>203 ,204
ListBaseあたりに記述があるというウロ覚えの記憶によると、
Array型をデータプロバイダにすると壊れます。なんでかっていうと、
表示リストを生成するために、表示範囲や順番がソートされる
ことが頻繁に起きるため。Arrayではなくて、LiveDocsなんかの
サンプルでは、sort()などのメソッドを持つArrayCollection型やら
XMLListCollection型を使うのが正当なようですよ。
TileListのスクロールバーをユーザーが操作するとTypeError例外が
発生することがあるのも、Collection型のデータプロバイダが使われていない
のが原因であることがあります。あと、Bindableなデータプロバイダの
場合にも、Collection型に参照を入れる必要があったり・・・
>>204 SDK追って頂いてありがとうございます。
元配列壊す原因がわかってすっきりしました!
なんでこんな処理しているかは気になりますが
時間が出来たときに自分でソース見てみます。
>>207 Array型をDataProviderにすると壊すのは初耳でした。
Bindableにしておけば大丈夫と思い込んでいました。
確かにArrayCollectionにしてからのほうが良い
という記述は見たことがあったんですが…気をつけます。
しかしまぁ、Adobeはどうしてこんな仕様にしたのか…
こうするしかないならマニュアルに明記してよ〜と思いました(^^;)
209 :
Now_loading...774KB :2008/04/09(水) 15:05:24 ID:LnrF/hd9
CS3のActionScript3で質問です。 Flash内にyoutube動画を埋め込む方法を教えてください。 TextFieldにhtmlTextで埋め込みtagを入れても表示されなかったです。
210 :
Now_loading...774KB :2008/04/09(水) 19:37:42 ID:fERedLVw
212 :
Now_loading...774KB :2008/04/09(水) 23:20:39 ID:cIa7espc
ひどいなこりゃ
215 :
Now_loading...774KB :2008/04/10(木) 14:39:42 ID:o+KmseN8
中国の婦警の丁虹と言う人の画像はどこにありますか? 探しても見つからないのでお願いします。
>>214 勉強になった!Thx!!
APIのドキュメント見てみたんだけど、リクエストヘッダに
ID放り込んでRESTでパラメータにAPIの通りに入れれば、
レスポンスがXML形式のフィードになってる、っつう寸法ですね。
これなら思ったより楽チンかも。
1.swfの>ボタンを押すと2.swfに 2.swfの>ボタンを押すと3.swfに、<ボタンを押すと1.swfに というような自分自身を別swfに切り替える方法を FlashMXまでのやり方で教えていただけないでしょうか this.LoadMovie("./3.swf",this); を2.swfの>ボタンのリリースに仕込んでみましたがうまく行かず…
とりあえずthisにしたらボタンの中に読んじゃうから _rootに読まないといけないんじゃないかな
お返事ありがとうございます ごめんなさい、thisでもswfからswfを読み出すだけなら出来たみたいです プロジェクタ形式のexeで実験してたせいでうまく行かなかったようです 改めて質問として、プロジェクタ形式のexeから< >のボタンなどで swfを切り替えて読み出すにはどうしたら良いでしょうか… 最初に実行するプロジェクタファイルから紙芝居的にswfをめくっていくアプリを想定しています
すみません、自己解決しそうです プロジェクタでのLoadMovieはにバイト文字を含んだパスを読み込めないようですね 解決方法として体験版FlashCS3からFlashPlayerだけ貰ってきて それでプロジェクタを作ると大丈夫、と発見しまして 現在ダウンロード中です、試して結果報告します
>>220 記憶があやふやだから、当てにせず聞いて貰いたいんだけど、
プロジェクタの場合、
"./3.swf"じゃなく"/3.swf"で読み込めない?>2バイト文字含んでても。
見えにくいけど、頭の「.」ドット削りね。
初歩的なな質問ですみません。AS3.0です。 load(request)で読み込んだswfが最後まで再生された時にstopしておいた親swfの再生を開始したいと思い、 子swfの最後のフレームにアクションを設定しようとしているのですがどのようなアクションを設定すればいいのか分かりません。 _rootを使うのかと思ったのですがAS3では無くなったようですし分からなくなってしまいました。どなたかヒントをください。。
>>222 読み込んだswfのrootはLoader.contentプロパティに入ってるよ
AS3は_rootではなくroot
>>223 回答ありがとうございます!
親(読み込み元)SWFから、子(読み込んだ)SWFはLoader.contentで指定できるようですね。
逆の指定はできないのでしょうか?
子SWFから親のフレームに対してnextFrameというようなことをしたいのですが・・・もっと一般的でスマートなやり方があるんでしょうか
AS3とphp5で単純なデータ送受信を試しています。 flashからphpに文字列を渡し、php側整形後echoし文字列をFlashで受け取るスクリプトなのですが 結果はphpファイル内容全てをurlエンコードされた状態でFlashが受け取っています。 phpがechoした文字列ではなくファイル内容の文字列全てを受け取る結果になってしまっているのは どのようなミスが考えられるでしょうか? ネット上のサンプルプログラムを使ってためさせてもらっているので スクリプトの詳細はここで公開できず申し訳ないのですがよろしくお願いします。
>>225 ネット上のサンプルだとなぜここで公開できないんだい?
仕事のソースコードだから公開できないというならまだわかるけど
>>226 スクリプトを書いた方に公開の許可を得たわけでもなく
他人様が書いたものを勝手に二次配布をしたことにあたらないか心配してのことです。
ここでサンプルが公開されている閲覧先のアドレスを貼り付けるのも妥当かどうか悩みました…
考え無しに軽率な行動を取ってはいけないと固まってしまいましたが公開しても問題がなさそうでしょうか?
スクリプトを全く提示していないので大雑把な状況説明と、それを元に考えられる可能性をお聞きできればと思いあのような形になりました。
>>227 そんな事で文句を言う人間がサンプルなんて作るわけないと思うが
ていうか、そのサイトの中の人に聞くのが(r
>>228 サンプルサイトをいろいろ回って「二次配布厳禁」等の他所での公開を禁止する
但し書きを見たことがある経験上、過敏になっているのかもしれません。
製作者に聞けと言われたうえで再度聞くのも失礼かもしれませんが
スクリプトの貼り付けか、アドレス提示をしても問題なさそうでしょうか?
>>224 子から親は
子の root.parent.parent で親のstageにアクセスできるよ
>>229 アドレス貼り付ければ回答早いと思います。
>>232 そもそも、comってなんぞや?
っていうPHPのErrorが吐き出されていますよ。
そのままのソースでは再現できていない状況ですね。。。
>>232 >variables.com = "こんにちは";
この定義づけで後にFlashからPOST送信されているというわけではないということですか?
レス番号を間違えました
>>235 trace( vars.comp );すると、
undefined.
trace( request.data );すると
com=%82%B1%82%F1%82%C9%82%BF%82%CD
ここがポイントかもしれませんね。
PHP側で
//↓変数を受け取る
$comment = $_POST['com'];
変数が受け取ることが出来ていないようです。
>>236 phpの送信及びFlashの受信のところばかりを疑っていましたが
その一歩手前のデータ送信からダメだったのですね。
flash送信からphp受信の部分を努力しなおします。
ありがとうございました。
すみません。AS2を勉強していて、そろそろクラスの勉強をしたいんですが、なにかいい本はないでしょうか。 Action Script スーパーサンプル集と言うのを読んでいるんですが、 初歩的なスクリプトはみっちり説明しているくせに肝心のクラスや、コンストラクタでの変数の動きをまるっとスルーするんだ… NaviFrameクラスってなんだよ…
>>238 AS3じゃなくて?
普通にクラスとかOOPならJava系の入門書が腐るほどある
>>230 ありがとうございます!
無事動かせました!本当に助かりました
241 :
Now_loading...774KB :2008/04/14(月) 12:31:43 ID:xkpYHClP
242 :
238 :2008/04/14(月) 12:33:09 ID:LNI4Vn49
>>239 なんせhtmlもちょっと聞きかじったくらいで、フラッシュだけ勉強しているもんで
OOPとかJAVAとかなにがなんだかさっぱり…
243 :
Now_loading...774KB :2008/04/14(月) 13:20:02 ID:gTceVOsL
質問お願いします。 cs3 ビスタ AS2でフラッシュを作成しています。 頭にロードのバーのムービークリップを作ったのですが、 下のようなプログラムだと止まってしまいました。 どこかおかしいところをご指摘いただけますでしょうか・・ onClipEvent (load) { total = _root.getBytesTotal(); } onClipEvent (enterFrame) { loaded = _root.getBytesLoaded(); percent = int(loaded/total*100); text = percent+"%"; gotoAndStop(percent); if (loaded == total) { _root.gotoAndPlay(2); } }
244 :
243 :2008/04/14(月) 14:11:02 ID:gTceVOsL
あーすいません、ケアレスミスでしたw 自己解決しました
AS3に慣れてくると、いかにAS2のソースが汚いか分かってくるね
246 :
241 :2008/04/15(火) 17:58:01 ID:InwtgvVn
ダメだマジでわからん。 xml引っ張ってきても、タグとか再生回数がわかるくらいで。 肝心のFlashでYoutubeを再生する方法がまったくわからん。 誰か本でもサイトでもいいから教えてください。 出来ればサンプルがあるとすごい嬉しいんだけど。
プロシージャ型プログラムの基本をちょっとかじっただけの知識で、 OOPはこれからなのですが、ActionScript3.0で var i:int = 10; var i:int = new int(10); 上記二つってまったく同じですか? (上は値渡し、下は参照渡しに見えなくもない) int や uint がクラスなら Int Uint(頭文字) って表記しないといけないんでね? 偉い人アドバイスよろしく頼みます。
>>248 int,uint,Number,Boolean,Stringは、プリミティブ型といって、クラスではない。
プリミティブ型は全て値渡し。
>>248 同じ
intはクラスだけどほかの言語に合わせるために小文字にしたんじゃないかな?
でもプリミティブのように振舞うから意識しなくていいと思う
251 :
248 :2008/04/15(火) 23:48:42 ID:16aEUiFd
252 :
まい :2008/04/16(水) 00:19:19 ID:VlSJ57Mz
ウェブカメラで、身体の動作を検知して 画面上のキャラクターを動かすみたいなことをしたいのですが、 (右手をあげると、キャラクターの右手もあがる。というような。) サンプルコードなどあれば教えていただけますでしょうか。
アクションスクリプト3を本気で勉強したいのですが、 おすすめの本はありますでしょうか。
よろしくお願いいたします winXP flash8 As2.0 親_mc内の異なるレイヤーにmcを2つ置き、下のレイヤーに置いたmcを ドラッグ&ドロップできるようにしてあります。 そこで、上のレイヤーに置いたmcをドラッグ&ドロップさせたmcの上に 追従させたいのですがどうも上手くいかなくて悩んでいます。 あと、下になるmcのサイズを拡大縮小させた場合にも、 上になるmcも同じように拡大縮小させたいので、 そちらの方もお教え頂ければ幸いです。 ぜひよろしくお願いいたします。
>>252 まず画像認識がどういうものかを勉強しましょう
>>253 Essential ActionScript3.0
あとはヘルプのサンプル読むのが良いと思う
>>254 どういうASを書いてるのかが解らないのでなんとも言えない
>>252 opencv のソースを読んで理解したあと移植すればいいと思うよ。
サンプルコードもいっぱいです。
258 :
Now_loading...774KB :2008/04/16(水) 13:27:12 ID:TWbBEt2z
ウェブカメラで画像認識して、 そのカメラで投影されている映像自体は非表示にすることは できないのでしょうか。
259 :
254 :2008/04/16(水) 15:50:50 ID:9GjoC7au
先ほど質問したものですが _x _y _xscale _yscale で事故解決できました。 ありがとうございました。 また質問なのですが As内で同じようなパスを記述することが多いので簡単にできないか 試行錯誤中です。 _root.Game_mc.TipsCnt_mc.tips_group_mc.tips_01_mc._visible = false; _root.Game_mc.TipsCnt_mc.tips_group_mc.tips_02_mc._visible = false; _root.Game_mc.TipsCnt_mc.tips_group_mc.tips_03_mc._visible = false; ・・・・ var Pass:String = "_root.Game_mc.TipsCnt_mc.tips_group_mc."; いろいろ調べてここまではやってみたのですが、この変数を パスにつなげる方法が上手くいきません・・・ ご教授よろしくお願いいたします。
>>259 forループと配列アクセス演算子で検索。
誤解してるかもしれないけど、長々としたパスがどうにかしたいってだけなら var path:MovieClip = _root.Game_mc.TipsCnt_mc.tips_group_mc; path.tips_01_mc._visible = false; path.tips_02_mc._visible = false; path.tips_03_mc._visible = false; か with( _root.Game_mc.TipsCnt_mc.tips_group_mc ){ tips_01_mc._visible = false; tips_02_mc._visible = false; tips_03_mc._visible = false; }; とか。連番で非表示にしたいのなら var length:Number = 3; for( var i:Number=0;i<=length;i++ ){ var n:String = i.toString(); if( n.length<1 )n="0"+n; _root.Game_mc.TipsCnt_mc.tips_group_mc["tips_"+ n +"_mc"]._visible = false; }; で、インスタンス名に規則性がないなら var ref:MovieClip = _root.Game_mc.TipsCnt_mc.tips_group_mc; for( var i in ref ){ ref[i]._visible = false; }; でも、こうすりゃいい事でないかしら? _root.Game_mc.TipsCnt_mc.tips_group_mc._visible = false;
262 :
254 :2008/04/16(水) 23:08:09 ID:9GjoC7au
>>260 検索してたらなぜか肌色サイトに行きついた・・・
>261
思わず、速攻でプリントアウトしてしまいました。
とても為になる情報をありがとうございました
すみません、質問です。 現在、本で勉強している者ですが、 flaファイルに var target_mc:MovieClip = illust_mc; target_mc.stop(); var loop:Boolean = true; var naviObj:NaviFrame = new NaviFrame(target_mc, loop); 〜〜 と記述して、 asファイルに class NaviFrame { var mc:MovieClip; var loop:Boolean; function NaviFrame(target_mc:MovieClip, loopMode:Boolean) { mc = target_mc; loop = loopMode; } 〜〜 と記述している場合、 フラグ用変数loopModeの真偽設定はこのスクリプト内のどこでやっているんでしょうか。 もしかしたら、もの凄く見当外れな事を聞いているのかもしれないのですが…
>>263 NaviFrameのコンストラクタ
コンストラクタとはクラス名と同名の関数の事で
new ClassA( A, B )と生成した場合
ClassAというクラスのClassAという関数が実行される。
つまり
var naviObj:NaviFrame = new NaviFrame(target_mc, loop);
この時の「loop」がfunction NaviFrameの第二引数になる
265 :
263 :2008/04/17(木) 00:54:44 ID:ekMq5WBA
>>264 ご回答ありがとうございます。
つまり、flaファイルの方で
var naviObj:NaviFrame = new NaviFrame(A,B);
と記述して、asファイルの方で
function NaviFrame(C, D)
と記述すると、
CにAが代入され、
DにBが代入される。(名称がなんであろうが。)
ということでしょうか。
変数の名称が中途半端に被っているので意味が分かりませんでした…
すいません質問なのですが 同じ階層内にMovieClip●とMovieClip▲を並べて置き MovieClip●をドラッグさせると、MovieClip▲が同じように動くという ものを作っています。 一応、MovieClip●に onClipEvent (enterFrame) if(press){ ・・・・ } と書いてドラッグ可にして、MovieClip▲に onClipEvent (enterFrame) { this._x = _root.●_mc._x; this._y = _root.●_mc._y; } と書いて同じ動きをさせいるというのはできたのですが、 できるだけCPU的に低負荷でレスポンスの良いものを 作りたいと思っています。 なにか良い方法があればお教え願いたいです。 ActionScript 2.0 です。
>>266 mousedownしている時だけ判定するというifとか、フラグをつかったらいいんじゃないかな。
>>266 パッと見だけでいうと、
・267の言うように、常時じゃなくマウスボタン押されている時だけ処理にする。
モノによってはenterFrameじゃなくてマウスのイベントとかでもいい場合もある。
・処理は各MCに個別に書くのではなくできれば一ヶ所にまとめて書く
というところですか。
質問
MCにコンストラクタって作れない?
リンケージ名と同じfunctionを1フレーム目に作ると
「定義が重複しています」とか出てくるんだけど。
>>268 onClipEvent(load){
}
でコンストラクタのかわりになるかな?
>>270 ならないというか、結構、あぶない経験がある。Macで。
初歩的な質問ですみません、プログラムの効率化の話なのですが 複数あるメニュー項目MCをActionscript3.0でマウスオーバー、クリック時に処理させたい(要するにASでボタンを作りたい) m01,m02,m03…という項目があるとします。そこで m01.buttonMode=true; m02.buttonMode=true; ・ ・ m01.addEventListener(MouseEvent.MOUSE_OVER,menuOver01); m02.addEventListener(MouseEvent.MOUSE_OVER,menuOver02); ・ ・ function menuOver01(event:MouseEvent):void { m01.gotoAndPlay("over") ;} function menuOver02(event:MouseEvent):void { m02.gotoAndPlay("over") ;} ・ ・ という風に大量のコードを用意すれば再現できるのですが、これをそれぞれ1行にするにはどうしたらいいのでしょうか functionに飛ばす時にMCのインスタンス名を渡してくれば良いいのかなと思うのですが。。
>>272 stage.addEventListener(MouseEvent.MOUSE_OVER, menuOver);
function menuOver(event:MouseEvent):void { event.target.gotoAndPlay("over") ;}
こんな感じでどうだろう
buttonMode=true; はクラス作ってコンストラクタに書くとかかね
>>273 レスありがとうございます!参考になります。
m01,m02をまとめてMC(buttons)に入れて、
buttons.addEventListener(MouseEvent.MOUSE_OVER, menuOver);
とすると他のMCのMOUSE_OVER時に呼び出さなくて済むのでより目的に近いものができそうです!ありがとうございます
特定のMCだけFPS値を弄るのってできないの? 全体書き換えるのは知ってるんだが
できないよ
なんと
>>274 コンテナとしてだけ使うならMCよりもSpriteのほうが軽くてよいぞ
279 :
Now_loading...774KB :2008/04/18(金) 13:33:00 ID:0wKOeqZ8
Aが移動したときBもAにくっついて一緒に移動するAS教えてください
>>279 文字を配置したMCの基準点を調整して
enterFrame処理の中でscaleとalphaを減らしていけばそれっぽくなるのでは?
(例えば、文字の右下あたりを基準点にして縮小していけば、左上から中心に向かっていくような感じにできる)
>>280 Aが移動した分と同じだけBを移動させていくのじゃダメなのか?
Actionscript3.0入門ノートで勉強しているのですがソートした場合の インデックス番号を調べるというのがどう考えてもわかりません。 var colorlist:Array = new Array("blue","red","black"); trace(colorlist.sort(1|8)); //出力→ 2,0,1 何故2,0,1に??? 値を並び替えたら"black","blue","red"の順になり、出力は1,2,0になるのでは? もしかしたらものすごい勘違いしていて馬鹿な質問しているかもしれませんが 誰かわかる方いたら教えてください。
>>283 Aが移動する前にAの座標とBの座標の差を取得して
Aが動いてる時はその差をBの座標に足せばいいんでない?
>>282 0 1 2
blue red black
↓
2 0 1
black blue red
>>282 元の配列のインデックス番号の
2(black), 0(blue), 1(red)
という結果になるっつー意味だからそれでいいんじゃね?
ビットマップ画像を奥行きのある台形に変形(3D風に回転)するのって無理なんですかね?
ちょっとアドバイスが欲しい かなりの数のボタンを表示させたり非表示にさせるフラを作っているんだが _visible=false,trueを使えばいいのか、タイムラインで1フレを空にして2フレに ボタンを入れ子にして、gotoで表示、非表示させるかで悩んでる なにせ数が多いので、わずかでもいいから軽量化したいのだが どっちがいいんだろうか・・ attachmovieがベストなんだろうけど、ちょい理由があって使えない.。
>>287 奥行きのある台形で3Dってわからんぞそれw
jpgでもうp汁
>>288 かなりの数ではわからん。具体的に100個とか書く。
attachmovieの使えない理由も書く。
>>289 まだ製作途中なので最終的な数はわからんが
今のところ120個ほど、たぶん300個ほどになるかも。
attachmovieを使えない理由は
最終的にレイアウトが決まったらattachmovieにしてもいいんだけど
まだまだボタン位置等が変わる可能性が高いので
オンステージ上で作業できる方がいいかなと・・・
こんな感じでどでしょうか。
>>291 軽量化したいならvisible使う方が良いよ。
空キーフレーム作るって事はMC1個あたりのフレーム数が増えるって事だから当然容量は増える。
ちょっと面倒な方法だけど可視的なattachMovieの使い方は
attachMovieで最終的に作成する完成型のMC「McDisplay1」を作っておいてリンケージ
その中のボタンに名前を付けてMcDisplay1をattachMoviesして座標取る
// 座標呼び出し用
attachMovie("McDisplay1", "McDisplay1", 深度 );
// ボタン生成
attachMovie("Button1", "Button1", 深度 );
Button1.x = McDisplay1.Button1.x;
Button1.y = McDisplay1.Button1.y;
// 元になったMCを消す
McDisplay1.removeMovie()
こうしておくとステージでMcDisplay1を調整すれば
attachMovieで作る方も変わるから調整が多い時は楽だよ。
重いのがダメだったら最終的にMcDisplay1から座標取得している部分を
数値の決め打ちに置き換えればいいかと
Aが移動した分と同じだけBを移動させていくAS教えてくだしあ><
同じムービークリップに入れるだけじゃないか?
>>290 神すぎる!!!
そんなやり方があったとは
●Flash MX ●ウィンドウをリサイズした時にcontainer_mc(980×600)を 左右方向の中央に移動するようにできました ●最初(ウィンドウをリサイズしないとき)からcontainer_mcを 左右方向の中央に置きたい よろしくおねがいします。 Stage.align = "TL"; Stage.scaleMode = "noScale"; sizeListener = new Object(); sizeListener.onResize = function() { _root.container_mc._x = Stage.width / 2; _root.container_mc._y = 300; }; Stage.addListener(sizeListener);
Stage.align = "TL"; Stage.scaleMode = "noScale"; sizeListener = new Object(); sizeListener.onResize = function() { _root.container_mc._x = Stage.width / 2; _root.container_mc._y = 300; }; sizeListener.onResize(); Stage.addListener(sizeListener);
>>298 ありがとうございます!
ウィンドウ幅がcontainer_mcの980px以下の場合には
container_mcの左端がウィンドウの左端で止まるようにしたい
(container_mcは全幅を表示したい)ので、以下のように
ステージサイズで分けましたが、これでいいでしょうか?
期待した動作にはなっているのですが、心配なので
Stage.align = "TL";
Stage.scaleMode = "noScale";
sizeListener = new Object();
sizeListener.onResize = function() {
if (Stage.width > 980) {
_root.container_mc._x = Stage.width / 2;
} else {
_root.container_mc._x = 490;
}
_root.container_mc._y = 300;
};
sizeListener.onResize();
Stage.addListener(sizeListener);
>>299 いいと思うけどマジックナンバー(具体的な数字)はなるべく使わないほうが後々変更したとき楽になるよ
Stage.align = "TL";
Stage.scaleMode = "noScale";
sizeListener = new Object();
sizeListener.onResize = function() {
if (Stage.width > _root.container_mc.width) {
_root.container_mc._x = Stage.width / 2;
} else {
_root.container_mc._x = _root.container_mc.width / 2;
}
_root.container_mc._y = _root.container_mc.height / 2;
};
sizeListener.onResize();
Stage.addListener(sizeListener);
>>300 ありがとうございます。
例示していただいたようにMCの数値を使うようにします。
●Flash MX ●以下をフェードイン版にしたい img1_mc.onEnterFrame = function() { img1_mc._alpha -= 5; if (img1_mc._alpha <= 0) { img1_mc._visible = false; delete img1_mc.onEnterFrame; } };
>>302 img1_mc._alpha = 0;
img1_mc.onEnterFrame = function() {
img1_mc._alpha += 5;
if (img1_mc._alpha >= 100) {
delete img1_mc.onEnterFrame;
}
};
>>303 ありがとうございます
フェードインもフェードアウトもできるようになりました
swapDepths(0); て何のアクションスクリプトですか?
ヘルプ調べろハゲ さもなきゃ黙ってハゲ続けてろ
>>305 リファレンスガイドより
swapDepths (MovieClip.swapDepths メソッド)
public swapDepths(target: Object ) : Void
ムービークリップのスタッキング順序、つまり深度 (z 順序) を、target パラメータに指定したムービーと入れ替えます。
または、target パラメータに指定した深度に現在置かれているムービーと入れ替えます。両方のムービークリップは、同じ親ムービークリップに属している必要があります。
ムービークリップの深度を入れ替えると、あるムービークリップを他のムービークリップの前面または背面に移動させるという効果が得られます。
このメソッドを呼び出すときにムービークリップがトゥイーンしている場合、トゥイーンは停止します。
サブクラスを作成することにより、MovieClip クラスのメソッドおよびイベントハンドラを拡張できます。
対応バージョン : ActionScript 1.0、Flash Player 5
パラメータ
target:Object - このパラメータは、次のいずれかの形式で指定できます。
ムービークリップを配置する深度を指定する数値。
別のムービークリップインスタンスを指定するインスタンス名。指定したムービークリップインスタンスとこのメソッドの適用先ムービークリップの深度が入れ替わります。両方のムービークリップは、同じ親ムービークリップに属している必要があります。
例
myMC1_mc.onRelease = function() {
this.swapDepths(myMC2_mc);
};
myMC2_mc.onRelease = function() {
this.swapDepths(myMC1_mc);
};
自分でAPIリファレンスを調べる癖をつけたほうがいいよ
As2.0にて製作しています。 ボタンに書いたコードを_rootのキーフレームに書いて まとめたいと思っています。 _root.01_btn に on (press) イベントを行わせている場合には キーフレームにどのように書けばいいのでしょうか? キーフレームにまとめているのをどこかのサンプルで見たのですが 忘れてしまって・・・>< あと、_visible=falseで不可視としているMcに onClipEvent (load) で何かさせる際、loadされるのは_visible=trueになってからなのでしょうか? ぜひお知恵をお貸しくださいです
>>308 ヘルプでMovieClipのonReleaseまたはonPressのページを読む。
下の質問は意図がよくわからないが、やってみれば結果はわかるんじゃないか?
つか、どこに_visible=falseを書いているかにもよるわけだが。
たしかonClipEvent(load)はMCの描画の前に処理されたと思うんで
最初から_visible=falseにしたいなら、onClipEvent(load)内に書いておけばいいのでは?
ObjectAがObjectBの参照を持っていて、ObjectBはObjectCの参照を持っています。 ObjectAからObjectBの参照を消したら、ObjectCはGCの対象になりますか? また、BとCが相互参照していた場合は永久的にGCされないのでしょうか?
Adobe AIRでOS標準のメニューバーを使う方法がわかりません!!! 出来るのかどうかもわかりません!!! 教えてください!!! OS標準のスクロールバーを使う方法も教えてください!!! よろしくお願いします!!!
>>310 ObjectBがGCされるからObjectCへの参照が無くなってObjectCがGC対象になる
二個目は分からんが多分されない。
そもそもの仕組みに問題があると思うよそれ
>>310 >>313 今までは rc 使ってたから循環参照されてると回収できなかったけど、
Flash9からはmark-sweep gcになったから問題無いんじゃね?
vmの仕様でgcの方法まで指定されてるかどうかは調べてないが。
315 :
246 :2008/04/23(水) 18:05:27 ID:CHb6yJ8x
たびたび、すいません。
FlaCS3のAS3でYoutubeのFLVが再生できません。
ビジュアルリファレンスや、ネット上のサンプルスクリプトを探してもローカルFLVの再生ばっかりで…
var ytv:Video = new Video(320,240);
var nc:NetConnection = new NetConnection;
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ytv.attachNetStream(ns);
addChild(ytv);
//ns.play("
http://www.youtube.com/v/1upk1wOem0Q ");
//ローカルのflvなら再生できるけど、上記のURLを突っ込んでもダメだった。
ns.play("test1.flv");
var meta:Object = new Object();
ns.client = meta;
申し訳ないけど、ぜひ教えてくれると助かります。
●Flex builder3 ●外部テキストファイルを読み込んでテキストエリアに表示 ●1行ずつ読み込んで配列に格納したい 必要かわかりませんが、ただ読み込むだけのコード private function initApp():void { var url:String = "dejiko.dxf"; var request:URLRequest = new URLRequest(url); var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onLoadComplete); loader.load(request); } private function onLoadComplete(event:Event):void { var s:String = event.target.data as String; a_txt.text = s; } 1行ずつ読み込む方法、よろしくおねがいします。
319 :
318 :2008/04/23(水) 20:57:41 ID:/S+Q7OS5
コードに誤りがw "dejiko.dxf";→"name.txt"; 連投スマソ
>>318 1行というのが、読み込むテキストファイルがすでに
バンバン改行されているのなら、次のような配列化が可能かなぁ。
private function onLoadComplete(event:Event):void{
var s:String = event.currentTarget.data as String;
var s_arr:Array = s.split("\0x0d\0x0a");
}
ただし、これは改行がCR+LFの場合なので、適当に変えてみてくれろ。
指定文字数で改行したいってのは、UTF-16使って全角と半角を
判別しながら分割していく感じになるかも。まぁ、ぶっちゃけ面倒。
ボタンのlabelに収まるように分割、とかだったら、renderWidth使って
人間の目に見えないうちにlabelを書き換えちゃうというのもアリか。
321 :
Now_loading...774KB :2008/04/24(木) 00:00:51 ID:LHohYRCS
_rootにsampleというムービークリップインスタンスを置き、フレームに以下のスクリプトを書きました。 _root.sample.onRollOver = function(){ timerObj = new Object(); timerObj.timeout = function(){ root.sample._y++; }; var timerID = setInterval(timerObj, "timeout", 1000); } _root.sample.onRollOut = function(){ clearInterval(_root.timerID); }; stop(); オンマウスで、一定時間間隔の処理の繰り返しを開始し、マウスアウトでその繰り返し処理を停止したいのです。 オンマウスの処理の方は動きましたが、インターバルのクリアがうまく動きません。 正しくはどう書けばいいのでしょうか?
>>321 >var timerID = setInterval(timerObj, "timeout", 1000);
なんでここだけvarつけてローカル変数にしてんだ?
理解しました・・・ ありがとうございます
画面に既に描画されている数字、アルファベット、文字列を 一定の時間(タイムランで指定した所で)ランダムで回転しながら右方向に散る感じに飛ばすにはどう記述すればいいのでしょうか。 こういった処理はモーショントウィーンでやったほうがいいのでしょうか。 製作環境はFlashCS3、AS3です
>>324 描画されているのはMCとかSpriteなのか?それによって扱いが変わる
とりあえずランダムって要素がある以上ASの方が良いと思うけど
ステージ上でタイムラインを手動で動かして動作確認したいというならASは不向き
326 :
315 :2008/04/24(木) 14:02:37 ID:OSDKlZX2
>>317 ありがとう。
でも、AS2で英語って、自分にはレベル高すぎてよくわからない…
VideoDisplayってクラスを使えば簡単らしいのだが、FlashCS3には無いっぽい。
他の人はFlashでyoutubeプレイヤーをどうやって作ってるんでしょうか?
327 :
315 :2008/04/24(木) 18:16:25 ID:OSDKlZX2
>>326 質問)AS2わかりません、英語わかりません、みなさんどうやってますか?
答え)みんな勉強してAS2わかるし、リンク先程度の英語も勉強して理解出来るようになってます
レベルが高すぎと思うなら諦めるか必死で勉強してください
329 :
Now_loading...774KB :2008/04/24(木) 22:41:04 ID:ma4Ril87
おまいら全員日本語しゃべれよw
英語分からないならソース見ればいいじゃんって思うんだけどなあ
>>326 どうしても分からなかったらほったらかしにして、
他の勉強をしているうちに気がついたら出来ていることもあるからのんびりやればー?
333 :
326 :2008/04/25(金) 09:36:55 ID:4XYaLnJl
>>328 言いたいことはわかるけど、AS3が判らなくてAS3の質問をしてるのに
サンプルがAS2でAS2を勉強してくださいって言われても。
必死で勉強して下さいで終わらすなら質問スレの意味ないよね?
>>333 では、詳しく教えてあげてくださいね。文句はそれからだろw
>>335 3.0のサンプルあれば最初から投げてるよw無いから言ってるんだって解ってくれ。
>>336 無いなら無理にレスしなくてもいいんでないかね
それが参考になったり役立つ場合も、人によってはあるだろうし 何にもレスがないとそれはそれで騒ぐ人もいるし。
初歩的なこと聞いてるんじゃないんだし 2.0わからんって言うだけじゃ甘えすぎだろ
2.0
342 :
Now_loading...774KB :2008/04/25(金) 13:21:23 ID:kR8YpTaD
actionscript初心者でスマソなんですが質問させてください。 シンボルがボタンでオーバーで色が青に変わる物があるとします。(btn_A) これをムービークリップ(mc_A)をrollOverしたら 「btn_A」も青色に変わるというのは可能でしょうか? いくつか検索はしてみましたが 検索ワードが悪いのかうまく検索にかかりません。
flashしょしんしゃです 脱出ゲーム作ってみたいのですが どこか参考になるサイトありませんか?
345 :
Now_loading...774KB :2008/04/26(土) 00:56:43 ID:QnZypr8w
AS2で、_nameがhogeのとき、 newName = _name + "_hoge"; _parent.newName.gotoAndPlay(1); として_parent.hoge_hoge.gotoAndPlay(1)として動かしたいのですがうまくいきません。。。
ドットアクセス演算子じゃダメでしょ
>>345 newNameはStringだよね。つまりは変数名で参照ではない。使うんなら
_parent[newName].gotoAndPlay(1);
_parent["hoge"+"_hoge"].gotoAndPlay(1);
のように連想配列で参照自体を指定する
349 :
Now_loading...774KB :2008/04/26(土) 13:10:23 ID:cUhRo2tx
すません初心者です as3です。 リンゲージしたMCをfor で10個つくったものをaddChildで別の1つのMCの中に。それをマウスのクリックで e.target.nameをトレース すると instance20 みたいな名前しかとれないんですけど、ちゃんとした名前を取るにはどうしたらいいのでしょうか? for (var i:Number = 0; i<10;i++) { var myMc:MovieClip = new MC(); myMc.x += i*20; MC2.addChild(myMc); addEventListener(MouseEvent.CLICK,myfun); } function myfun(e:Event) : void { trace(e.target.name); }
>>349 newした時にnameプロパティを設定してあげればいんじゃね
351 :
Now_loading...774KB :2008/04/26(土) 19:16:19 ID:hnck43Gh
_rootの1フレーム目で外部ファイルのswfやjpgファイルを読み込んで変数に入れておき、 _rootの2フレーム目以降でこの変数からswfやjpgを取り出してMCにアタッチして使えたらいいなと思うんだけど こういうことは可能ですか? 可能なら外部ファイルの読み込みが_rootの1フレーム目で全部出来るので ディスクアクセスが減って軽快になるんですが・・。 よかったヒント下さい!><
ヒント:ローディング画面
>>353 ありがとうございます!、それでググってきます!><
355 :
352 :2008/04/27(日) 13:12:27 ID:D4plSMY2
1フレーム目で読み込むとこまでは出来た。 でもそれを2フレーム目で表示させる方法が分からない>< 誰か1フレーム目で変数に読み込んだjpgファイルを2フレーム目でその変数から取り出して表示するサンプルくれ><
356 :
352 :2008/04/27(日) 14:08:42 ID:D4plSMY2
もういいや、諦める。 スレ汚しすまんかった。
テキストボックスに入力した値の数for文で繰り返すってのを作ったんだけど 入力された値が20以下でないと動作しないようにしたいんだけどどうすればいい? イフ文使うのは分かってるんだけど、どう書けばいいのか分からない
if(textBox.length>20)return;
CS3のas3.0です、書いているのはタイムライン1フレーム目です シェイプを10×10に貼り付けて、そのシェイプを押したら消えるというのを考えていたのですが 表示されたシェイプをクリックしてもvisibleやtraceは無反応です、特にエラーも出てはいないのですが・・・ シェイプをクリックすると消えるという処理を動作させるにはどう訂正すればよいのでしょうか、お願いします var container:Sprite = new Sprite(); addChild(container); var pieceArr:Array = new Array(); for(var i:int = 0; i<10; i++) { pieceArr[i] = new Array(); for(var n:int = 0; n<10; n++) { var piece:Shape = new Shape(); pieceArr[i][n] = piece; pieceArr[i][n].graphics.beginFill(0x333333); pieceArr[i][n].graphics.drawRect(n*15, i*10, 12, 7); pieceArr[i][n].graphics.endFill(); pieceArr[i][n].addEventListener(MouseEvent.CLICK, pieceClick); container.addChild(pieceArr[i][n]); } } function pieceClick(event:MouseEvent):void { trace("OK"); event.target.visible = false; }
>>359 Shapeはマウスクリックとかのイベントはサポートされてないから単純な絵を描画するだけのときにしか使えない
マウスクリックイベントを使うならSpriteにしたほうがいい
362 :
359 :2008/04/27(日) 19:17:24 ID:EReUxWVc
>>361 spriteに訂正ですんなり動きました。ありがとうございます!
Flexでつくってあるサイトってどこかにある? 見かけない。
364 :
352 :2008/04/27(日) 23:15:42 ID:D4plSMY2
よくある事
俺も5年くらい前にはまったな。1時間くらい。
>>364 新しい言語触る時はその言語の仕様でよくある事だよ。
「FLASH 仕様」とかでぐぐって今回みたいなものを事前に知っておくと良いかと
なるほど、サンクス。
AS3でNetStreamで受け取った映像をBitmapとしてキャプチャすることは不可能ですか?
俺はloadClipではまったな なぜ素直に渡したMCをロードしたMCに置き換えてくれないのか…
371 :
Now_loading...774KB :2008/04/29(火) 13:20:18 ID:8diqtJKl
質問させてください。 AS3.0で、MovieClipのタイムラインに_up、_over、_down、とラベルをつけて ボタンアクションをつけると、自動的にそこへ移動するという、 いわゆる「MovieClipボタン」を実装したいのですが、 その「MovieClipボタン」の中にMovieClipを入れ子にするとうまくいきません。 やりたいことは、mcにロールオーバーすると、そのmcのフレームが"_over"に移動し、 そこに配置されている子mcのタイムラインが再生されてトゥイーンで色が変わるというものなのですが、 子mcの中にタイムラインがあると、下記のscriptを書いても クリックしてもrelFuncが実行されません。どのようにすればうまくいきますでしょうか? mcのbuttonModeはtrue。 子mcにはmouseEnabled=falseを記述しています。 // MovieClipボタン名:_mc _mc.buttonMode=true; _mc.addEventListener(MouseEvent.CLICK,relFunc); function relFunc(event:MouseEvent):void { trace("ok"); }
>>371 試しに作ってみたけど問題無く動くよ?
MC名とか簡易だけどどこか同じ変数名重複してたりしてない?
373 :
Now_loading...774KB :2008/04/29(火) 13:44:02 ID:8diqtJKl
ありがとうございます。 変数名などの重複はありません。 ロールオーバーでトゥイーンで色は変わりますが trace("ok")がされません。
374 :
fla :2008/04/30(水) 20:20:20 ID:nVII3Kas
初心者ですがよろしくお願いします。 flashからjavascriptの関数を呼び出したときにflashに持っている変数の値を javascriptへ送信したいのですがflashではどう記述していいのかわかりません どなたか教えていただけませんか? flashでjavascriptを呼び出すには以下でできたのですが。。。 flash側---------------------------------------- on (release) { getURL("set()"); } javascript関数---------------------------------- function set(set1,set2) { document.forms[0].elements[0].value = set1; document.forms[0].elements[1].value = set2; }
>>374 getURL("set('abc','def')");
AS3 FlashCS3で開発してるんだけど Lorderを使って読み込んだswfの再生が終わったというのを判断したいんだが 読み込まれるswfのrootに適当な変数作って再生が終わったらフラグ立てて それを読み込む側のswfが常に監視しててって方法くらいしか思いつかないんだけど もっといい方法ある?
日本語って難しいのな
framesLoadedなんて便利なプロパティがあったのね THX!!解決したよん
>>378 それってロードされたかどうかの判別の事で、再生が終わったということじゃないんじゃないかな
>>379 ごめんtotalFramesだった…。
もう一つ聞きたいんだけど、指定したディレクトリ内のファイル一覧を取得するのに
便利な関数ってある?
Perlでいうとこのglob();みたいな
ASでは、ディレクトリ一覧なんか取得できないんじゃ... ※AIRならべつかも
AIRもアウト
383 :
Now_loading...774KB :2008/05/01(木) 18:22:43 ID:i3WuXav7
んじゃあPerlでディレクトリ一覧取得して Flashに渡すような仕組みにしてみるわー 一生を無駄にして調べるとこだったよ!さんくす!
swfに埋め込んだ動画をLoaderを使って読んで再生して 再生が終わったらloader_obj.unload();して読み込んだswfを破棄しようとしたんだが 再生したswfの音がずっと鳴り続けちゃうんだけど、これは破棄できてないの? お手上げだっちゃ。 みんなの意見を聞かせてちょ
再生の最後(unloadする前)にstop(); て書いてみれば?
stopで音とまったけど開放されてるのかな? 音は別なのかね?
メモリは解放されていないと思う
解放するならunloadじゃなくremoveじゃね?
null
ぽ
がっ!
textfiledのTYPEがHTMLになってるとsetTextFormat使えないのか・・。 ボタン押したら文章全体のフォントサイズを変える(大きくする、または小さくする)というのをやりたかったんだが TYPEがHTMLのときはどうすりゃいいんだこれ。 textfiled.htmltext プロパ使ってHTMLソース覗いてみたら勝手に 「size="10"」 がフォントタグに入れられてた。 これを置換してから再度textfiledにぶちこまなきゃならんのだろうか、描画が2回発生するから重くなりそう・・。 なんかうまい方法ないっすか? ないっすね、すんません。
395 :
Now_loading...774KB :2008/05/02(金) 19:06:50 ID:zet3BGhV
Flex3+ActionScript3で開発をしています。 外部ファイルをimportして使用するには、どういう記述をすればよいのでしょうか? または、どこでパス?を設定すればよいのでしょうか? (papervision1.5をダウンロードして使おうとしてます)
importの記述はpackageのすぐ下 その程度は自力で調べられる位じゃないと、PV3Dは扱えないよ
398 :
Now_loading...774KB :2008/05/03(土) 18:54:14 ID:+nrqqNp1
>>398 その程度なら自分で0から作ってるんだろ
>>398 非ポリゴン系の3Dが今となっては逆に新鮮ですな。
ふーん、新鮮なんだw
>>402 [ArgumentError: Error #2068: サウンドが無効です。] だからじゃね
>>402 ソース見てみたら、MP3ファイルの実体が入ってない。
存在しないMP3ファイルのダウンロードを試みて、おそらく
nullのdataProviderに対するid3プロパティ(getter関数)へのアクセスと
play()メソッドの実行の段階で、Soundクラスが内部的にArgumentError
例外をthrowしていると思われ。SWFと同じ階層にsongURLsとして
宣言されてる配列の中身と同名ファイルで128kbps/CBRのMP3ファイルを
置けば、そのまま動くんじゃないかなぁ。
405 :
402 :2008/05/05(月) 12:27:24 ID:FlNUhDlx
重なる2つのムービークリップへマウスベント(例えば、クリック)を 2つともに伝える方法はありますか? [例] |---------------| | A | | |---------------| | |B ● | |------| | | | |---------------| 上のように、2つ重なるムービークリップの"●"部分をクリックした際、 ムービークリップA及び、ムービークリップBの2つへクリックイベントを 通知したいです。
AS3.0です。webで拾った以下のサンプルをコンパイルすると 「パッケージをネストすることはできません」とメッセージがでるのですが 対処法を教えていただけませんでしょうか よろしくお願いします package { import flash.display.*; import flash.text.*; //HelloWorld public class HelloWorld extends Sprite { //コンストラクタ public function HelloWorld() { //テキストフィールドの生成 var textField:TextField=new TextField(); textField.text="Hello World!"; addChild(textField); } } }
パッケージをネストするようにすればいいんじゃないかな
すいません、ネストを教えてもらえませんでしょうか orz
>>407 flaファイルのフレーム1にコピペでもしてんだろw
それです orz include で.asファイルを読んでるんですが、include はそこに記述されるのと同義らしいので同じことですね・・ となると・・ Flex 2 SDK とかを利用することになるんでしょうか?
>>411 1)上記コードをHelloWorld.asとして保存
2)flaファイルのプロパティのドキュメントクラスにHelloWorldと書く
3)両方が同じフォルダにあることを確認してムービープレビュー
やっとできました 答えてくださった方本当にありがとうございました m(_ _)m これで、休みの2日つかってもうた・・・
415 :
402 :2008/05/05(月) 20:19:10 ID:FlNUhDlx
さいきんEventDispatcherとかのお勉強してイベント投げて遊んだりしてるけど そもそももともと用意されてるイベントってどれくらいあるんだ??? 一覧ページとかちょっと探してみたけど、全一覧がのってるようなサイトが ナッスィン みなさんはどうやって調べてますかいてぴー
>>416 これ見て自力で直せないのなら、ゼロから勉強しなおせ。
ctrl+Enterを押すると先のフレームが覗かれてしまうんですがctrlキーを無効にするとか出来ませんか? keyのリスナーでキーイベントを受け取ることは出来るんですが、キー入力を無効にする(無かったことにする) 方法が分からなくて・・(flash6, as2.0)
>>421 構成がよくないんだ。
コンテンツはMCにまとめて、メインタイムラインの
1フレームに配置すれば、前後のフレームに飛ばれても問題なし。
あるいは、見せたくないフレームの手前にひとつ挿入して
prevFrame()をかます手もあるが。
>>422 もう完成してしまってるから今更構成の変更は無理ぽorz
prevFrame使うとなるとgotoの番号がズレてくるし修正作業がすごいことにorz
424 :
Now_loading...774KB :2008/05/07(水) 17:21:54 ID:Qt6mCUEJ
425 :
Now_loading...774KB :2008/05/07(水) 19:03:06 ID:P2N07t8o
AC3について何か初心者のためのサイトは無いですか?
AC3って何だっけ
427 :
Now_loading...774KB :2008/05/07(水) 19:55:40 ID:P2N07t8o
AS3でした汗汗 まじすんません
初心者未満のためのサイトは心当たり無い 初心者でも前提知識ゼロからのAS3.0は厳しいと思うよ・・・WEB土方的な意味で
429 :
Now_loading...774KB :2008/05/07(水) 22:58:03 ID:P2N07t8o
CとJAVAのスキルがあってもAS3はキツいですかね? 全く違うのですか?
それなら初心者サイトなんか受講しなくても、公式リファレンス片手に開発できるんじゃないかな?
プログラム言語なんて1つ覚えれば 他は様式は違えど条件式や繰り返しなどやることは一緒で 後は言語毎に実現できる方法を調べ上げることだけなんだが JAVAとAS3の違いを調べ上げずに こんなとこで聞いている時点で論外。
C++のスキルがあれば、AS3なんてオモチャ。
本とかでしっかり勉強したほうがいいよね。 俺はサイトで済ませちゃったけど、jsの知識ならあったし。
>>431 > プログラム言語なんて1つ覚えれば
> 他は様式は違えど条件式や繰り返しなどやることは一緒で
マイナーな言語に触れるまでそう思っていた時期が私にもありました。
LISPやるまでは俺もそう思っていました。
|┃―--.、
|┃,ノノ,,;;;;;;;;ヽ
|┃ "ミ;;;;:} ジィィー‥
|┃ _,,,..、 |;;;:|
|┃ヒ''tュ_ i;;;;|
>>436 |┃ - ト'{ こんなところにも同志が‥
|┃>、 }〉}
| |||llii;;,>、 .!-'
|┃'" |
|┃゙,,, ,, ' {
|┃ ̄ _,,-"ヽ
|┃;;,..-" _ ,i`ー-
|┃ \ /★/ |
438 :
385 :2008/05/08(木) 20:34:47 ID:e4ODQzgL
439 :
385 :2008/05/08(木) 20:57:01 ID:e4ODQzgL
440 :
Now_loading...774KB :2008/05/08(木) 22:38:17 ID:e4ODQzgL
そもそもアニメーション製作ツールでプログラムとかオブジェクト指向とか迷走しているにも程がある。 とレイヤーとmcの入れ子だらけのフラッシュを眺めながらぼやいてみる。
443 :
Now_loading...774KB :2008/05/10(土) 01:59:19 ID:XMn7Y+2L
てかオブジェクト指向って良くわかんないけど、 困らねぇ?なんかいちいちクラス作んなきゃならなかったり メンバ変数ってクラス内でのグローバル変数みたいな感じになっちゃってるじゃん あれ使うと関数に引数渡す必要なくなったりでこんがらがるのはオレだけか。 オレだけだね。 うん。
クラスの概念が無くても正直困らない。 自作クラス使わなきゃいいだけだし。
よく言われるけど、作ってる内容、作ってるメンバーなんかで 何が最善かって変わるしな。
>>443 >あれ使うと関数に引数渡す必要なくなったり
その関数がprivateなら別にいいんじゃね
でもメンバ変数で受渡しするとその関数でどの値を必要としているかわかりにくくね?
>>443 小さいもの作ってる間は全く困らない。
大きいもの作っててもちゃんと管理できてれば困らない。
ただよく使う処理を共通関数に作っておいたり
基本構造が一緒のものはクラスにしておいたり
ちゃんと扱えば段々便利になっていく感じはするね。
AS2.0時代は新しいもの作るたびに必要な関数だけコピペしてくるのが面倒だった・・・
実のところ、スクリプトを徹底的に合理化するより 無駄を承知で一定の法則を決めて作った方があとあと管理が楽。
452 :
Now_loading...774KB :2008/05/12(月) 23:53:10 ID:3SVnLct8
As2.0を最近はじめたんですが _root.01_mc.02_mc.03_mc.04_mc._visible=false;(実際はとても長いです) このようなパスを何度も使う事が多くて、パス表記を短くする方法を探しています。 ぜひ、お教えくださいお願いします
>>452 var mc4:MovieClip = _root.01_mc.02_mc.03_mc.04_mc;
mc4.visilbe = false;
よく使うMCを一度定義した変数に格納して使い回すといいよ
454 :
Now_loading...774KB :2008/05/13(火) 01:13:34 ID:d51DpaPF
>>453 上手くいきました!
どうもありがとう m( _ )m
swfを読み込むだけじゃだめなのか・・・・? flashの中でjsは読み込めない
457 :
Now_loading...774KB :2008/05/13(火) 17:20:21 ID:6sWUXTyJ
>>456 なんとかjs読ませるいい方法ないですかね?
外部のjsなら呼べる
flash内からそのjsを操作してhtmlのどこかにそのブログパーツを表示させることは可能 中身あんまり見てないけどw ていうかコナミじゃん・・・・著作権とかは大丈夫なの?
コナミはネズミーの次にヤバイ 著作権的にね
462 :
Now_loading...774KB :2008/05/13(火) 21:02:02 ID:76VpDCLL
□□□□□□□□ □□□□□□□□ □□□□□□□□ □□□□□□□□□□□□□□□□ □□□□□□□□□□□□□□□□ □□□□□□□□□□□□□□□□ flashでテキストボックスをこのような形にしたいです。 が、無理ですよね…。 □□□□□□□□ □□□□□□□□ □□□□□□□□ □□□□□□□□□□□□□□□□ □□□□□□□□□□□□□□□□ □□□□□□□□□□□□□□□□ なので、こんな二つのテキストボックスにしようと思ってます。 で、文字が三列きたら下のテキストボックスに入っていくという方法にしたいです。 色々考えたのですが問題が。 ・macとwindowでleadingの間隔が違う。 ・フォントの幅によって入る文字数が違ってくるので文字数では無理。 htmlだと文字の回りこみが簡単にできるんですがflashだとどうすればいいのでしょうか? すいませんがお願いします。
464 :
Now_loading...774KB :2008/05/13(火) 21:45:53 ID:76VpDCLL
htmlTextでスタイルシート使ってfloatとか使っても反映されないのですが どう使用すればいいのでしょうか? いくつか試してみましたがどうにも上手くいきません。
>>443 クラスを使うことがオブジェクト指向ではない。
ムービークリップを作って使いまわすのもオブジェクト指向。
>>465 OOPの真髄はメッセージパッシングですよねわかります!
flash8を使ってるんですが、マクロ機能はあるのでしょうか?
ありますよ
>>469 ありがとうございます。
どうするとマクロ機能を使えるようになるのでしょうか?
As2.0 flash8です 300*300のステージに1500*1500の画像を配置して D&D、拡大縮小出来るようになっています 完成したのは良いのですが、D&D時、ズーム時の動きが重いので 改良しようと思っています そこで、画像を16分割ぐらいにし、photo_imgの中に タイル状に読み込み用MCを16枚並べて レイヤーの最下層に配置したhittest用のMCにヒットした 読み込み用MCだけがloadMovieにて画像を読み込み、 外れるとunloadMovieにて画像を消去できれば 少しは軽くなるかな?とか思っています。 attach、Removeも考えてみたんですが、ズーム時の座標計算で 挫折しました・・・・orz サクサク動かす良い考えがあればお教えください よろしくお願いいたします
>>471 今は_rootの座標とスケールを操作して上手く動いているという認識でいいのかな。
その処理をそのまま活かしたいならポンと置いてる画像をまずMC(ImageMcとする)にして
ImageMCの中に16分割した画像を設置、その時画像を更にMCに内包するかMCにLoadさせる。
(まぁさらにMC16個置くということ)
_root上の表示座標と合うようにImageMcの中のMCを表示・非表示切り替えすれば
今の処理のままいけるんじゃないかな。
473 :
Now_loading...774KB :2008/05/15(木) 13:43:15 ID:0bsMruNf
AS3で正規表現の変換はどうやればよいのだすか? 例えば全角英数を半角英数に変換する場合、Perlだと $str =~ tr/A-Za-z0-9/A-Za-z0-9/; なかんじの雰囲気の。 replaceだと出来そうにないんすけど。
RegExpクラス
ヽ|/ / ̄ ̄ ̄`ヽ、 / ヽ / \,, ,,/ | | (●) (●)||| | | / ̄⌒ ̄ヽ U.| ・・・・・・・・ゴクリ。 | | .l~ ̄~ヽ | | |U ヽ  ̄~ ̄ ノ | |  ̄ ̄ ̄ |
>デバイスフォントを埋め込みフォントのように扱う ようやくって感じだね。
クラスの概念がなかなかしっくりこない… 具体的にどういうときに使うんですかクラスって。
>>478 MovieClipクラスやObjectクラスやStringクラスやArrayクラスやら、
クラスって何?って人でも振る舞いを知っていれば使える。それがクラス
質問させてください。 以下のpackageを作成し、 package { import flash.display.*; //図形を表示する public class ShapeEx extends Sprite { //コンストラクタ public function ShapeEx() { //ラインの追加 var line:Shape=makeLine(0,0,0,40,0xff3333); line.x=25; line.y=5; addChild(line); } } } そして、同フォルダのflaファイルのタイムラインに以下のように記述したところ、 画面には何も表示されませんでした。。。 var test:ShapeEx = new ShapeEx(); 何がいけないのでしょうか?? flash職人3日目で挫折しそうです。。
>>480 var test:ShapeEx = new ShapeEx();
addChild(test);
その記述だとtestを作った後「testがどこに表示されるか」を指定していないことになるよ
>>481 さん
できました!
ありがとうございました!!感謝
as3.0で、クラス中のLoaderインスタンスを作り、Event.COMPLETE等のイベントを設定しているfunctionで for(var i:int=0; i<10; i++) { var loaderSprite:Sprite = new Sprite(); var loader:Loader = new Loader(); loaderSprite.addChild(loader); loaderSpriteArray[i] = loaderSprite; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); こんな風に設定していて、別のfunctionの所でloaderSpriteArrayからloader.loadを設定する方法はあるのでしょうか? loaderSpriteArr[i].loader.load(url); 試しにこう呼び出してみると 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」 というエラーが出てしまいます loaderArray[i] = loader;みたくloader用の配列を新しく作って loaderArray[i].load(url); と直接設定するしか方法は無いでしょうか
>>483 表示リストとして保持してるのだから
getChildAt(0)かname設定してgetChildByNameで
参照するんじゃね
loaderをわざわざSpriteの中に入れてるのは、何か意味があるの?
>>484 ありがとうございます、今までこういった処理は大量に配列作ってやってました
勉強になりました
>>485 papervision3Dで処理していて、Cube等にロードした画像を貼り付ける場合にspriteとかが必要らしいのでこうしてます
誰かぼすけてください フラッシュ8なんですけど、FLVPlaybackはじめて使ってみたんですが ローカル環境ではうまく動くのですが、サーバーにアップすると なにも表示されなくなってしまいます 多分スキンが・・・と思い、カスタムスキンURLから。として アドレスを入れてみましたがそれでも表示されません。 どうしたらいいのか・・困ってます よろしくお願いします
flvへのパスがちがうとか、うpして無いとか
どうせ違うドメインのflvパクろうとしてこけてんだろ
490 :
487 :2008/05/17(土) 15:31:09 ID:losFwAb5
>>488 ローカル環境のフォルダ構造を鯖と同じ状態にしてあり
SWFplayerとかだと正常にコンポーネントが表示されます
また、外部jpgやswfも正常にで、コンポーネント使用前に
使っていたハクヒン氏のページにあるFLVプレイヤー(改
だと鯖からでもFLVも正常に表示できるんですよね
上ではスキンを読み込まれていない?と書きましたが
FLVの1フレ目も表示されないので
コンポーネントのFLVPlayBack自体が表示されていないようです
ローカルだとFLVPlayBackも表示されて、FLVも走るんですけど。。。
>>489 そんなスキルはないっス!
教えてくださいませ。 画面をClickしたらインスタンスが生成され、 さらにその生成されたインスタンスをクリックすると、 移動するような処理をしたいのですが、 エラーになってしまいます。 //クリック場所にインスタンスを生成 stage.addEventListener(MouseEvent.MOUSE_DOWN,enCreate); function enCreate(event:MouseEvent):void{ var en1:en = new en(); en1.x=event.stageX; en1.y=event.stageY; addChild(en1); } //ここまでのスクリプトはOK //生成したインスタンスをクリックした時の処理をくわえたい。。 en1.addEventListener(MouseEvent.MOUSE_DOWN,onclick); function onclick(event:MouseEvent):void{ en1.x += 40; } クリックして生み出されるインスタンス en1 が 次のクリック処理で使えないようです。。 訂正お願いできますでしょうか?
君は魔空空間に引きずり込まれていると思う。
>>492 san
なるほど!魔空空間には気づきませんでした。
>>491 en1というオブジェクトに直接触れるのはenCreate中だけだから
addChild(en1)の前にen1.addEventListenerすれば良いんじゃないかな?
# 私はFlexメインなんでFlashでどうなのかあんまり自信ないんだけど
Flexの世界とFlashの世界がどうつながっているのかわからんよな〜と思う今日この頃
>>494 Flaxとfleshではライブラリが違うんじゃなかったっけ?
>>491 単にローカル変数にアクセスできてないだけじゃねーのけ?
function onclick(event:MouseEvent):void{
event.currentTarget..x += 40;
}
497 :
Now_loading...774KB :2008/05/18(日) 18:08:29 ID:RDpE1soz
テキストの表示に必要な幅を取得したいです。どのようなこーどになるのでしょうか?
498 :
Now_loading...774KB :2008/05/18(日) 18:10:19 ID:RDpE1soz
497です。環境を書き忘れました。 AS3 Flex3で書いてます
例えば1〜9までのランダムに動くMovieClipがあるとして 中央の四角いMovieClipにHitするとアクションを起こさせようとする場合 Howto本とかでは動く方にHitTestを仕込むように 書かれている事が多いですが、これだとonenterflameの回数が 多い気がするので、四角いMovieClipにHitTestを 仕込みたいと思っています 複数のMovieClipとの衝突を判定する場合を考えてみたのですが なかなか上手くいかないでいます。 どなたかお知恵をお貸しください ActionScript2.0 Flash8 うぃn です
四角いMovieClipで 動くMovieClipの数だけHitTestするだけでいいんじゃ?
for(i = 1; i <= 9; i++){ center_mc.hitTest(mc[i]); } こんな感じじゃないかな? hitTestの使い方は確認してないんで使い方間違ってたらごめんw
502 :
Now_loading...774KB :2008/05/18(日) 19:31:47 ID:+r+r3b+I
まだ始めたばかりなのですっごい初歩的な質問なのかもしれせんが
24時間以上いろいろ試してみましたがわかりません。
どうかよろしくお願いします。
http://www.flashvillage.com/ の最上段中央にあるCUBEのflashで
例えばabout usを開いて画像をクリックしてリンクを
新しいウィンドウで開くにはそのイメージのボタン(ImageButton)に
on (release) {
getURL("
http://www.yahoo.co.jp ", _blank);
}
を追加すればできるのですがそのとき同時にサウンドをオフにする、
つまり音をボリュームをゼロにして右上のSoundのOnをOffへと表示を
かえるにはどうすればいいのでしょうか。
自分でいろいろ試してみて
on (release) {
getURL("
http://www.yahoo.co.jp ", _blank);
_root.snd = 0;
_root.Sound_Button.Sound_B_Holder.gotoAndStop(4);
}
と変え音を消すことができましたが
_root.Sound_Button.Sound_B_Holder.gotoAndStop(4);
が間違っているのか右上の表示が変わりません。
ちなみにflash8です。お手数がかかる質問かもしれませんが
どなたかお願いします。
>>502 Sound_B_Holderってのはon/offスイッチのことだよな?
Sound_B_Holderのフレームにtrace(this)でパス確認。
504 :
Now_loading...774KB :2008/05/18(日) 21:04:15 ID:+r+r3b+I
>>503 はいon/offスイッチだと思います。
パス確認をやりましたが
_root.Sound_Button.Sound_B_Holder.gotoAndStop(4);
のパスがやはり間違っているのかリンクを開いても
何も変わりません。
(もしかしたら自分の確認方法が間違ってるかもしれないです。)
>>504 いや、パスってURLの話じゃなくてムービークリップのパス。
Sound_B_Holderがムービークリップならダブルクリックして
フレーム選択してアクションパネルにtrace(this)と記述
プレビュー→出力パネルにlevel0.Sound_Button.Sound_B_Holderと出たら
パスはあってる。違ってたらパスの記述を修正する。
つか>on/offスイッチだと思います。って。。。自分で作ったんじゃないの?
ん?ムービークリップじゃなくてボタンになってるって可能性もある?
>>499 動くMCを連番にして
onClipEvent (enterFrame) {
for (i=1; i<=動くMCの数; i++) {
if (this.hitTest(_root["mc"+i])) {
trace("hit");
}
}
}
506 :
505 :2008/05/18(日) 22:39:29 ID:bM+mLcxt
>>504 ごめんそこテンプレサイトか?
ダウンロードして見たけどうちのMX2004じゃ開かんかったわw
>>497 フォントによって変わる。
プロポーショナルフォント(Pゴシックとか)だと
一文字一文字が可変長なのでそのへんまで考慮しなきゃならない。
単に「最低これくらい」程度ならフォントごとに対応した横幅を設定して
MinWidth * StrText.length + LRSpace
明朝一文字の横幅 * 字数 + 左右幅(あってもなくても良い)
高さの考慮もあるからTextFormat.Heightと別の設定値が必要かもね
FLASH CS3 PROです。 AS3では CSVファイルを「●行目の○番目」という形で文字を読み込んで ダイナミックテキストに表示させたり、 変数として読み込む、といったことは可能でしょうか? 可能か不可能かだけ、教えていただければおKです。
509 :
Now_loading...774KB :2008/05/19(月) 01:18:53 ID:Gt4sEgzV
>>505 説明ありがとうございます。
プレビューでリンクを開いたときに
level0.Sound_Button.Sound_B_Holder
ってでればいいってことまでは
わかっているんですがやはり
_root.Sound_Button.Sound_B_Holder.gotoAndStop(4);
↑のパス以外考えられないのです。
505さん(開けなくて残念ですが)わざわざダウンロードして
調べていただきありがとうございました。
テンプレが古いflashで作られたせいのエラーかもしれないって
自分では思ってます。
どなたか確認お願いします。
>>491 ,494,495
>>491 のコードでaddEventListenerに失敗するのは、addChildしている
(つまりen1の名前が有効な)スコープの外でaddEventListenerしているため。
おそらく参照エラーで実行されていない。
でも、スコープの中身にaddEventListenerが成功するには、
enクラス(そもそもクラス名の頭が小文字ってのはよろしくないが)が
IEventDispatcherインターフェイスを実装している必要がある。
Spriteのベースインターフェイスにもなっているから、表示されることを
前提としたクラスを継承してenクラスを作っているのなら、addEventListener
を利用できるはず。もしそういう実装になっていないなら、自前で
addEventListenerを実装したりしないで、素直にUIObjectあたりを継承するのが
いいと思う。
Flexに限らずAS3で書いていれば、この部分についてはフレームワークの
違いは出ない。ただし、AS2でイベントの実装方法が異なるMovieClipのようなクラスを
継承させてenクラスを実装しているなら、違いは出る(ハズ)。
512 :
Now_loading...774KB :2008/05/19(月) 04:17:30 ID:Gt4sEgzV
509です。 自分がアクセスしようとしていたのはインスタンス名ではなく シンボル名だいうことがわかり、またtraceで正しいパスが わかってやっと解決することができました。 503さん、505さん、511さん 皆様ほんとうにありがとうございました!!
513 :
Now_loading...774KB :2008/05/19(月) 17:43:48 ID:wOA25bOs
ちょっと不思議に思ったことがあるので質問しにきました Stringクラスのメソッドの slice と substr と substring の違いって何なんでしょうか?
>>513 livedocs.adobe.com/flash/9.0_jp/main/00000084.html
に詳しく書いてあるよ
質問なのですが、 btnをonReleaseしたら、enterframeでmcが動き出す。 というのはどうすれば良いのでしょうか。(ルー語みたいだな…) 軽くする為にできればonReleaseする前はenterframeで読ませたくないのですが。
>>515 btnをonReleaseしたら、mcにアクションを起こさせることはできますか?
たとえば、onReleaseで、mcがフレーム5に移動する場合はどう書く?
まずはここから。
>>516 済みません。説明不足でした。
大きな絵を矢印をクリックしたら滑らかに移動する動きを1フレームで収めたいのです。
(フレームを使ってトゥイーンさせるのではなく。)
でもenterframeでずっとボタンを押した押さないを判定していると重くなりそうなので、
右ボタンを押したら、初めてenterframeで計算開始みたいなのを作りたいのです。
>>517 いや、わかるけど、ボタンを押したらMCにアクションを起こさせるってこと自体が
まずできるのかできないのかってこと。
それができるなら、ヘルプでMovieClipのとこ読むと
onEnterFrameについて解説してあるんで応用できると思うよ。
>>518 >ボタンを押したらMCにアクションを起こさせるってこと自体が まずできるのかできないのか
一応初歩的なアクションはできます。
ありがとうございます。調べてみます。
~~_btn.onRelease = function() { ~~_mc.onEnterFrame = function() {~~ } } みたいに入れ子にしたけど駄目でした…
いじり倒しているうちになんとか動きはじめました。 お騒がせ致しました。
522 :
521 :2008/05/20(火) 00:14:46 ID:z8W/4dT6
すみません。何度もしつこいようですが、やっぱり駄目でした。 ボタンを押したら指定のmcがエンターフレームで動き出す、のを1フレームでやるにはどうすれば…
>>522 発想が違うと思うけど、よく使う手として、シンボルのキーフレームを使ってMCの状態(動き)を
分けるというのが簡単で良いよ。
まず、動かしたいMCのシンボル編集画面から
1フレーム目のは、MCが止まった状態
2フレーム目には、this.onEnterFrame = funtion(){ .. }とやって、動いた状態。
上には必ず、this.stop();の一文を各キーフレーム入れて勝手にキーフレームが動かないようにしておく
外部のボタンから上で設定したMCのインスタンスに指定キーフレームへ飛べとやってやる
EX) ボタンのスクリプト
btn.onRelease = function(){
_root.hoge_mc.gotoAndPlay(2); //hoge_mcが動く
}
525 :
521 :2008/05/20(火) 20:11:37 ID:z8W/4dT6
日をまたいで騒いでしまってすみません。
>>523 その後、そのフレームが再生されると
ボタンを押していないにもかかわらず、mcがエンターフレームで動き続ける
ようになっていました。フラグ等で制御しないといけないんだと思います。
>>524 ありがとうございます。
スクリプトをいじってみます。
526 :
Now_loading...774KB :2008/05/21(水) 14:27:51 ID:I5xG8ZIg
失礼します。 リンクの関係なのですが HTML上に配置したFlashからインラインフレームの中身が入れ替わるように HTMLデータを呼び出したいのですが、どうしてもblankしてしまします。 記述しているASは on (release) { getURL("01.html", "iframe"); } で、HTMLのインラインの部分にはname="iframe"としています。 参考にしているのはver5用に作成されたflaデータなのですが ver8でも問題なく動作するでしょうか? 現在どうしてもインライン内部でなくblankしてしまい悩んでいます。 可否で結構ですので、ご回答宜しくお願いいたします。
527 :
Now_loading...774KB :2008/05/21(水) 15:10:49 ID:QokfyGTq
AS3です。 そのswfが親ムービーに読み込まれて再生されているのか 読み込まれずに単体で再生されているのかを判別するにはどうしたらよいでしょうか?
>>526 動作が良く分からんけど、
その処理がJavaScriptで可能ならASからExternalInterface経由でJavaScript呼び出せばいいんじゃね?
>>527 rootがthisと等しいかどうかを判定すればいんじゃね?
529 :
Now_loading...774KB :2008/05/21(水) 19:38:42 ID:/aAbRnnl
ローディング画面をAS2で作ろうと思います。 1, 2, 3,...9までの数字を自分で作った画像に置き換えたいのですがどうやればいいでしょう??
>>529 置き換えたい、ってもともとはどう作ったんだよ!
数字を画像で表現することはできるの?
たとえば、5の時は画像の5を表示する。10の時は、1と0を表示する。
タイムライン派なら数字のMCつくってgotoAndStop()
そうじゃないなら数字のMCをattachMovie()かね。
それ以上はもっと具体的につまってるとこ書いてくれんと答えづらいです。
>>528 ありがとうございます。
そちらでチャレンジしてみます。
532 :
Now_loading...774KB :2008/05/21(水) 21:34:38 ID:/aAbRnnl
>>526 すいません^^;
ベースは下記のスクリプトで行こうと思ってます。
//For Loading
sw = Stage.width;
onEnterFrame = function() {
loaded = _root.getBytesLoaded();
total = _root.getBytesTotal();
percentage = Math.round(loaded / total * 100);
process = Math.round(loaded / total * sw);
this.statusTex.text = percentage + "%";
this.progressBar._width += (process - this.progressBar._width)/5;
if (this.progressBar._width >= sw - 1){
this.circle.stop();
this.loadTex.stop();
gotoAndStop(2);
}
}
現状%はテキスト表示でやっていました。
自分のイメージでは1の時は1の数字のMCを表示、みたいな感じです。
ちなみにローディングバーってどんなに重いファイルにしても、鯖にあげないと挙動が確認できないものですか?
上記のコードでローカルでパブリッシュして確認しようとするといつも100%なんです。。。
533 :
Now_loading...774KB :2008/05/21(水) 21:35:44 ID:/aAbRnnl
532です。 上のカキコは530に向けてのレスです。。
>>532 >鯖にあげないと挙動が確認できないものですか?
ローカルではダウンロードする必要がないから確認できない
ダウンロードのシミュレートってのをやれば確認できる
>自分で作った画像に置き換えたい
MCにしてgotoAndStopとかattachMovieとか色々方法はある
536 :
Now_loading...774KB :2008/05/22(木) 18:48:02 ID:bkoQLUeD
Flash 8 proで制作しているのですが質問させてください。 HTMLで言う参照ボタン <input type="file"> これはflashでどうすれば起動できるのでしょうか? 検索してみるも検索ワードが悪いのかかかりません。
AS3でmidiを扱う方法ありませんか? 特定の音(ドレミ)を鳴らすような処理をしたいのですが・・。
糞スレになってきたなw
サーセン
>>541 おおおおおおおおお!
いくら探しても見つからなかったので本当に嬉しいです。ありがとうございます。
FlashCS3上でFlashPlayer8向けのムービーを作っています。 クラス内でボタンイベントを記述する場合、 どのボタンが押されたのかはどのように取得したらいいでしょうか。 == フレームスクリプトとして書く場合 hoe_mc.onRelease = press; function press(){ trace(this._name); // 呼び出したボタンがわかる } == クラス内に書く場合1 hoe_mc.onRelease = press; function press(){ trace(this._name); // ボタンはわかるが、クラスインスタンス内のメンバにはアクセスできない } == クラス内に書く場合2 hoe_mc.onRelease = Delegate.create( this, press ); // クラス内の変数にアクセスするため Delegateを使用 function press(){ trace(this._name); // this はクラスインスタンスを示すのでエラーになる }
FlashRC5で、フライトシミュレータを作ります。 迅速にコントロールするにはイベントを効率よく動かしました。 しかし不幸にも動作できません。 お願いします
なんだ?中国人でも来てるのか? 二度と来ないようおまじない貼っとくか。 天安門事件(四五天安門事件、六四天安門事件) 、法輪功、反共産主義 民主政治、台湾問題 (台湾独立、中華民国総統選挙)、Taiwan Tibet、チベット独立(チベット動乱、ダライ・ラマ)、密輸(走私) 多党制、専制、激流中国、中国共産党、文化大革命、毛沢東、 ポルノグラフィ(色情) 六合彩、ギャンブル(賭博)
546 :
Now_loading...774KB :2008/05/23(金) 23:09:20 ID:tlmuxu0I
気持ち悪い
wwwwwwwwwwwwwwwwwww
Flashdevelop+CS3でAIRの開発を行っているのですが FlashdevelopでCtrl+ENTERするとCS3でパブリッシュ+プレビューになります。 で質問ですが このプレビューをデバッグモードで起動したいのですがFlashdevelopのどこをいじれば よいのでしょうか? よろしくお願いします。
>>548 プロジェクトをIDEプロジェクトにしてるんじゃない?
win9x、AS1です。 ボタンの作成の仕方を教えてください。 以下はぐぐって見つけたものですが、何も起こりません。 b = new Button(); b.label = "hoge"; addChild(b); 似たようなので、普通の文字の表示はうまくできました。 createTextField("test", 0, 50, 0, 200, 20); test.text = "aiueo!";
>>550 b = new Button();
b.label = "hoge";
addChild(b);
これはAS3用だからAS1じゃ動かないよ
すまんがAS1はわからん
552 :
550 :2008/05/25(日) 14:04:56 ID:kZYb2ARV
>>551 了解しました。ありがとうございました。
似たので、onMouseDown = function(){};というのを見つけ、
マウスのボタン押しと位置をチェックできるので、
これで代用したいと思います。
http://www.flashiroha.com/script/as8.html ここの「文字(テキスト)のマウストレイル」の所なのですが、
flameにスクリプトを書くので、書いたっきりムービーが終わるまでずっと表示されてしまいます。
これを指定した部分で止めたい(例えば100〜400フレーム内だけでこのスクリプトを使いたい)場合は、
どのようなスクリプトを使ってストップさせればいいのでしょうか?
無知で申し訳ありませんがよろしくお願いします。
>>553 まず二行目で配列を用意する
var arrMc = new Array($str.length);
mc = _root.createEmptyMovieClip("tf_mc"+i, i);
三行目のこの処理でMCを作成しているのでその下に
arrMc[i] = mc;
という処理を作成して配列に登録しておく。
そして消したいタイミング(400かな)にキーフレームを挿入して
for( i = 0; i < arrMc.length; i++ )
{
removeMovieClip( arrMc[i] );
}
と、記述する。
ちなみにサイトの処理は100フレーム目にキーフレームを作成してそこに書く
こうすればやりたい事になるんじゃないかと
555 :
Now_loading...774KB :2008/05/27(火) 12:23:57 ID:V4zvOHEX
as3です。ボタンを押したときに_root(AS2でいうとこの)にあるmcAとmcBをvisibleに したいのですが教えてください。このボタンをクラスにしたいです。 package{ //インポート省略 class Visiblebtn{ function Visiblebtn( this.addEventListener(Event.MouseEvent.CLICK,clickfunc){} function clickfunc(e:MouseEvent):void{ _root.mcA.visible=false _root.mcB.visible=false ←この辺が分からないです。 //MovieClip(root).mcA.visible=falseと書いたときはmcAをこのクラスが知ってることになり 書き方がダメっぽいと思うのです } } }
>>555 2.0みたいに処理したいならこんなかな?
function clickfunc(e:MouseEvent):void{
var _root:DisplayObjectContainer = root as DisplayObjectContainer;
_root.getChildByName("mcA").visible=false;
_root.getChildByName("mcB").visible=false;
}
でもroot上の何かをどうにかする処理だったら、rootに書く(ドキュメントクラス作って、それに書く)
方が分かりやすいかもしらんね。
package{ //インポート省略 class Visiblebtn{ function Visiblebtn(btn:Array){ addEventListener(Event.MouseEvent.CLICK,clickfunc); function clickfunc(e:MouseEvent):void{ } } }
ごめん途中送信してしまったw package{ //インポート省略 class Visiblebtn{ function Visiblebtn(btn:Array){ addEventListener(Event.MouseEvent.CLICK,clickfunc); function clickfunc(e:MouseEvent):void{ for(var i:int; i < btn.length; i++){ btn[i].visible = !btn[i].visible; } } } } } 操作したいボタンを配列にして引数に渡すってのはどうかな これならstage以外でもどんなボタンでもいいから応用利くんじゃないかな 余計だけどクリックするたびに可視、不可視と切り替わるようにしてみたw
レベルの低い質問ですみません……。現在鳴らしているmp3が最後まで鳴り終わったらgotoAndPlayなどの処理がしたいのですが、音楽が鳴り終わったかどうか調べる関数や記述方法はありますか?ちなみにSWF7です。分かる方がいたらお願いします。
560 :
Now_loading...774KB :2008/05/27(火) 14:34:53 ID:0K0B9Y+G
yourfilehost.comのflvをflashで読み込むことって可能なんでしょうか? セキュリティーサンドボックス侵害になってしまうのでしょうか。
>>559 あるよ
ヘルプでSoundクラスのイベントのとこ見ると載ってる
JW FLV Media Player 3.16
http://www.jeroenwijering.com/?item=JW_FLV_Player これを使ってRSSでプレイリストを作ってFLVを読み込んでるんですが
読み込むURLをFLVではなくニコニコ動画などのように「file=〜」
のようなテキストファイルを読み込んで
そこからFLVを読み込みたいと思っております
具体的にはvideo.phpというの作って「video.php?no=○○」で
動画NoのFLVファイルのURLが「video=http%3A%2F%2Fexample.com%2Ftest.flv」
というURLEncodeされた形で出るようにしましたのでそれを読み込み
videoのURLを読み込みたいのです
色々調べてみてLoadVarsというのを使うことは分かったのですが、
使い方と挿入場所が分かりません。
プレイリストを読み込むタイミングで読み込むと一度に多くのテキストファイルを
読み込んでしまうと思い、再生するタイミングでLoadVarsを使おうと思ってます
試してみたのは「FLVModel.as」の107行目の
currentURL = feeder.feed[currentItem]["file"];
を
if (feeder.feed[currentItem]["file"].indexOf('video.php') > -1) {
var flvVars = new LoadVars();
flvVars.load("
http://example.com/ "+ feeder.feed[currentItem]["file"]);
flvVars.onLoad = function() {
currentURL = flvVars.video;
};
} else {
currentURL = feeder.feed[currentItem]["file"];
}
に置き換えたのですが上手く行きません
どなたかご教示願います。
>>561 ありがとうございます。早速調べてみたいと思います。
565 :
Now_loading...774KB :2008/05/27(火) 15:22:25 ID:0K0B9Y+G
>>563 便乗ですいません。
JW FLV Media Player 3.16 で、外部ドメインのflvを読むことってできるのですか?
クロスドメインなので無理っぽいことがわかったのですが、できているサイトもあります。
できれば読み込む方法を教えてくださいませんか?
よろしくお願いします。
567 :
Now_loading...774KB :2008/05/27(火) 15:46:34 ID:0K0B9Y+G
yourfilehostのflvのように引数付きでも可能でしょうか? http〜***.flv?a=000&b=0000みたいな感じなのです。
urlencodeすれば見れるんじゃないですか?
VID-DLでFLVのアドレス調べてプレイリストにそのまま記述したら見れましたよ
でもアドレスにあるグリニッジ時間が過ぎたら見れなくなるのでは?
アドレスから推測するに最長で1時間1分で有効期限が切れると思うのですが
まー方法は色々あると思いますが、そもそもYourfilehostはembedタグを公開してないし
外部からファイルの読み込みを許可してないのでは?
しょっちゅう仕様変更してそういうのの対策もとってるし
それより
>>562-563 の私の質問のお答えを誰かお願いします
569 :
Now_loading...774KB :2008/05/27(火) 20:27:48 ID:jYq1nEFT
571 :
Now_loading...774KB :2008/05/28(水) 01:12:59 ID:78tht+5w
as3で作ったswfに as2で作ったswfをloadした場合、 問題なく動くのでしょうか?
下記ソースで画像を横方向に動かしているのですが、 動かしている画像がぶれるというか。。少しギクシャクします。 滑らかに横スクロールさせるにはどうすれば良いでしょうか? mc.onEnterFrame = function ( ) { this._x -= 1; if ( this._x <= -1000 ) this._x += 1000; }
>>572 mcの移動する前の元の座標xは整数値なのか
・最終的に画面に描画する際はピクセル単位なので
座標に小数点を含む(0.5,etc..)と小数部分は描画時に補完されるが
一定ではないので移動ごとに描画補完の塗りが変わる可能性がある
mcに大きいビットマップを使用して無いか
・描画処理にパワーがいるので処理落ち
そのmc以外に負荷のかかる描画処理をさせてないか
・単に処理落ちの可能性
フレームレートが低いだけではないか
・まあそれだとギクシャクとは言わんな。
winXP As2.0で作っています _root上に置いたアニメーションするmcの再生ヘッドのフレーム数を 表示させたいのですが今のところ、_rootのフレームで var FrameCnt:Number = 0;で変数宣言して、mcの各タイムラインフレーム でFrameCnt = 1; 〜 FrameCnt = 30; と変数を取得させて TextBoxにて表示させています。 mcの逆再生、任意での飛び越し再生もあり、計算的に難しいので 各フレームにて代入させるようにしているのですが、 mcの再生ヘッドのフレーム数を取得できる良い方法はありますでしょうか? よろしくお願いします
>>576 ありがとうございます!
自分でも調べてみて
mcに
onClipEvent (enterFrame) {
_root.FrameCnt = mc._currentframe;
}
と書く事で取得できる事がわかりました。
ひたすらコピペでナンバを入れていた自分がバカみたいです orz
578 :
Now_loading...774KB :2008/05/30(金) 11:32:40 ID:85jjMrMg
AS3です。 ベーシック認証のかかったサーバーにあるjpgをloadして表示したいのですが、 どのようにしてFlashから認証をすればよいでしょうか?
579 :
Now_loading...774KB :2008/05/30(金) 17:16:33 ID:TsTWdufV
Flash CS3 OSX 10.5.3 AS2.0
■コンポーネントのプロパティがスクリプトから変更できません…
swfと同一フォルダにflvをMediaDisplayクラス、MediaControllerクラスを使用して表示したい。
読み込むflvはflashVarsでswfに渡して読み込ませようとしました。
下記のページを参考にというか、丸々コピって練習してみてます。
ttp://www.project-nya.jp/modules/weblog/details.php?blog_id=805 コンポーネント配置の部分で、
>MediaDisplayコンポーネント(インスタンス名: flvDisplay)
>MediaControllerコンポーネント(インスタンス名: MediaController) を配置。
という部分は
MediaControllerコンポーネントのインスタンス名がスクリプトに書かれている名前と異なるようなので、スクリプトに合わせて
flvControllerとしました。
参考ページのスクリプトでは
flvController.controllerPolicy = "on";
flvController.backgroundStyle = "none";
flvController.activePlayControl = "play";
とスクリプトでコンポーネントのプロパティを設定しているようですが、
実際作ってみるとコンポーネントインスペクタで設定されている値が優先されてしまいます…
スクリプトからコンポーネントのプロパティを変更するにはほかに何かしないとダメでしょうか?
580 :
Now_loading...774KB :2008/05/30(金) 19:28:29 ID:OX7MRh55
function Hoge():Array { var ret:Array = new Array("A", "B", "C"); return ret; } のように関数内でインスタンスを生成して返値として返すのに問題はありますか? ありそうなんだけどドキュメント読んでてもそれらしい記述見つからなくて不安です
>>580 C++とかの出身の人なのかな?
ASなら参照持ってるならGC対象にはならないから大丈夫だよ
グローバルメモリ確保した上で参照ポインタを返すようなイメージ
C++だってnewすりゃ基本的にはヒープ上に作られるんだから問題ない まずいのはローカル変数自体のポインタや参照を返す事
>>583 ASのArrayは参照配列だからまさに
<まずいのはローカル変数自体のポインタや参照を返す事
が配列の要素に該当するんじゃね
var ret:Array = new Array(1);
var a:uint = 0;
ret[0] = a;
return ret;
int ret* = new int[1];
int a = 0;
ret[0] = &a;
return ret;
C++うろ覚えなんで間違ってたらすまそ
585 :
580 :2008/06/01(日) 02:12:51 ID:B7Ymg3vA
>>581-584 ありがとうございます
インスタンスは参照元が何処にもなくなったときに勝手に削除されるという解釈で良いんでしょうか
>>585 その通り。参照があるうちは勝手に消えないし、参照が無くなれば(そのうち)消える。
attachMovieで、生成したmc01〜mc10をボタンを押すと 一括してremoveするためにはどう書いたらいいんでしょうか? As2.0 winです
>>587 空のMC作ってその中にattachで作ってそのMCをremoveするとか
配列に登録しておいてforで回して消すとか
589 :
Now_loading...774KB :2008/06/01(日) 13:58:18 ID:hlKBunjK
誰か教えて下さい。 最近始めたばかりで超初心者です。 基礎すら仕組みがわかってません。 HP制作で、HTMLいじくりまわして作ろうかと思いましたが、FLASHの方が綺麗かと思いまして モーションなどを入れながら、ムービークリップでシンボルをいくつか作りました。 indexからtopへ移るため、 ムービークリップとアクションスプリプトを利用してロールオーバーボタンを表示させてみました。 それで、ブラウザに合わせ、全画面表示(フィット)させようと思いました。 しかし、パブリッシュした時に 全画面表示をする場合はアクションスプリクト3.0じゃないといけないらしく ロールオーバーボタン機能を利用したい場合は、アクションスプリクト1.0か2.0でしか動作しないと表示されました。 ボタンも表示したいし、全画面表示もしたいんですが、不可能なのでしょうか?
590 :
sage :2008/06/01(日) 14:00:06 ID:zzkX0+4f
>>587 this.removeMovieClip();とだけ書いた空のMovieClipを
消したいMovieClipと同じ深度にぶつけて消すとか
AS2の頃はよくやってた。
591 :
Now_loading...774KB :2008/06/01(日) 14:00:13 ID:hlKBunjK
on (rollOver) { gotoAndStop("over"); } on (press) { getURL("top.html","_self"); } on (rollOut) { gotoAndStop("up"); } こんな感じです
>>589 まあ、なんだ。
> 基礎すら仕組みがわかってません
という人は、Flashサイトなんか作らんほうがいい。まして全画面なんてウザイだけだぞ。
ユーザビリティを考える余裕がないうちは、やめとけ。
AS2.0以下でも3.0でも、同等のことはできるが、それぞれの書き方が違う。
どっちかに統一すればいいだけ。
おまえさんのFlashでは、ボタンに関してはAS1.0の記述、フルスクリーン部分は3.0の
記述なんだろう。
if (sw==1) { play(); } else { prevFrame(); } こういうスクリプトで 「進む」、「戻る」を再現しているのですが これを1フレーム進む、戻るではなく、 現在地の前後にあるフレームラベルのところまで進む、戻る、とできないでしょうか? イメージとしては「nextframeラベル」みたいなスクリプトです。 Directorからの移行で、Directorにはそんな感じのがあったのですが
書き忘れてましたが、携帯用の2.0です!
>>594 フレームラベルを取得することはできんから、
配列にラベル名をいれといて、それぞれフレームと関連づけるとかして
現在フレームから前後のラベルを割り出せる仕組みを自分で作るしかないと思う。
597 :
Now_loading...774KB :2008/06/03(火) 21:35:46 ID:30hE4cEl
以下のAS2をAS3で実現するには、どうしたらよいのでしょうか? for (var i:Number = 0; i<10; i++) { var mc:MovieClip = attachMovie("mc", "mc"+i, i); } 宜しくお願いします。
598 :
Now_loading...774KB :2008/06/03(火) 23:07:39 ID:lrP8J49+
>>597 あ〜、AS3に移る前にAS3の初心者本を買ったら解決します。
たぶん、挫折すると思うけど
>>597 for( var i:uint = 0; i < 10; i++ ){
var mc1:MovieClip = new mc();
addChild(mc1);
}
「どこに追加するのか」が必要となるので場合に応じて
stage.addChild, pmc.addChildというように追加する親を前に指定する必要がある。
AS3についての質問です。 大量のオブジェクト(MC)を管理する時に (a_mc、b_mc、1_mc、2_mcなどアルファベットや数字が混在する場面などで) オブジェクト名の一部を配列に格納して使用する場面で forループなどで配列を呼び出してオブジェクト名として使用したいのですが、 どうにもいい方法が思いつきません。 何かいい方法があったら教えていただけたらと思います。 よろしくお願いします。
601 :
Now_loading...774KB :2008/06/04(水) 21:43:00 ID:JjpjqbF/
超初心者です。 actionが作れません。 文字を入れて、それをボタンシンボルにしました。 そのボタンシンボルにアクションを設定しようとしましたが 選択しても 「現在の選択範囲にアクションを割り当てることはできません。」と表示されます。
602 :
597 :2008/06/04(水) 23:33:56 ID:Jpm6PBDH
>>599 回答いただき、ありがとうございます。
教えていただきたいのですが、ご提示いただいたスクリプトですと、
インスタンス名はどこで設定するのでしょうか?
>>601 うーむ・・・何か一冊本を立ち読みしてみるといいよ。
とりあえず、ボタンシンボルにせず、
思い切ってムービークリップにするんだ。
>>601 ターゲットがAS3になってるとかかな。ボタンにスクリプトが書けるのはAS2以前のみ。
>>602 mc1.name="hoge";
とかでできると思うけど、次は「名前でインスタンスにアクセスする方法はどうすればいいですか?」
という質問が来そうだな。MovieClipのリファレンスをちゃんと読んでみて下さい。
605 :
Now_loading...774KB :2008/06/05(木) 08:20:17 ID:ewQ2cA+t
>>603 うーん…考えてみます!
>>604 なってた…、AS3になってた!!
AS2にパブリッシュしたら、アクションできました!
ありがとうございました!!
606 :
Now_loading...774KB :2008/06/05(木) 11:32:05 ID:MLpesAZr
また質問申し訳ないんですが 読み込み率の事です。 100%まで読み込みができることはできるんですが 棒グラフが、中心から読み込まれていくので、バランスが変になります。 右とか左から、棒グラフが上がって行ってくれれば良いんですが どうして中心から棒グラフが大きくなっていくんでしょうか?
おいおいおい、人に聞く前に最低限のことは本とかで勉強しろよ。 今ならネットでも勉強出来るだろ?
>>606 棒グラフのMCをシンボル化する時に、中心点を図形の真ん中にしていないか?
>>606 ローディングバーに使ってるMCを編集したらバーの中心が座標(0,0)になってるでしょ?
中の物を左端によせるか右端に寄せる。そうすればやりたい事になると思うよ。
>>608 気持は分かるけど
>>1 に
AcitonScriptのことなら
初歩的な質問でもなんでもおk
ってあるのでこのスレじゃこれがルールだと思うよ。
まぁ
>>606 も初歩的な事なら少し検索すれば
レスより分かりやすい図解付きのサイトはいくらでも出てくるから
ちょっと自分で探してみるのも良いと思うよ。
611 :
Now_loading...774KB :2008/06/05(木) 12:47:26 ID:cPh77x2v
教えてチャンか… スルーに限る。
AS2 + SharedObject 使ってるんだが、なぜか 「SecurityDomain 'ローカルパス/XX.swf' が Player の UI コンテキストにアクセスを試みました。」 とかいうアラートが出て、SOを書き込む、もしくは呼び出す所で ハングアップ状態。 止む無くScript実行停止ボタンをポチ・・。 何だよコレ・・・。 外部ソースはSOしかロードしてねーのに 何でSecurityDomainが出てくるんだよ。 ちょっとお手上げ状態。 ちなみにCS3 + OSX10.5.3 OSXのセキュリティが上がったか?
615 :
Now_loading...774KB :2008/06/05(木) 23:39:41 ID:gJy7aYpW
>>600 こういうことかな。。
var a_1:String;
var b_2:String;
var b_b:String;
var hogeArray:Array = [ "a_1" , "b_2" , "b_b" ];
this[ hogeArray[0] ] = "hoge";
this[ hogeArray[1] ] = "hage";
this[ hogeArray[2] ] = "hogehage";
trace("hogeArray[2] : "+ this[ hogeArray[2] ] );
trace("b_b : "+ b_b );
結果
hogeArray[2] : hogehage
b_b : hogehage
ちなみに「2_mc」とかはじめに数字を入れるのはタブーです。
616 :
Now_loading...774KB :2008/06/05(木) 23:44:03 ID:gJy7aYpW
>>614 それって、windowsとかだったらどうなるの?
しらん 解決法が見当たらん。 こんな所で半日つぶれた。 そろそろ発狂しそうだぜw
>>614 試してる状況をkwsk。
SOの場所が特殊なことになってるとか。
同じくOSX10.5.3だが、以前2004で作ったものについては問題は起きてない。
CS3でパブリッシュはまだ試してないが、SOを使うだけなら問題ないはず。
>>618 サンクス
スクリーン上の設定画面にテキスト入力フィールドが20個あり、
自分の入力したテキストが順番に画面に表示される。
SOの要素は、これらの20個のテキスト(日本語・文字数MAX50)と、
各テキストフィールドの表示する・しないのチェックボタンを設け、
切り換える度に出す値(ブーリアン)を突っ込んでるだけ。
コンテンツ起動時にSOを読みにいく、
また設定画面を閉じる時にSOに書き込み。
SOの場所は SO.getLocal("mySO","/"); というごく普通の場所。
(SO.getLocal("mySO");でもバグ出る)
ローカルで使用するコンテンツなので
allowDomainも糞もありませんw
現象というと、
設定画面を数回いじって閉じる(SOにflush)時にハングアップ。
30秒くらい放っておくと、例のSandbox警告が出る。
その後swf再起動でSOを読みにいくときもハングアップwww
仕方なくSOをクリア。
このループにハマってますw 長文失礼・・。
まぁ林檎だからな Adobeに連絡しとけよ
>>619 今CS3で作ってるものからプロジェクタ作ってみたが、こっちでは問題ない。
もしかしてアクセス権がおかしくなってるとかいうことはないか?
そもそもそれほど深刻な問題ならもっとあちこちで話題になると思う。
>>620 明日もうちょっと調べて構築に問題が無ければadobeにグチるw
>>621 サンクスです。
よくあるアクセス権、直してもダメだった。
明日もう少し中身整理してみる。。
不可解なのが、数日おきに
flaと同層のクラスファイルを
importしなくなるんだよな・・。
そのflaとasが入っているフォルダごと
別のディレクトリに移動すると直るが、
また数日後に・・・w
OSが不調なのかもな・・。
クリーンインスコロールした方が良さげかなww
>>622 クラスファイルの件も、うちでは全く問題ない。
CS3も10.5.3もいたって好調だ。
いろいろと奇妙な話だし、たしかにOSかFlashの初期設定かなにかが調子悪いのかもな。
SOについては、最小構成のFla、たとえば"test"って書き込むだけのもの作ってみてもアウトか?
とにかく解決の糸口が見つかることを祈る。
ローカルファイルを変更するコードがある場合はセキュリティ的に問題があるから警告が出るようになっても不思議じゃないよな。 もしネット上のswf開いただけでローカルファイルに書き込み出来たら怖いだろ。
て、全然違うこと書いてたな俺。 とりあえず例外キャッチしてみれば。
626 :
Now_loading...774KB :2008/06/06(金) 12:44:06 ID:JsaJIeQo
swfに外部ファイルを読み込む場合、swfObjectのタグに so.addParam('base', '.'); と記述することで SWFファイルの場所をパスの基点として認識させられるはずですが、 AS3でドキュメントクラスを使っていると、それが利きません。 どのような原因が考えられますでしょうか?
そもそもAS3.0のスクリプトに対応してねーんじゃね?
628 :
Now_loading...774KB :2008/06/06(金) 13:11:21 ID:JsaJIeQo
いえ、ドキュメントクラスを使わずに タイムラインに書いた場合は大丈夫なようです。
そのドキュメントクラスは何を継承してるの?
630 :
Now_loading...774KB :2008/06/06(金) 14:55:11 ID:JsaJIeQo
Sprite ですが、MovieClip にしても同じでした。
よくわからんのだが、swfObjectって何? addParamってメソッドあるのか?
ああ、JavaScriptのかw タイムラインに書いた場合に大丈夫とは、どのように書いて大丈夫と 判断したのか?
633 :
Now_loading...774KB :2008/06/06(金) 15:23:02 ID:JsaJIeQo
どのようにと言いますと?
swfObjectを使わないで、普通にパブリッシュしてムービー表示させた場合はどうなのよ? それでOKなら、swfObject側の問題で、NGなら、ドキュメントクラスの問題だべな。
635 :
Now_loading...774KB :2008/06/08(日) 04:54:49 ID:BRuPo39P
配列やオブジェクト内のデータ一覧を取得方法がみつかりません。 perlならuse Data::Dumper;print Dumper(%hash); phpならprint nl2br(print_r($arr,1)); な感じのやつです。
配列データならtraceでtoStringよばれるからそのまま見れるし オブジェクトのプロパティ?一覧ならfor in使うとか
俺ならlengthとforでがんばる。
配列の中身が完璧に同じかチェックする方法はないですか? 例えば hairetu = [0,1,0,1,0]; なら if(hairetu == [0,1,0,1,0])で出来るかと思いましたが無理でした。低レベルな質問ですみません……。
>>638 バージョン分からんけど、1次元のそんな配列なら、
toStringメソッドかjoinメソッドで文字列にして比較すればいいんじゃない?
var hairetu = [0,1,0,1,0];
trace(hairetu.toString() == [0,1,0,1,0].toString());
trace(hairetu.join() == [0,1,0,1,0].join());
>>639 ありがとうございます。おかげさまでできました。
toStringやjoinなんて知りませんでした……。
641 :
Now_loading...774KB :2008/06/08(日) 14:40:46 ID:8BBq/Oss
AS2です。 flash内のボタンを押すとjavascriptを呼び出し、 現在表示中のページに新たに別のflashを重ねて表示する (いわゆるフローティング)というのをやりたいのですが、 その別flashでは開かれたと同時にマウスポインタの位置に mcを表示させたい場合、どのようにしたら良いでしょうか? どうもマウスを動かすまでは、_xmouse、_ymouse の値が取れないようなのですが…。
642 :
Now_loading...774KB :2008/06/08(日) 19:12:37 ID:01Z2Fs9E
アクションスクリプトでマウスポインタを操作することは出来ますか?
>>641 >flash内のボタンを押すとjavascriptを呼び出し、
このときに座標を取得すればいいんじゃないの?
>どうもマウスを動かすまでは、_xmouse、_ymouse の値が取れないようなのですが
そんなことはないでしょう。
onMouseMoveならそうなるだろうけど、それで問題があるんならonLoadを使うとか
それ以前に取得する方法を取る。
どちらにせよボタンを押したタイミングのマウス座標が欲しいなら
ボタンを押したときに取得する、或いは取得を開始すればいいんじゃないの。
>>642 マウスポインタを消したり、ムービークリップに置き換えたりするのはできるよ。
644 :
641 :2008/06/08(日) 22:22:45 ID:iv+KjS5L
>>643 いえ、例えばフローティングflashの1フレーム目に
mc._x = _xmouse;
mc._y = _ymouse;
と書いたとしても、
mcの位置はマウス座標の位置に来ず、[0,0]の位置に表示されてしまうんです。
また、
this.onEnterFrame=function(){
mc._x = _xmouse;
mc._y = _ymouse;
}
と書いたとしても、マウスを動かすまではmcは[0,0]の位置のままなんです。
マウス座標はボタンのあるflashでなく、フローティングflashの方で取りたいのですが、
方法はありますでしょうか?
645 :
Now_loading...774KB :2008/06/08(日) 22:49:00 ID:ToQz/tHD
ちがうよ。 mcに書くんだよ
646 :
641 :2008/06/08(日) 23:24:58 ID:iv+KjS5L
> mcに書くんだよ ありがとうございます。 試してみます。
647 :
643 :2008/06/09(月) 01:04:18 ID:so9No9ZB
643だけどちょっと勘違いした、フローティングっていうのは別のフラッシュなのか、
見当違いスマソ
>>644 普通にフローティングflashのフレームに
onEnterFrame=function(){
mc._x = _xmouse;
mc._y = _ymouse;
}
じゃだめなのか?
いわゆるフローティングていうのがピンとこないな
javascriptのストーカーみたいのか?
ごめんわからん俺パス。
648 :
Now_loading...774KB :2008/06/09(月) 02:09:59 ID:lIz4N9TX
外部画像をフラッシュ内にロードはできたのですが、(loadmoveで) 画像を直接ライブラリに入れるやりかたがみつかりませんでした。 画像は各所に表示する感じなので、 ライブラリに格納後、attachで各所に表示したいと考えています。 これをloadmoveで毎回やると処理のたびにチカチカしてユーザビリティが悪いので、 どうか上記の方法教えてほしいです。
>>648 loadしたMCを画面外においといて、使うときにxy移動
複数ならduplicateMovieClipで作るとか
>>644 たぶんそれはLocalConnection使って、フローティング側のムービーから、
呼び出し元の座標を取得しないと無理じゃないかな?
でも、フローティング関係のムービーは、ブラウザによっていろいろイベント関係の処理が
コケるから止めた方がいいと思うよ。趣味ならいいけど。
>>648 バージョンがわからんけど、Flash8以上でかつ、同一ドメインの画像を読み込んで
使い回したいんだったら、一度BitmapDataに読み込んだ画像をdrawして、それをattachBitmapで使い回せばいいよ。
attach(Movie?)というとAS2.0かな?duplicateだと読み込んだ画像まではコピーされないんじゃなかったかな。
652 :
614 :2008/06/09(月) 16:22:07 ID:geOoFPHW
>>614 ,619,622です。亀レス失礼しやす。
週末、OSからクリンインスコロールし、アプリの動作
(同階層のクラスを読まない等)そのものは問題なくなったっぽいが、
今思えばサードパーティのクラスファイル自体にも問題ありかも・・。
コンテンツ本体については、細かく修正・デバッギングしたところ、
for(20回繰り返し){}でSOにflushさせるメソッドが
あちらこちらのMCから一度に実行されてたのがわかった。
(同時タイミングでおそらく数百回・・)
なるほど、Sandbox違反ってのはこの事に関連していたのne。
なんとか解決に至りました。
お相手してくれた方々サンクス。
>>652 SO自体は普通に使えたんだね。
解決オメ&報告乙。
654 :
Now_loading...774KB :2008/06/09(月) 17:57:14 ID:7+kD42rV
環境 WindowsXP Flash8 Basic (変数 linkno の中身は 0〜7 の間で変化) スクリプトに System.useCodepage = true; this.loadVariables("urls.txt"); var jampurl = "url" + (linkno) on (release) { getURL(jampurl); } 読み込んでいるurls.txtの中身は &url0=a.html& &url1=b.html& &url2=c.html& &url3=d.html& &url4=e.html& &url5=f.html& &url6=g.html& &url7=h.html& linknoが0の場合jampurlがurl0となり、のurls.txtのa.htmlが 代入されると思ったのですが転送先のURLがurl0になってしまう。 linknoの中身によってurls.txtの中から転送先が選択されるように したいのだが、間違えがあれば教えていただきたい。
jampじゃなくてjumpです
>>654 まず、外部からデータ読み込む場合、読み込み待ちをしてないなら正常に動作しない。
読み込みにはLoadVarsとかXMLとかもっと便利なものがあるのでそっち使う方がいい。
"url" + (linkno)は()いらないし、文字列連結してるだけで、変数参照してない。
文字列でアクセスしたいなら配列アクセス演算子。
なんでもうまくいかない時はtrace()。
657 :
Now_loading...774KB :2008/06/09(月) 19:54:43 ID:7+kD42rV
>>654 配列アクセス演算子とやらを使ってみたが。
var jampurl = [url + linkno]
url0の変数を参照できない・・・
urls.txtはちゃんと読み込んでいるもよう
658 :
Now_loading...774KB :2008/06/09(月) 20:11:40 ID:7+kD42rV
var jampurl = "url" + linkno は文字列に数値を足してるけど 結果は文字列連結しただけなんだよね? 連結させた文字列でアクセスさせるには[]をつければいいのか? まだ配列アクセス演算子のことがよくわからんので例をだしてくれると 助かるんだが・・・
色々出てるキーワードで検索しないのか?
さっきから調べては試してはなんだけど、配列アクセス演算子が理解できない。
>>660 var url0 = "a.html";
trace(this["url"+0]);
態度でかいわりに馬鹿だな。。
663 :
Now_loading...774KB :2008/06/09(月) 22:21:29 ID:LnLfKABD
ActionScript 3.0でスクリプトだけで画面の幅・高さを取得するにはどうすればいいのでしょうか?
うーん・・・ var url0 = "a.html"; trace(this["url"+0]); で a.html が出力されるが。 geturl(this["url"+0]); だとurl0にジャンプしようとする・・・・
すいません、自己解決しました
666 :
648 :2008/06/10(火) 03:30:56 ID:Tl/yK7+E
どうもありがとうございました。 flash8です。 今は試せないので、後で試してみます。
667 :
Now_loading...774KB :2008/06/10(火) 22:22:08 ID:sIPfrFD0
天才様達お力添え下さい FlashとPHPのデータ送受信時にデータ改竄の危険性があるようですが 実際どんな感じで改竄されるのかピンとこないので教えてください。 DBからFlashに読み込んだ値が改竄されて、そのままDBに記録したらえらい事になるので; ちなみにactionscript3.0では「POST」「Variables」で送受信してます。 ■URLVariables request.method = URLRequestMethod.POST; request.data = variables; ■URLLoader loader.dataFormat = URLLoaderDataFormat.VARIABLES;
>>667 flashはオープンソースと同じようにユーザー側がソースをいじれるからflashのActionScriptを自由に書き換えられてしまうよ。
669 :
Now_loading...774KB :2008/06/11(水) 00:35:41 ID:L1EGmnRn
>>668 返答ありがとうございます
他人のサーバー上のフラッシュソースを書き換えるということですか?
それとも他人のサーバー上のフラッシュを落としてソースの書き換えですか?
後者ね。
最近、Flash MXでタイピングゲームを作っている者です。 さっそく質問です。 keyListenerオブジェクトの中で、テキストファイルから文字を読み込んで 問題として使いたいのですが、keyListenerオブジェクト内で ファイルの読み込みは可能でしょうか? また、LoadVarsオブジェクトでテキストファイルを読み込んで、その値を keyListenerオブジェクトの中で使用する事は可能でしょうか? ご教授お願いします!!
どちらも可能
>>672 返答ありがとうございます。
LoadVarsオブジェクトでテキストファイルを読み込んで、その値を
keyListenerオブジェクトの中で使用するためには、
何か特殊な値の受け渡し方法があると思うのですが、
どのようにコーディングすればいいのか分からず、四苦八苦しております。
-----------------------------------------------------
System.useCodepage = true;
var lv_obj = new LoadVars();
lv_obj.onData = function(src) {
//ここで得たsrcの値をキーリスナーで使いたい。
}
lv_obj.load("mondai.txt");
------------------------------------------------------
上記のようにファイルを読み込む事はできるのですが、
オブジェクトの外にsrcのデータを出してあげたいのです。
いい方法はないでしょうか?
お願いします。
674 :
669 :2008/06/12(木) 15:14:13 ID:xhnReCfd
>>670 ご返答ありがとうございます
サーバー上の情報を書き換えられないのであれば
phpでDBに格納するさい、パーミッションで書き換えられないと思うのですが浅はかでしょうか?
CS3でFla7出力AS2.0です FlashLite1.xでMC内から_rootを全体的に操作する場合に tellTarget("/"){数十行}って使っていたんだけど、 同じものをPC用に作りたいなと思って調べてたら まさか同じ挙動をするスクリプトって無かったりしますか? with(オブジェクト名){}はムービークリップ限定みたいですし… 全部_parentとか_rootつけるしかないんですかね
>>674 俺の言いたいことがまったく通じてない様子。
俺が言いたいのはね、Flash上で扱ったDBのデータをPHPで格納するときにね、
悪意のあるコードを含むFlashを使うことでね、改ざん済みのDBデータをPHPに送ることが可能だという意味ね。
Flashに悪意のあるコードを入れることはFlash初心者にでも出来るくらい簡単なのでFlashから受け取ったデータを
ノーチェックでDBに格納するのは危険。 つまりPHP側でデータが改ざんされていないか等のチェックをしたほうがいいよ。
これでも理解出来なかったら君子危うきに近寄らず。
Flash CS3を使用しております。 Flash内でブログのRSS1.0を取得するRSSリーダーを作りたいのですが、 参考書にもあまり乗ってなくつまりました。 件名と更新日だけ表示されるシンプルなやつでいいのですが、 やり方が載ってるようなサイトは無いでしょうか?
RSS仕様にそってXMLればいいんじゃないかな?
>>673 onData内で適当に区切って変数に代入すればいんじゃね?
スコープがわかってないってことか?
>>675 変数にパス格納するとか。
そもそも4時代の作法だからなあ。
7用の2.0なら、設計そのものを変えて_rootや_parentを参照することを
避ければいいんと思うんだけど、そんなん面倒だろうし。
675です
>>679 さんの
> _rootや_parentを参照することを避ければいい
という文でピンと来たのが
「MC内の_rootに対するASをfunctionの中に入れて_root上に置いてしまえ」
ということです。traceで調べる限り今の所ちゃんと動いています。
レス頂けなかったらそれすら思いつかなかったです。ありがとうございます
#ほぼLite1.xしかやっていないので5以降はわけわかめすぐる…
681 :
Now_loading...774KB :2008/06/12(木) 19:10:02 ID:xPDhHlnf
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player7,AS2.0) attachMovie()の深度について質問です。 _root上に正方形のMC(mc1)があり、この各辺に半分隠れる形で10個の棒型の MC(bou0〜bou9)を配置したく思っています。 つまり右のような感じです。 ー + ■ → -■ この場合、正方形MCの深度を0とし、棒型MCの深度をマイナスになるように for (id=0; id<10; id++) { newName="bou"+id; //新しいインスタンス名 this.mc1.attachMovie("bou", newName, -id-1); //5番目の深度は-5 } としましたが、半分隠すことが出来ず、正方形MCの上に現れます。しかし、trace() では深度は確かにマイナスの値になっています。 どうしたら良いでしょうか? アドバイスを願います。
-id っておかしくね。 -1 * id じゃね。
trace( mc1.getDepth() ); そういうことだ
this.mc1.attachMovie ↑これってmc1の中にbouを入れてる事になりますよね mc1自体の深度が0でもその中に入れてしまうと 後から作った方が上に来る気がしないでもない…
あぁそっちか。
自分も深度に関する物を作っているので練習がてら試してみた。
root上に置いたmc1の中にmc2っていう同じく正方形のmcを作成。
mc1の深度を0に指定、mc1.mc2は未設定で深度を測定
mc1は当たり前のように0、そしてmc1.mc2はなんと-16383
こりゃmc1の中に-10程度のattachMovieしても下に行かないわけだ
というわけでmc1.mc2の深度を変更させたら
bouの上だけでなくmc1より上に行ったりして笑ってしまった
でも楽なのはmc1の中じゃなくてroot直のthis.attachMovieの方
自分的にはいい収穫でした。>681も頑張ってくだされ
>>686 暇人乙
687 :
Now_loading...774KB :2008/06/12(木) 21:25:10 ID:VGjBeYvJ
1から5の中からランダムな整数をひとつ取得したい。 ただし、3、4が出る確率は、1、2、5が出る確率の半分にしたい。 この場合、どのようなアルゴリズムが考えられますでしょうか?
レイヤーでなんとかなりそうならそっちに逃げたほうが初心者的には分かりやすいかも。
>>687 var arr = new Array( 1, 2, 3, 4, 5, 1, 2, 5 );
var ran = arr[Math.floor(Math.random() * arr.length)];
690 :
Now_loading...774KB :2008/06/12(木) 22:51:25 ID:VGjBeYvJ
>>689 ありがとうございます。
こんな簡単な方法が思いつかなかったなんて…。
>>681-686 さんきゅうです。
確かにroot上に配置すれば確実ですが、mc1に対するbouの位置には細かい計算
設定が必要で、またグローバル→ローカル座標変換が必要なので別の方法をとる
ことにしました。
(平たく言うと小細工ですw)
まず、空のMCのmc1(ここでは深度0)を用意し、bouを計算によりプラスの深度に配置
します。その上に本来の正方形MCと同じ形のMC(mcCover)をmc1と同じ座標になる
ように配置します(深度は+100)。つまりbouに覆いを被せるということです。
これで見た目はmc1から半分bouが出ている形になり、またmc1.bouとmcCoverが
独立していますので、その後の扱いが楽になる予感!w
692 :
Now_loading...774KB :2008/06/13(金) 01:22:51 ID:FxWSXus4
>>691 少なくともremoveできないマイナスの深度にattachすること自体変だぞw
深度はMCごとに存在するから、設計段階でどれがコンテナになるかを
明確にしておかないとバグの元になるよ
>>679 さんへ
お返事ありがとうございます。スコープの概念がよくわかってなかったみたいです。
>>onData内で適当に区切って変数に代入すればいんじゃね?
一旦、テキストなどの外部変数に移動してから等も試したのですが、ダメでした。
可能とのお返事もいただいたのですが、よくわかりませんでした。
何かいい方法ございませんか?
>>695 ダメでしたはどう判断したの?traceがでないとか、こういうソースでうまくいかないとか書く
697 :
Now_loading...774KB :2008/06/16(月) 14:07:56 ID:YkPGWBT6
すみません。質問です。 win xp as3です。 描画APIでdrawlineやらで線を描いていくflashをつくったんですが、 大量に描画すると重くなるんですが、graphicsオブジェクトで描画 すると、1つの図形がスプライト(ベクタ)になるんですか?
>>697 そう。1つの図形と言うよりも、ひとつのgraphics分の描画を
毎フレームごとにゼロから書き直してる処理になる。
線の修正なんかを考えないなら、描画終わった後にBitmapdataにdrawして
ビットマップ画像として扱うようにすると、キャッシュが利くようになるからそこそこ
軽くはなるんじゃないかな。
cacheAsBitmapでいいんじゃない
700 :
Now_loading...774KB :2008/06/16(月) 18:32:20 ID:YkPGWBT6
なんとすべていちからの描画してるんですか。やっぱビットマップ化 しかないですか・・・ やり直しとかできるようにはしたかったんですが・・・ ひとつひとつの図形を別々のスプライトにしても重そうだし。
701 :
Now_loading...774KB :2008/06/17(火) 17:18:22 ID:tclc13nW
CS3 のAS3で質問します。 値がtrueだったらflaseに、falseだったらにtrueに反転させたいんですけど。 簡単に反転させる方法はありますか? いちいちif文などで書くものなんでしょうか?
var flag : Boolean = true; flag = !flag; trace(flag); //false
703 :
Now_loading...774KB :2008/06/17(火) 17:37:09 ID:tclc13nW
!か!! 助かりました。 thx!!
今までプログラミングをかじったこともない人が ActionScriptに手を出すというのは、やはり無謀なのでしょうか? 解説サイトを回っても、関数、変数、演算子とか訳わからない言葉が並んでる、 という風な状況なのですが・・・。
いや、できる。 何でもいいから作るんだ。
おれAS3が初めてだったけど余裕だったよ むしろ初めてプログラミングする人に向いてるかもしれない 純粋なオブジェクト指向だし(タイムライン使うならちょっとややこしくなるけど) Javaみたいに仕様が膨大ってわけでもないし 他の言語はGUI作るのは結構大変だけどASはGUI前提なので たった数行で画面に反映させることができる プログラミング結果が即座に画面に反映されるのはやってて楽しいもんだよ
>>705 ,706
即レスサンクス。
ASについていろいろ調べて挑戦してみます。
CS3のAS3で質問します。 配置したムービークリップの移動方法について、 ブラウザのテキストのスクロールのように、 スクロールバーを使ってマウスで表示領域を変更できないものかと考えてます。 キーボードやマウスでのイベントではうまく動かせたのですが、 ヒントをいただければありがたいです。 マスクを作成して、ドラッグアンドドロップで動かすことも考えたのですが、 どうもうまくいかないようです、、、
環境:Flash8,AS2 イベントモデルを勉強中なのですが、ある本にあるサンプルで どうしてもわからないので教えてください ステージにComboBoxを配置し、インスタンス名をmyComboBoxとする ComboBoxのlabelに項目1と設定する 期待している動作は、実行時に"_level0.myComboBoxからchangeイベントが実行されました" 項目1選択時に"項目1が選択されました"と出力されることです class Test{ function init(cb:mx.controls.ComboBox):Void{ cb.addEventListener("change",this); } function change(eventObj:Object):Void{ trace(eventObj.target+"から"+eventObj.type+"イベントが通知されました"); if(eventObj.target.selectedItem.label == "項目1"){ trace("項目1が選択されました"); } } } 本にはclassファイルだけしかなくて、flaファイルに書くスクリプトが載っていません。 とりあえず自分で思いつくままに、メインタイムラインに var obj:Test = new Test(); obj.init(myComboBox); obj.change(); と書いてみたのですが、イベントターゲットとイベントタイプがundefinedになります どうすれば良いのでしょうか?
>>708 主語をハッキリと・・・
よく分からないけどstage.addChild(ScrollStage)みたいにステージ一枚かませて
ScrollStage.x = ScrollBar.x;みたいな連動させればいいんじゃないかな
>>709 書く場所はそこでもいいんだけど
イベントってのはコンポーネントの操作によって起こるからchangeを自分で書いても
実行主(コンボボックス)が分からないからundefinedになる。
ステージにあるコンボを触ればtraceが実行されるはずだよ。
711 :
Now_loading...774KB :2008/06/18(水) 01:14:22 ID:LMe9tAAh
Flash CS3、ActionScript 3.0 var request:URLRequest = new URLRequest("aaa.swf"); var loader:Loader = new Loader(); loader.load(request); var mc : MovieClip = new BBB(); this.addChild( mc ); mc.addChild(loader) でステージ上のmcにaaa.swfを読み込みました aaa.swfのフレームには「frame1」「frame2」「frame3」・・・とラベルをつけてあります mc.gotoAndStop("frame1")では動かないのですが、どこにgotoAndStop("frame1")と書けばよいのでしょうか?
>>711 読み込んだswfはLoaderオブジェの子として読み込まれる
Loader.contentで読み込んだswfのルートにアクセスできるよ
mc.gotoAndStop("frame1")ではmcのフレームにアクセスするだけだけだよ
>>710 ありがとうございます。
おっしゃる通りステージのComboBoxを触ったのですが
項目1を選択した時に、"項目1が選択されました"とtraceされるはずがされないんです。
>>712 パブリッシュのPlayerのバージョンが違ってうまく動かなかったので
合わせてみたら無事動きました
ありがとうございます
FlashCS3 Actionscript2.0 ドラッグ可能なムービークリップ そのムービークリップ内のボタンを動作させることは出来ますか?
716 :
Now_loading...774KB :2008/06/18(水) 19:15:21 ID:0u6aRrnC
Flash8、MacintoshOSX FlashファイルをMacintosh用プロジェクターで書き出し後 fscommandフォルダ内に置いている●●●.movをクイックタイムで起動させたいのですが on (release) { fscommand("exec", "●●●.mov"); }
717 :
Now_loading...774KB :2008/06/18(水) 19:19:09 ID:1LaQBaiJ
デバイスフォントの周りに縁をつけるにはどうすれば良いでしょうか?
718 :
716 :2008/06/18(水) 19:32:00 ID:0u6aRrnC
716です。すいません、途中でとぎれてしまいました。 on (release) { fscommand("exec", "●●●.mov"); } と書いても起動できませんでした。 ムービーをflvやフラッシュ内に読み込めば楽なのですが クイックタイム起動〜再生したいのです。 ご存じの方がいらっしゃいましたらご教授願えませんでしょうか よろしくお願いいたします。
>>718 そもそもプロジェクタでexecできたっけな?
普通のswfではそれで動くの?
720 :
716 :2008/06/18(水) 19:47:17 ID:0u6aRrnC
>>719 今のスクリプトでは動きませんでした。
Windows用プロジェクタに書き出した際は、
一度●●●.wmvを開く命令を書いたexeを起動させるというので出来たので
Macintoshならもう少し簡単かと思ってたんですが難しいんでしょうか?
>>717 テキストフィールドにグロウフィルタ適用すればいいんじゃね?
import flash.filters.GlowFilter
var grow:GlowFilter = new GlowFilter(0xFF006600,1,2,2,255)
textField.filters=[grow]
>>720 Winじゃ動くの?Macはよくわからん。すまん。
>>715 できるけど結構面倒。一例を挙げるとこんな。_root上のparentMCの中にbuttonMCってボタンがある場合。
function checkHitArea(){
trace(this)
if(this.buttonMC.hitTest(_xmouse,_ymouse)){
trace("ボタンをクリック");
}else{
trace("ボタン以外の箇所をクリック");
}
}
parentMC.onPress = checkHitArea;
ムービーの階層構造によって変わるかも。
ボタンの位置が固定なら、ボタンのある位置をくりぬいたMC作って、それをhitAreaに指定した方が
分かりやすいかも。
>>723 あ!!!ありがとう御座います!!
多分出来ないだろなとあきらめていました!
試してみます。ありがとう御座います。
Flash CS3 Actionscript3.0で import fl.controls.DataGrid; ってやると 定義fl.controls.DataGridは見つかりませんってエラーが出るのはなんでだろう? ヘルプのDataGridに書かれてるサンプルコードすら動かなくてヘルプミー!
>>725 [ウィンドウ]-[コンポーネント]からDataGridをステージに一回ドラッグしてライブラリに登録するんだぜ
>>726 DataGrid使えるようになりました!
ありがとございます!!
728 :
716 :2008/06/18(水) 21:50:16 ID:0u6aRrnC
>>722 いえいえ、考えていただきありがとうございました。
もう少し調べてみます。
729 :
708 :2008/06/18(水) 22:04:05 ID:tye2+4WM
>>710 お礼が遅くなりましてすいません。
質問が不明瞭で失礼いたしました。
意図を汲んでいただいた回答でありがとうございます。
stageをかますというのが今ひとつ理解できておりませんが、
まずは試してみようと思います。
730 :
716 :2008/06/18(水) 22:20:05 ID:0u6aRrnC
少し目線を変えて再度質問させてください。 使用パソコンがWindowsかMacintoshかを判定し、 Windowsなら → フレーム10へジャンプ Macintoshなら → フレーム20へジャンプ というようなことはできますでしょうか? よろしくお願いいたします。
732 :
716 :2008/06/18(水) 23:28:29 ID:0u6aRrnC
>>731 キーワードありがとうございました。ここから調べてみます。
スクリプトはAS2です。 画面内にあるムービークリップ、もしくは特定フレームにあるムービークリップを 最初から再生し直すスクリプトってないでしょうか? マンガみたいなものをつくっていて、 ボタンで各ページ(ムービークリップ)に自由に飛べるようにしているんですが、 「現在のページに飛ぶ」をクリックしたときだけは、移動しないため、 静止したままムービークリップの変化なし……という状況です。
gotoAndPlay(1);
現在地を変えずに画面内にあるムービークリップのみを、最初から再生させたいんです。
ムービークリップ.gotoAndPlay(1);
ひとつのムービークリップではなく、 画面内にあるムービークリップ全部、もしくは特定フレームにあるもの全部を最初から動かせないでしょうか?
>>737 条件後出しすんなや。
その条件にあうものを全部gotoAndPlay(1)でいいだろ。
全部ならfor...inでも使ってくれ。
ムービークリップなんて高度なものを使いこなすのは君にはまだ無理。 グラフィックシンボルでやりなさい。
「画像」という名前のレイヤーにあるムービークリップを全部(1)から動かす、とかはできるんでしょうか? (ムービークリップの名前は何がくるのかまったく不明) for...inのつかいかたは自分には理解できなかったです。
まったく不明ってなに? なんの理由があって不明なの? 自分で名前つけれないの? まとめて動かしたいmcを配列に入れてforでまわせばいいでしょ ActionScriptの基礎からちゃんと勉強したほうがいいよ
AS以前の問題だな
とりあえずプログラムを勉強しましょう ASスレだしなw
744 :
Now_loading...774KB :2008/06/19(木) 09:51:55 ID:pUTpar2i
子ムービー クリップを複数作成する時に、引数で渡すインスタンス名を 同じにしてるんですけどなんか問題ありますかね?
自己レス createEmptyMovieClip メソッドの戻り値を持っていれば、個別に参照できるし 問題ないみたいですね。 引数で指定したインスタンス名で参照すると、最初にその名前に 該当するインスタンスを返すみたいなんで、 for..in とかは使えないですね。
複数じゃないしw
最近AS3に移行しようと悪戦苦闘してるものです。 手始めにいっちゃん基本なボタン用のクラスを作ってみました。 まずMovieClipクラスを継承させてマウスの状況でそのMCの任意のフレームラベルの所を再生するようにしてパッケージ化しました。 でボタン用に作ったMovieClipのタイムラインにクラスと呼応するラベルを付けて各ステートごとのキーフレームアニメーションを設定し書き出したのですが 何故かマウスがオーバーな状態でボタンがオーバーとアウトのステートを繰り返すのです。 おかしいなと思い、 原因を探ったらアニメーション用にそのボタンmc内に入れ子にしている別のmcでした。これを外すと正常に動作します。 一つのカスタムクラス内に別にmcが入っちゃいけないのでしょうか? それとも何か回避させる方法があるのでしょうか? 御教授下さい。
MCはコンテナになりますからいくつでも子を持てます 設計がわるいのでしょう
>>747 たぶん、入れ子のmcのアニメーションしてる部分が、マウスポインタの下で
透過してたりしてなかったりしてるんじゃないのかな?
AS3.0だとイベントフローの仕組みがあるから、入れ子のイベントも親に伝達
されてそんな動きになるような気がする。
回避方法は、イベントオブジェクトのtargetとcurrentTargetを使って判定すれば
いいんじゃない?
function check(e:MouseEvent){
trace(e.target.name,e.currentTarget.name)
}
mc.addEventListener(MouseEvent.MOUSE_OVER,check)
最近AS3に移行しようと悪戦苦闘してるものです。 手始めにいっちゃん基本なボタン用のクラスを作ってみました。 まずMovieClipクラスを継承させてマウスの状況でそのMCの任意のフレームラベルの所を再生するようにしてパッケージ化しました。 でボタン用に作ったMovieClipのタイムラインにクラスと呼応するラベルを付けて各ステートごとのキーフレームアニメーションを設定し書き出したのですが 何故かマウスがオーバーな状態でボタンがオーバーとアウトのステートを繰り返すのです。 おかしいなと思い、 原因を探ったらアニメーション用にそのボタンmc内に入れ子にしている別のmcでした。これを外すと正常に動作します。 一つのカスタムクラス内に別にmcが入っちゃいけないのでしょうか? それとも何か回避させる方法があるのでしょうか? 御教授下さい。
751 :
750 :2008/06/19(木) 13:41:50 ID:pUySr9S+
連投してしまった スマソ
752 :
747 :2008/06/19(木) 14:35:29 ID:G13K3k5u
>>749 アドバイスありがとうございます!
早速そのコードをカスタムクラスに書き込んで確認して見ました。
やはり入れ子のmcもマウスイベントで判定してしまっていました。
ということはイベントオブジェクトのtargetとcurrentTargetが同じになるときだけマウスイベントの関数を実行するようにすれば良いでしょうか?
それとも入れ子のmcにクラスが継承されない様な方法或はリスナーをとってしまう方法などあるのでしょうか?
754 :
752 :2008/06/19(木) 15:28:55 ID:pEAO81eI
>>753 そのコードをカスタムクラスのコンストクタの所に入れたら直りました!
そうですね、最初書いた様にAS3初心者なもんでイベント処理もうちょっとチャンと勉強します。
755 :
Now_loading...774KB :2008/06/19(木) 17:11:44 ID:Clkft1DQ
CS3 AS3で質問します。 package { public class clTest extends MovieClip { 省略 public function clTest(url:String,cName:String):void { 省略 } public function off():void { removeChild(mc1); } } みたいなパッケージで他のパッケージから offメソッドを呼び出したいんですけども var cT:clTest; cT.off(); で呼び出そうとするとdispOff() の引数の数が一致していません。0 が必要ですが、1 が指定されました。 となって呼び出せません。 呼び出す方法を教えてください。
756 :
755 :2008/06/19(木) 17:19:04 ID:Clkft1DQ
自己レス 呼び出す時にイベントが入ってないせいっぽい。
>>755 public function off(mc:MovieClip){
removeChild(mc);
}
呼び出し
var cT:clTest;
cT.off(mc名);
これでいけませんか?
AS2までしかやったことないけど
758 :
755 :2008/06/19(木) 17:37:12 ID:Clkft1DQ
>>757 タイマーイベントだったのに引数がなかったせいだったっぽいです。
しかし、AS3にはいまだ慣れない…
759 :
730 :2008/06/19(木) 17:44:39 ID:Zsky62Jo
>>731 教えていただいたキーワードから何とかやりたいことができました。
どうもありがとうございました。
760 :
Now_loading...774KB :2008/06/19(木) 20:43:18 ID:UjACjNFR
Arrayクラスの変数に、Classクラスの変数入れること出来ますか??
メニュー用のXMLList定義を、ソースの内部に置いてたのですが、定義が大きくなっちゃったんで、 データ定義部分をソースの外に出したいです。 データをXMLファイルにして、プログラムから読み込む事も考えたんですが、どうせメニューが 実行中に変更されたりする訳でもないですし、コンパイル時に読み込まれるだけで構わないかな? とも思っています。 そういう時、どういう風に処理するのがスマートでしょうか? 参考になるサイトなど紹介して頂けると助かります。
>>762 試してみたら、それでいけました。マクロ展開みたいなのがあるんですね。ビックリです。
ありがとうございました。
なんか、#無くても動くっぽいです。
764 :
Now_loading...774KB :2008/06/20(金) 15:40:46 ID:L27LZbuV
cryptoっていうas3用のフレームワークがあるんだけど、 ドキュメントがないでつ。誰かしりませんか。
766 :
Now_loading...774KB :2008/06/20(金) 20:52:30 ID:F18Mr99m
クラスと同じ名前のメソッドに引数ってダメですかね?? エラー#1010が出てきました
767 :
Now_loading...774KB :2008/06/20(金) 20:58:37 ID:F18Mr99m
FlashDevelopを使ってるのですがエラー文章が文字化けしてます↓↓
>>767 Javaのバージョンを最新にしても駄目?
769 :
Now_loading...774KB :2008/06/20(金) 23:44:15 ID:F18Mr99m
クラス全体で一つの配列共有すること出来ますか?? 方法をお願いします
static宣言すればいいよ
>>765 のコードを使ってSWFを公開した場合は何か問題がありますか?ライセンス的に
>>766 >エラー#1010が出てきました
それって何エラーだよwコンストラクタに引数付けるのはよくあるしw
>>769 クラス全体って意味がよくわからんが、
その配列を使うクラスに参照を渡せばいいんでね
>>771 LICENSE.txtを和訳しろって言ってるのか?
773 :
Now_loading...774KB :2008/06/21(土) 09:10:05 ID:ZuRxhRLi
ムービークリップを移動させるとき、 MC._y += (MC.newY - MC._y)/2 だと最初は速く、徐々にスピードを落としてnewYに近づいていく感じになりますよね 逆に最初はゆっくり、徐々に速く移動させるにはどのようなスクリプトを書けばいいんでしょうか
>>774 2を1以下にすると、たとえば
MC._y += (MC.newY - MC._y)/0.8
だと最初の移動でnewYを飛び越えてしまうのですが・・・
あのう、少し考えてくださいw
すみません考えてもよくわからなかったので 初期の速さを設定して係数をかけて増やすことにしました
778 :
Now_loading...774KB :2008/06/21(土) 14:56:44 ID:A3YsZ5nw
var p:AIU = new AIU(i,j); AIUと言うクラスとメソッドは作ってるのですが(i,j)にエラーが出ます。 書き方間違えてますか?
780 :
Now_loading...774KB :2008/06/21(土) 17:22:13 ID:+P386VTT
ID:MSI2qnswは頭冷やせ
781 :
781 :2008/06/21(土) 17:50:59 ID:r6ZZ63C+
CS3 AS3で質問いたします。 #!/usr/bin/perl #----- ランキングデータファイル $logfile = "./hisc.dat"; 省略 #----- データをFlashへ送る print "Content-type: text/plain\n\n"; for ($i = 0; $i < 10; $i++) { ($sc, $pname) = split(/,/,$sortdata[$i]); print("score$i=$sc&name$i=$pname&"); } #----- データの書き換え if ($getdata{'score'} ne "") { open(OUT, ">$logfile"); for ($i = 0; $i < 10; $i++) { print OUT "$sortdata[$i]\n"; } close(OUT); } exit; このperlの出力結果をAS3でscoreとnameの値を受け取るにはどのようなScriptにすればよいでしょうか? ゲームのハイスコアランキングを作りたいのですが送信はできたのですが受信の仕方がわかりません。 どなたかお解りの方がいらっしゃいましたら教えていただけませんでしょうか?
>>780 スレタイを100回読んでからレスしましょう
>>781 URLLoader使う。サンプルはヘルプ等でさがしましょう
783 :
781 :2008/06/21(土) 18:16:15 ID:r6ZZ63C+
>>782 ご回答ありがとうございます。URLLoader使っています。
サンプルやヘルプ等も探しました。
受け取る値が1つの時は受け取り方がわかるのですが
上記のような場合はどうしたら良いのか解りません。
お解りの方がいらっしゃいましたらアドバイスいただきたいです。
>>783 csvなテキストとして受信してFlash側で配列にでも分解するとかがいんじゃね
785 :
781 :2008/06/21(土) 18:54:42 ID:r6ZZ63C+
>>784 ご回答ありがとうございます。
そのような方法があるのですね。
調べてみます。
786 :
Now_loading...774KB :2008/06/21(土) 19:37:58 ID:m60skRZ+
mouseChildrenについての質問です。 newやステージにおいてあるmcにmc.mouseChildren = falseとすると 期待通りの挙動になるのですが、 loaderでmcを読込み mc.mouseChildren = falseとするとマウスが 反応しなくなります。これどこがおかしいのでしょうか? ソースは以下のとおりです。 var l:Loader = new Loader(); l.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete); l.load(new URLRequest("btn.swf")); // 読込み完了イベント function loadComplete(evt:Event){ // 読込まれたMovieClipを変数mcとする var mc:MovieClip = evt.target.loader.content as MovieClip; // mcをボタンモードにする mc.buttonMode =true; // mcの子はマウスに反応させない mc.mouseChildren = false; // mcにクリックイベントを追加する mc.addEventListener(MouseEvent.CLICK,clickHandler); // mcをステージに配置 addChild(mc); } // マウスクリックハンドラ function clickHandler(e:MouseEvent){ trace(e.target) } 環境は winXP FLASHCS3 妹とパソコン共有してます。
787 :
Now_loading...774KB :2008/06/21(土) 20:44:26 ID:A3YsZ5nw
Flex2 Builderでフォントを指定するファイルわかりますか? FlashDevelopで見るとエラー文章だけが日本語が文字化けになってます。エラー文章を英語にしても良いので教えてください
788 :
Now_loading...774KB :2008/06/21(土) 21:19:40 ID:A3YsZ5nw
>>787 ちなみにプログラムを書くときは日本語でも文字化けは無いです。コンパイルしたときのoutputでのエラー表示が文字化けしてます
フォントじゃなくて文字コードだろ・・。
配列に入れてグリッド上に配列した複数の Sprite に対して、 クリックすると周りの Sprite にも影響を与える、というものを作っているのですが、 クリックされたのは event:Mouseevent で取得し、 event.target で調べられるのは分かったんですが、 周りのオブジェクトに対しての参照をするのに、boxArray[X]の形でアクセスしたいのですが、 よいアイディアを教えてください。 event.target の参照された配列の番号を取得する方法ってありますか?
>>790 Spriteに配列の番号を保持させとけば?
792 :
Now_loading...774KB :2008/06/22(日) 01:27:37 ID:enZHuLyw
map[i][j](型はクラスB)はクラスBが継承したクラスAのフィールドで、Del()がクラスBのメソッドであるとします。 するとクラスBでmap[i][j].Del()って出来ますか?出来ない場合別の方法で表現できますかね?
793 :
Now_loading...774KB :2008/06/22(日) 01:34:26 ID:enZHuLyw
>>792 やっぱ別の方法の表現はいらないです。可能か不可能でお願いします
ごめんなさい・・・俺の国語力が足りないみたい・・・・orz
795 :
Now_loading...774KB :2008/06/22(日) 09:03:27 ID:enZHuLyw
>>790 Dictionary使って関連付けとけばいいんじゃないかな?
例えばrootにsprite1,sprite2,sprite3があるとして、
var boxArray:Dictionary = new Dictionary();
boxArray[sprite1] = "sprite1に関連付けられた情報";
boxArray[sprite2] = "sprite2に関連付けられた情報";
boxArray[sprite3] = "sprite3に関連付けられた情報";
function onClickSprite(e:MouseEvent) { trace(boxArray[e.target]);}
sprite1.addEventListener(MouseEvent.CLICK,onClickSprite);
sprite2.addEventListener(MouseEvent.CLICK,onClickSprite);
sprite3.addEventListener(MouseEvent.CLICK,onClickSprite);
こんな。配列の番号でもなんでも突っ込んどけばいいんじゃない?
>>792 AがBを継承してんなら普通に実行できるんじゃないかな?
public class B {
public function del() { trace("Bのdel");}
}
public class A extends B{
}
な関係で
var array=[[new A(),new A()],[new A(),new A()]];
array[0][0].del();
array[1][1].del();
798 :
Now_loading...774KB :2008/06/22(日) 10:17:31 ID:enZHuLyw
>>792 この文章をプログラムで表すと設定はこんな状態です
public class B extends A{
DEL(){処理}
map[1][1].DEL()//このクラス内でこれができるか
}
public class A{
クラスB型の配列map[i][j]定義(初期値も代入)
}
>>790 Spriteのnameプロパティを設定しておいてそれから取得するとか(Stringだけどね)
>>798 それって、循環参照なんじゃねーのw継承の設計を見直した方が良いと思うぞ
800 :
Now_loading...774KB :2008/06/22(日) 10:58:31 ID:enZHuLyw
>>800 できない
staticにすればいけると思うけどどういう流れでそうしなきゃいけないのか分からないから
ロジック的に正しいかは分からないw
>796 >799 ありがとうございます。 わざわざナンバーの変数を作ってプロパティに加えてみたのですが、 799さんのようにnameに入れて利用するほうがスマートでした。 dictonaryというのが初耳だったのでこちらを選びましたがお二人に感謝です。
803 :
Now_loading...774KB :2008/06/22(日) 15:38:46 ID:nns2Eju4
フラッシュプレイヤーで実行中の画像を保存する方法ありますでしょうか? オブジェクトの位置を保存・再生するなどの方法ではなく、JPGやPNGでの保存です。 ninjaの絵日記についている静止画保存機能のようなものです。
804 :
Now_loading...774KB :2008/06/22(日) 15:49:17 ID:enZHuLyw
Spriteのnameってどんな機能があるんだ?
805 :
Now_loading...774KB :2008/06/22(日) 16:00:37 ID:Cu595abL
CS3+AS3.0で質問です。 btn.addEventListener(MouseEvent.CLICK, btnClick); function btnClick(event:Event):void{ var MC:MovieClip = new sample(); MC.x = 0; MC.y = 0; MC.name = 'sampleA'; MC.hensu = 0; stage.addChild(MC); } でbtnをクリックしてインスタンスsampleAを生成できました。 次に別ボタンに以下の関数を記述 btn2.addEventListener(MouseEvent.CLICK, btn2Click); function btn2Click(event:Event):void{ sampleA.hensu = 100; } これでパブリッシュすると 「1120: 未定義のプロパティ sampleA へのアクセスです。」のエラーが出ます。 インスタンスsampleAのhensuに値を代入するにはどうしたらいいんでしょうか?
806 :
Now_loading...774KB :2008/06/22(日) 16:16:13 ID:enZHuLyw
i=0〜N-1 j=0〜N-1 addEventListener.a[i][j](マウスクリック) こんなこと出来ますか?ボード上に配置されたコマの1つが押されたときにイベント発生。その押された配列a[i][j]のiとjの取得は可能ですか?
807 :
805 :2008/06/22(日) 16:41:53 ID:Cu595abL
解決しました。 var target_mc:MovieClip = MovieClip(stage.getChildByName("sampleA")); target_mc.hensu = 100; とすればよいみたいです。 インスタンスへのアクセスがなんだか面倒ですね・・・
808 :
Now_loading...774KB :2008/06/22(日) 21:04:07 ID:ASNTLqkQ
yahoo videocastからFLVを抽出して 再生するaction scriptを教えてください。
809 :
Now_loading...774KB :2008/06/23(月) 01:29:24 ID:7BsaYCum
クロージャにしても、ループ時点のi,jは取れないんじゃね?
811 :
Now_loading...774KB :2008/06/23(月) 01:38:36 ID:oCszmoWd
>>806 これをしたい理由は、配列a[i][j]が押されたとすると、例えばa[i-1][j-1]も処理をするみたいな、押された配列の周りにも影響を与えることをしたいからです。
>>811 Spriteのnameを"i,j"とでもしといて、event.target.name.split(",")とかしてみれば
いやSpriteのインスタンス変数に保持させればいいだろ
814 :
Now_loading...774KB :2008/06/23(月) 06:51:08 ID:oCszmoWd
>>807 MCをbtnClickの外側で宣言しとけばいんじゃね
スコープを勉強汁
>>814 Spriteは確かDynamicじゃないので動的にプロパティを付け加えられないから、
継承したクラスのインスタンス変数にi,j(ちゃんとした名前に汁w)を
持ってそれを設定するような感じかな
816 :
Now_loading...774KB :2008/06/23(月) 15:47:55 ID:qaG9oL8X
すみません初心者中の初心者なのですが、質問です。。。 今Fusekitにてtweenをコントロールしているのですが、 このTweenを特定の座標に来たときにポーズさせ、 ボタンを押すと再開させたいと思っています。(Resume?) ここで、Fuse kitをメソッドを使わなくても良いので 座標を取得して特定の処理をする方法を 教えて頂けたら嬉しいです。 使用環境はCS3+AS2.0+FuseKit2.1.4です。 どうぞよろしくお願いします。
817 :
Now_loading...774KB :2008/06/23(月) 21:24:28 ID:oCszmoWd
FlashDevelopで実行したときに別ウィンドウでAdobeのflash-playerを起動させたいのですが、プログラムと同じ位置で実行結果がでます↓↓ 設定できますかね?
できるよ
819 :
Now_loading...774KB :2008/06/23(月) 22:07:03 ID:oCszmoWd
820 :
Now_loading...774KB. :2008/06/23(月) 22:32:21 ID:iGJ74iWR
swf4でボタン(キーボード)を押したときに物体を動かすって事出来ますか?
822 :
Now_loading...774KB :2008/06/24(火) 01:29:27 ID:i7KLFIYI
actionscript3です function moveMC(event:Event):void{ ←ここ var targetMC:MovieClip = event.target as MovieClip; targetMC.x += speed; } movieClip.addEventListener(Event.ENTER_FRAME, moveMC); ←ここ で、moveMCに引数speedを渡したいのですが、 ←の行の関数の定義と、イベントハンドラの追加のところはどのように書き足せばいいんでしょうか?
調べてみたら引数渡せないみたい targetMCの変数で渡すしかないのか
渡せるよ
>>823 function makeMoveMC(speed:Integer):Function {
return function(event:Event):void {
var targetMC:MovieClip = event.target as MovieClip;
targetMC.x += speed;
}
}
で、できたらいいのにな。
>>825 AS3にIntegerはないよw
Java使いの方ですか?w
ところで
var targetMC:MovieClip = event.target as MovieClip;
targetMC.x += speed;
これはevent.target.x += speed;
じゃだめなの?
827 :
803 :2008/06/24(火) 03:45:31 ID:3WvjHoJW
誰か回答お願いします。 flash内にそういった機能があるかだけでも教えてほしいです。
>803 できると思います。 FLASH単体だと無理、私はPHPでデータを保存してます。 AS3でやってますがAS2でできるかどうかは知りません。 JPEGやPNGにエンコードするクラスも出回ってます。
>>826 言語はC++, Pythonがメインで色々使ってる。
AS3はあんまり触って無いからNumberだったかintだったかIntegerだったかなんていちいち覚えてない。
関数の中のコードは
>>822 のコピペ。event.targetの型なんていちいち覚えてない。
「
>>825 のコードでできるよ!」と言いたい訳ではなくて、「closure使えば?」と言いたかっただけ。
いちいち覚えてらんないですよね、わかります
831 :
Now_loading...774KB. :2008/06/24(火) 15:50:35 ID:krRnedsi
829です。 出来ないのでしょうか?
833 :
Now_loading...774KB :2008/06/24(火) 21:58:05 ID:vLw+VC6J
AS3で作ったものは携帯に入れれますか?
入れれれれれません
フラッシュでゲームを作ろうと奮闘中なのですが、よくサンプルなどにある フレームレート60だと動きが少しカクカクするような感じになってしまいました。 そこでコンパイルオプションでフレームレートを1000にしてみたところ すごいスムーズになったんですが、これはやはりマズイのでしょうか?
>>835 自分しかプレイしないならそれでいいよ。
公開するならよほど画面が小さい等処理が軽いのでなければ
現状30フレームが限界だ。
1000フレームは普通に異常。
しかしフレームレート60とかどこのアホが作ったサンプルだよ。
そりゃ見栄えは良くなるけど。
1000なんてできた?
>>836 CPU使用率も特に上がらなかったのでいけるかとも思ったんですが、
やはりデバックの状態でスムーズに見えてるだけで、公開先では
フレームレートが抑えられるってことなんでしょうか?
>>837 コンパイルオプションで
-default-frame-rate 1000
に指定しました。
Flex Builder3を使ってます。
フレームレート1000って 健康に悪そうだな。
1000fps出せる環境てどんなんだww 非Flashのアクションゲームでも30から90だな それ以上は人間の眼が追いつけない 1000 はまず無効な数値だからデフォルトの フレームレートが設定されただけだろ
多分、FlashがVSyncしてるんじゃない? 1000fpsにすると、VSyncに合わないフレームはスキップされる。 画面のリフレッシュのたびに確実にフレームが進むから綺麗。 Flash自体が60fpsだと、画面のリフレッシュレートが60Hzから少しでもずれていると、 時々1フレーム分のズレがおきてカクってなるけど、1000fpsなら問題にならない。 でも、1000fpsにすると、低スペックマシンだと負荷がかかりすぎて逆に重くなる。 120fpsとか、24fpsとか、画面のリフレッシュレートと近くなくて、なおかついろんな素数で 割り切れるフレームレートが良いと思う。
842 :
803 :2008/06/25(水) 01:31:16 ID:rIYfzeC/
画像の作成の仕方なんですけど、サーバ内で送信されたデータを元に 描画したフラッシュを再現してphp+url2bmでキャプチャする方法しか思いつかなかったんですが、 >JPEGやPNGにエンコードするクラスも出回ってます はフラッシュから吐かれたデータを元に画像を作るとかいう方法でしょうか? 詳しく理解したいのでできればクラス名を教えてほしいです。 よろしくお願いします。
>>841 勉強になります
色々やって試してみます
846 :
Now_loading...774KB. :2008/06/25(水) 16:50:38 ID:RP4gqqMg
831ですw 間違えましたorz 正しくは820ですのでよろしくお願いします。
847 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:04:20 ID:gqQ02kuK
848 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:08:43 ID:gqQ02kuK
849 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:12:52 ID:gqQ02kuK
850 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:15:32 ID:gqQ02kuK
851 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:31:17 ID:gqQ02kuK
852 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:34:20 ID:gqQ02kuK
853 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:36:41 ID:gqQ02kuK
854 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:38:54 ID:gqQ02kuK
855 :
名探偵コナン ◆OkhT76nerU :2008/06/25(水) 17:41:55 ID:gqQ02kuK
落ち また来ます。
856 :
Now_loading...774KB :2008/06/25(水) 17:52:25 ID:+TpBpD4m
オブジェクトにカーソルが触れたらアクションするイベントありますか? マウスクリックはありますが、
マウスオーバー?
>>856 rolloverイベントがあると思う。
as2
buttonName.onRollOver = function(){
//命令
}
as3
buttonName.addEventListener(MouseEvent.MOUSE_OVER , overEvent);
function overEvent(e){
//命令
}
859 :
Now_loading...774KB :2008/06/25(水) 20:08:41 ID:+TpBpD4m
CS3+AS3.0+AIR1.1の環境なのですが、
DataGridのeditableをtrueに設定し、実際にDataGridを編集しようとしたら
セキュリティサンドボックス侵害エラーが発生します。
editableがfalseなら問題はないようです。
また、パブリッシュ設定をAIRからFlash Player 9に変更してもこのエラーは出ません。
DataGridのデータの取得は可能なのですが、気持ちが悪いので原因分かる方はおられませんか?
-----------------------------------------------------------------
セキュリティサンドボックス違反
security domain 'app:ファイル名'が互換性のないコンテキスト
'
http://adobe.com/apollo 'にアクセスを試みました
-----------------------------------------------------------------
861 :
Now_loading...774KB :2008/06/26(木) 21:25:13 ID:Wr24mdS1
FlashDevelop + Flex2 でやってたのですがそれで作ったASファイルをFlashLiteでも使用出来ますか? 携帯に入れたいのですが
862 :
803 :2008/06/26(木) 23:34:07 ID:62Qxrw1g
>>828 flashでそんなことできたんですね。
初めて知りました。ありがとうございました。
863 :
Now_loading...774KB :2008/06/27(金) 03:20:12 ID:JRIjzPZU
VISTA、AS2、FLASH MX2004の環境です。 シューティングゲームを作っていて、ミサイルのMCと敵のMCがぶつかった時に 敵を消したいんですがうまくいかずに困ってます。 どなたかアドバイスくださいm(--)m やりたい事 ・ミサイルに当たったら、消えるmcを作りたい。(複製しても同じ挙動をする) ・敵が消えたら、score_txt.textの数字に1を加算 配置 ・_rootにmc_enemyZoneを配置、 mc_enemyZone内にランダムにmc_enemyを生成させています。 ・カーソル(_xmouse、_ymouse)についてくるbtn_Mを押すと、ミサイルが発射します。 ミサイルは、btn内にあります。 ↓以下の方法をためしましたが、うまくいきませんでした。 //mc_enemyにコードを記載1(インスタンとしてmc_enemyを複数生成したいので、できればこの方法で実現させたいです) if(this.hitTest(_root.btn_M){ this.removeMovieClip(); score_txt.text ++; } //反応なし
865 :
Now_loading...774KB :2008/06/27(金) 12:39:50 ID:9QS6shuc
AS3(CS3)
bt1.addEventListener(MouseEvent.CLICK,pageJump1);
function pageJump1(evt:MouseEvent):void{
var url1:URLRequest=new URLRequest("
http://www.google.co.jp/ ");
navigateToURL(url1)};
現状では新規ブラウザが開いてしまうのですが、
そのままのブラウザで指定URLを開くにはどうすれば良いでしょう。
初心者な質問で申し訳ないです。
>>863 hitTestの部分をenterFrameに入れてないとかじゃねーだろなw
>>865 navigateToURLの第2引数でなんかなかったっけ
867 :
Now_loading...774KB :2008/06/27(金) 13:06:20 ID:JRIjzPZU
>884 震度は、300です。 今作ってるのが成功したら、enemyを配列で管理して 震度は300+iにするとです。 >866 enterFrameには入れてるんです。
>>867 hitTestの部分にtrace入れて確実にそのルーチンに入ってるか確認
出来てたら、あとはパスの確認かな
869 :
Now_loading...774KB :2008/06/27(金) 13:42:08 ID:9QS6shuc
>>866 >>865 です。
ありがとうございます。無事完成しました。
ほんと初歩的な質問で申し訳ない。感謝です。
870 :
Now_loading...774KB :2008/06/27(金) 14:11:30 ID:rUNmnuel
オブジェクトの生成と削除について質問です new で生成した Embedクラスのオブジェクトを 削除もしくは破棄するにはどうすればよいのでしょうか? ********************************* [Embed(source='res/enemy/0.gif')] private var Enemy0:Class; private var enemy:Sprite; enemy=new Enemy0(); ********************************* 動的に生成したものではないので × delete enemy; 表示から外すだけで残ってるので × removeChild(enemy);
>>870 enemy = null;
他からの参照残ってなきゃガベージコレクトで消えるよ
872 :
870 :2008/06/27(金) 17:16:23 ID:rUNmnuel
>>871 thx!!! 帰宅したら試してみます!!!
似たような亜種スレに間違えて書き込んでいたのを今になって気づきました。。 とても困っているのでお助けください…。 使用ソフト 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フレーム目にジャンプしないのです。 上記のスクリプト以外に何か入力しなくてはいけないのでしょうか…?
マルチ。 向こうのスレに質問の取り下げレスなし。 モラルの無いやつは氏ね。
これもマルチになるんですか。ではあのスレの意味は何なんですか?
取り下げて来ました。 先に質問取り下げなかったのは確かにモラルの無い行動でした。 申し訳ございません。
>>873 ボタンはMCで作っているんだよね?
まず、単独関数gotoAndPlay()は過去のもので非推奨となっており使用しないほうがいい。
まぎらわしいが、MovieClip.gotAndPlay()というべつのメソッドを使うほうが
理解も正しくなる。
で、MC「A」からみて、移動したいターゲットは何かを考える。
ただし、サーバにあげて実行した場合など、フレーム5が読み込まれていないのに
そのボタンを押してしまうと、何も起こらなくなってしまうが、そのへんは
大丈夫か?
それとfalceは写し間違いか?
なんでonClipEvent(load)とフレームアクションの双方で同じ処理をしているのか?
できればもうすこし基本部分を勉強して理解することをすすめる。
>>877 返答ありがとうございます。
ボタンの作りは
「シェイプをシンボル変換でMC化して、それにon()ハンドラを当てている」状況です。
これだけでエラー無く、またパブリッシュ後マウスを乗せたときにも
反応(指カーソル)したので、そうしていました。
MovieClip.gotoAndPlayを推奨ですね、それに直そうと思います。
ちなみにAS2でも対応していますでしょうか?
「A」から移動したいターゲットは5フレーム目なので、
on(release){
gotoAndPlay(5);
}
と入力しました。安直すぎるかなとは思いましたが、ここも悪い点でしたでしょうか?
falceについては
http://homepage3.nifty.com/ginga-b/MX/btnmc.html ここを参考にさせていただいていたのですが、flash_movie_hitに当てる部分には特別何か書いているような記述は無いですね。
自分の勘違いでした。flash_movie_hitの方のASは削除します。
>>878 >MovieClip.gotoAndPlayを推奨ですね、それに直そうと思います。
>ちなみにAS2でも対応していますでしょうか?
対応している、というかAS2.0ならこうすべき。
>「A」から移動したいターゲットは5フレーム目なので、
この解釈が違う。
ターゲットというのは、MovieClip.gotoAndPlay()のMovieClipにあたる部分。
this.gotoAndClip(5)だと、Aの再生ヘッドががフレーム5に移動することになる。
thisは自分、つまり「A」を指すから、Aに対して命令してるってこと。
Aからみたら移動したいMovieClipのターゲットパスは何になるかが理解できなくちゃいけない。
この場合はthis._parentもしくは_rootのはず。
参考にしてるサイトに、ターゲットパスについても詳しく書いてあるはずなので、読むといいよ。
それ以外は間違ってない。
>falceについては
falseの綴りミスを実際のflaファイルでもやっていないか訊いただけっす。
>>879 gotoAndClip(5)ってなんだw
すまん、gotoAndPlay(5)の間違いです。
>>879 「MovieClip.gotoAndPlay」というのが
「MC名.gotoAndPlay」だという事を理解出来ていませんでした。ダメですね…。
仰るとおり、this._parentにしたらすんなりと動作しました。
今まではターゲット指定しなくても動くような簡単なASしかやったことがなかったので、
これからは常にターゲット指定するように心がけます。
falseについても見落としていました。英語もダメダメですね…。
ともあれ、無事解決することが出来ました。
別スレに誤爆するなど迷惑をかけた事もありますが、本当にありがとうございました。
882 :
Now_loading...774KB :2008/06/27(金) 22:20:56 ID:fvCcI2HF
2次元配列で管理されているオブジェクトがあるのですが。 例えばa[0][0]のオブジェクトが空のa[1][0]にゆっくり落ちるようにするにはどのような処理が良いのでしょうか?
>>882 その配列に何が入っていて「ゆっくり落ちる」ってどういう意味?
もう少し詳しく書かないと分からないよ。
>>882 これがゆっくりした結果だな、さすがゆとり。
>>884 何か嫌なことでもあったのか?
そういうときは風呂入ってすぐ寝るのコンボがオススメ。
>空のa[1][0]にゆっくり落ちる 難しすぎる。想像することすら許されないのか。
a[0][0]→a[0.1][0]→a[0.2][0]・・・・→a[1][0]みたいになってほしいんですね。わかります
テトリス的なことじゃないのか
flexで自作コントロールを作ってます。 2つの子コントロールをもつ親コントロールがサイズ変更された場合、 子コントロールの1つが、変更後の親コントロールのサイズに合うように、 自動的にリサイズされてほしいんですが、簡単にできる方法はありますか? .NetでいうところのDock=Fillの場合の挙動になってほしいです。 親コントロールのサイズ変更を検出して、 自前で子コントロールのサイズを変更するしかないでしょうか?
>>889 普通に子コントロールのサイズ指定を%指定にすればいいだけでしょ。
落ちモノ作ろうとしてる奴バカなうえにウザいな
893 :
Now_loading...774KB :2008/06/28(土) 14:56:52 ID:+sEJ/+7g
配列はテトリス的なものです
ASに初めて触るので、このスレを覗きに来たんですが
>>2-17 見て俺には無理だとわかりました。
本当にありがとうございました。
あれはたまたまだ やっかいな質問で論議してた時 いいタイミングでフラッシュ先生が答えてくれただけ そもそもここは初心者用スレではないしな あきらめんなw
>>895 たまたまでしたか・・w
本買って勉強します。
座標です
897です。 色々調べたのですがまだ解決できません。 AS2.0ではこの様に書き込めば中央にゆっくりよってきました。 -----タイムライン----------------- Stage.scaleMode = "noScale"; Stage.align = "LT"; -----ムービークリップ-------------- root.bb01.onClipEvent (load) { spd = 5; } root.bb01.onClipEvent (enterFrame) { this._x += (Stage.width/2-this._x)/spd; this._y += (Stage.height/2-this._y)/spd; } 3.0での書き方がいまいちよく分からないのでどなたかお教えくださいませ。
AS3じゃクリップアクションは使えないんだお… メインタイムラインでまとめて管理するか もしくはOOPでやるしかない
>>899 いまいちってどこがいまいちわからんのだ?
as3の基本は分かってるの?
2.0は一応最低限はわかっているつもりです。 3.0での書き方はさっぱりで… クリップアクションが使えないのは理解しているのですが、 どうもググってもこれといったものにヒットせず質問しました。
>>902 では、基本を勉強して解らないところを質問しましょう
アルファベットも解らない人に英文読解を教えるのは無理ですw
テメーはその程度の能力しか持ってねーって事だろ。 わかる人だけ答えればいいじゃん。 能力のねー無能のドカスは揚げ足取りしてんじゃねーよバーカ死んでろカス。
AS2ちょっと解りますだけではAS3は無理です OOPの基礎、class、継承など解りますか? それをここで教えるのは無理です ASのスレなのでコピペ先教えろとか作ってくれは勘弁してくれ
ま、もうちょっと勉強してからだね。
すでに>900さんが物凄い勢いで答えてるしなあ
ほらよ もっと努力する姿勢を見せないと相手にしてくれないお //フレーム2 初期設定 var spd:int = 5; stage.addEventListener( Event.ENTER_FRAME, main );//エンターフレーム登録 //フレーム3 this.stop(); function main( event :Event ):void{//メイン処理関数 bb01.x += (stage.stageWidth /2-bb01.x)/spd; bb01.y += (stage.stageHeight/2-bb01.y)/spd; }
AS3の質問です Object から Object に浅いコピーを行い内容を複製したいのですが obj[key] の key の部分を別の配列に保持しておく以外の方法が思いつきません もっといい方法はないですか?
912 :
648 :2008/06/29(日) 17:52:36 ID:Z/dyDSA1
>>651 >バージョンがわからんけど、Flash8以上でかつ、同一ドメインの画像を読み込んで
>使い回したいんだったら、一度BitmapDataに読み込んだ画像をdrawして、それをattachBitmapで使い回せばいいよ。
>attach(Movie?)というとAS2.0かな?duplicateだと読み込んだ画像まではコピーされないんじゃなかったかな。
as2です。duplicateだと確かにコピーはできませんでした。
BitmapDataでdrawするところはわかったんですが、
外部画像をBitmapDataに格納する方法がわかりませんでした。
loadBitmapでいけるかと思ったのですがライブラリに格納されていなければならないようです。
>>911 from copy import copy
o2 = copy(o1)
as3です。 ライブラリ内にある適当なインスタンスhoge(クラスもhoge)の中にボタンbtnがあるとします。 このインスタンスをvar hoge1:hoge = new hoge();で動的に生成した場合、中のbtnを参照するには どうすればいいのでしょうか?お願いします。
>>913 レスありがとうございます。
Python でのコピーは上手くいきました。
でも今困っているのは FlashCS3 + AS3 です。
>>910 ありがとうございました。もっと勉強します。ご迷惑お掛けしました。
FlashCS3+AS3の環境です。 ActionScriptのコードオンリーで 埋め込みフォントを設定するにはどうするのでしょうか?
>>911 もちっと具体的に例とか書いてくれるとわかるんだけど、
自作でclone()メソッド書いて実装するんじゃダメかな
>>914 btnにインスタンス名つけといて、普通にhoge.インスタンス名でいいのではないかな
>>917 CS3だとライブラリに新しいフォントで埋め込むんじゃないかな
flexだとEmbedとか使うけど
>>912 いったんムービークリップに読み込んで、そのムービークリップをBitmapDataにdrawすればいいよ。
読み込んだムービークリップは、消しても構わないんじゃないかな(タイミングによってはプレーヤーごと落ちるけど)。
import flash.display.BitmapData;
//ローダーと、読み込み用のムービークリップ
var loader:MovieClipLoader = new MovieClipLoader();
var container:MovieClip = _root.createEmptyMovieClip("container", 0);
//読み込んだ画像を書き込むビットマップ
var bitmap:BitmapData;
//画像セット
var listener:Object = new Object();
listener.onLoadInit = function() {
bitmap = new BitmapData(container._width, container._height);
bitmap.draw(container); //あとはこれをテクスチャ感覚で使いまわせばおk
_root.attachBitmap(bitmap,1);
container.removeMovieClip();
};
loader.addListener(listener);
loader.loadClip("test.jpg",container);
基本的なことで申し訳ないです。すActionScript3で出来ることって例えば何があるのでしょうか? もちろん、全部挙げればキリがないと思うのですが、ActionScriptを覚えなければ出来ないことを知りたいです。 馬鹿過ぎる質問かもしれませんがオブジェクト指向や何やらという言葉が書いてあるサイトを見ても それが具体的にどんなことが出来るようになるのかがわかりませんでした。 AS3もFlashも1つのツールでしかないということはわかりますが、そのAS3というツールでどんなことが可能になるか教えていただけないでしょうか?
921 :
Now_loading...774KB :2008/06/30(月) 14:36:05 ID:vkQh8GX8
>>920 俺が感じたのは
速くなります。
普通の小さなASなら全然気にならない程度だけど、大きいプログラムなら、すっごい速くなります。
(3D系はめちゃめちゃ早くなる)
XMLが使いやすい。
_xって書かなく、xでok
構造がAS2の時よりしっかりしているので、原因究明がはやくなったかな?
これぐらいかな。
>>920 FlashでActionScriptを使うとできるようになる事は何?という意味なら、
・計算を使って、ムービーの進行や、画面上の物をアニメーションさせる事ができるようになる
⇒複雑な動きの場合、手作業より楽
・ユーザーの操作に反応するムービーを作成できる
⇒アクションに対していろんなリアクションが取れる。音ならしたり、動かしたり、読み込んだり、etc...
というのが2本柱かな。そういうのが特に必要と感じなければ、使わなくても構わないと思うよ。
具体的にどこまでできるか、と言われると、それこそキリがないんだけどw
処理速度やセキュリティ的にアウトな事じゃなければ、大概はできちゃうんじゃないかな?
すごい本格的なゲームが作れるんだおっお!
>>918 > 自作でclone()メソッド書いて実装するんじゃダメかな
そのclone()メソッドを作りたいのですが
外部の複数のクラスから操作されるオブジェクトなので
プロパティの名前がわからないのです
public class ObjectContainer {
public var object:Object = new Object(); // 辞書的な使い方
public function clone():ObjectContainer {
}
}
やっぱりプロパティの名前を配列に保持するべきですか?
AS3は、バイナリーデータの加工ができる。 MIDIほか、バイナリーデータの加工に便利なライブラリも登場してきている。 また、ECMA Script文法法規に則ったプログラミングができるから、 メソッドやコンストラクタの引数に初期値を持たせたりできる。 かなり立派なプログラム言語になってきました!
OSやブラウザが違ってもFlash Playerのバージョンさえあってれば移植作業などなしに同じスクリプトが動作する。 Javaが目指したクロスプラットフォームを実現した。 同じECMAScriptでも、Javascriptではこうはいかない。 しかもJavascriptで実現されたAJAXと同じことをさせた場合、中間コード化したAS3.0のほうが動作が軽い
>>926 > しかもJavascriptで実現されたAJAXと同じことをさせた場合、中間コード化したAS3.0のほうが動作が軽い
これってIE限定だろ。最近のブラウザならajaxの方がずっと速いぞ。
例えば、240x240の画像を300枚表示してスクロールさせた時のCPU負荷と体感速度比べてみ。
ajaxの方がずっとずっと軽快だぞ。
Flashもajaxも両方でかなり大きなサービスを作ってきたが、今はFlashは部分的にだけしか使
わなくなった。
なんでスクロールすんだよ馬鹿 中間コード関係ないじゃん
じゃ、中間コード化した具体例あげてみて。 Flashの高速化にめちゃくちゃ苦労した経験からいうと、JSよりもFlashの方が 速いと言われると「マジかよー」と思う。
だめだコイツ 馬鹿でもWEB業界はやっているのか安心しました
うん、君もういいよ。 Flashのスクロールに中間コード関係ないんだってさ。FlashPlayerに なったつもりでよく実装方式考えてみろよ。
FlashPlayer9になったつもりで考えてみました。 82 b1 82 cc 83 58 83 8c 83 6f 83 4a 82 ce 82 c1 82 a9
バイトコードよりインタープリタのが早いんだってさ。OSに なったつもりでよく実装方式考えてみろよ馬鹿。 レンダリングエンジン引き合いに出してくんなよ馬鹿
はいはい。
>>924 ObjectContainerのコピーを外部から作りたいのかな
public function clone():ObjectContainer {
var tmp:ObjectContainer = new ObjectContainer();
tmp.obj = this.obj;
return tmp;
}
これはシャローコピー。ディープコピーならObjectもnewするとかでどうかな。
外部で作ったObjectContainerのclone()呼べばいいかと
意味違ってたらすまん
>>935 詳細を書いたつもりが混乱させたようですいません。
内容をコピーしたいのはObjectの方のプロパティです
var o1:Object = {foo:"bar"};
var o2:Object = copyObject(o1);
o2.foo = "BAZ";
trace(o1.foo); // bar を表示
trace(o2.foo); // BAZ を表示
この場合 copyObject() がfooというプロパティの存在を知らないと
o1.foo をコピーできません。
というか無理な気がしてきたので自前で HashMap クラスを作りたいと思います。
お返事ありがとうございました。
>>936 単純なコピーだったら、こんなで行ける時もあるよ
var obj1:Object = {prop1:[1,2,3],prop2:"あいうえお",prop3:123};
//for in方式で列挙して代入 privateな仕組みがあるとアウト
function clone1(source:Object):* {
var newObj:Object = new Object();//sourceのクラス
for (var prop in source) {
newObj[prop] = source[prop];
}
return newObj;
}
//byteArray方式でバイト情報としてコピー いろいろとアウトになるけど、単純なオブジェクトならいける場合も
function clone2(source:Object):* {
var myBA:ByteArray = new ByteArray();
myBA.writeObject(source);
myBA.position = 0;
return (myBA.readObject());
}
var obj2:Object = clone1(obj1);
trace(obj2.prop1,obj2.prop2,obj2.prop3);
obj2 = clone2(obj1);
trace(obj2.prop1,obj2.prop2,obj2.prop3);
ただ、確実でない。理想は
>>935 さんの言うように、コピーするクラス側にcloneメソッドが用意してくれてあると、
スマートなんだけどね。外部クラスだったらそうもいかないかな。
>> 937 for ... in でプロパティのキーをループ処理できたのですね for each ... in でプロパティの値をループ処理する方法しか知りませんでした 上の方法で完璧です☆ありがとうございました
939 :
Now_loading...774KB :2008/06/30(月) 21:57:57 ID:6JAbozR6
お世話になります。Flash歴 2ヶ月レベルのものです。 Flash8でボタンのクリックイベントで InputText のカーソル位置に文字を挿入したいのですが、 カーソル位置に文字を挿入できません。お助けください。 InputText 内に'ABCD'と入力されているときで カーソルがBとCの間にあるものとします。( こんな感じ-> AB|CD ) この状態でボタンの on (click) 内で次のコードを実行すると on (click){ Selection.setFocus(_root.txt1); // InputTextのtext1にフォーカス移動 pos_cur = Selection.getCaretIndex(); // カーソルの位置取得 pos_start = Selection.getBeginIndex(); // 選択開始位置取得 pos_end = Selection.getEndIndex(); // 選択終了位置取得 trace(pos_cur); // 4が出力されます trace(pos_start); // 0が出力されます trace(pos_end); // 4が出力されます } pos_cur, pos_start, pos_end 全ての値が2となってほしいのですが、 上記のような間違った値が出力されます。 ちなみに、同様のコードをtext1のイベント内で実行すると pos_cur, pos_start, pos_end とも正しい値が取得できます。 Selection.setFocus(_root.txt1); した後に 何かを実行しないとSelection.get三兄弟の正しい値が取得できないような感じがしますが ご存じの方、ご教授お願い致します。
940 :
Now_loading...774KB :2008/06/30(月) 22:12:05 ID:2Uk3Ko6s BE:1701162296-2BP(0)
941 :
Now_loading...774KB :2008/07/01(火) 00:18:57 ID:NBl5n5ey
939は日本語でoK?
>>940 右クリック→再生のチェックをはずす
ところで
>>926 >>927 蒸し返すようで悪いんだけども、画像スクロールってas3まったく関係なくね?w
>>942 >画像スクロールってas3まったく関係なくね?w
どうしてそう思うのだ?例えばFlexのスクロールバーコンポーネントのコード読んめば一目瞭然だろう?
>>927 ここはASのスレだ。ここでflashを使わないなどと書けば、
>>933 のようなflashマンセーの
キチガイが沸いてくるのはいつものことだろうよ。学習しろよ。
しかし、初心者にajaxよりもflashの方が速いと説明しておいて「レンダリングエンジンの速度
は別の話」というのは悲しすぎるな。flashにレンダリングさせないで何の速度を自慢するんだ?
物理エンジンの計算速度が速いぜとでも言いたかったのだろうか。
>>943 いや240*240の画像300枚のスクロールとかas3の処理よりレンダリングエンジンによる処理の負荷のほうが圧倒的に高いわけで、
as3がいくら速かろうがレンダリングエンジンはas2のときと変わってないんだしレンダリングエンジンの処理以上のスピードはでないわけで。
なので
>>927 さんが言ってるのはas3との比較にはならいから関係なくね??ってこと
俺の言ってることがおかしかったらスマソ
>>944 あれ?今flash自体のことじゃなくてas3にすることによる恩恵云々の話だよね?
この場合レンダリングエンジンはas2と変わってないから考慮しないってのはもっともな話だと思ったのだけど・・・
あれ、おれなんか勘違いしてる?w
>>944 さんの言うとおりas3は物理エンジンの計算速度が速いぜと言いたいのだけど・・・w
どこでもキチガイ原理主義者はいるな ボクの使ってる言語がサイコーでボクは正しいです ごめんなさいが言えないんだな
AS3をやり続けるとこうなってしまう──
そう危惧した
>>920 はAS3は諦め、別の言語を習得した。
それは、HSP。
// JavaScript var time = new Date().getTime(); var count = 0; for ( var i = 0; i < 100000; i++ ) { count++; } alert( new Date().getTime() - time ); // ActionScript 3.0 var time:int = getTimer(); var count:int = 0; for ( var i:int = 0; i < 18000000; i++ ) { count++; } trace( getTimer() - time ); これでだいたい同じスコア。 ということで、AS3.0はJS(Fx2)の約180倍は速いってことだね。
で、それを何百回ぐらい試行して誤差とか計測したのかなw
俺も実際にどのくらいの差がでるのか興味あったから試してみた AS2,AS3,javascriptの3つを比較 100万までの数の素数を求めるプログラム(意味はないw) プログラムで10回まわした平均を出してるのでこのプログラムをさらに10回動かして、計100回の平均を求めた AS3 var N:int = 10; var sum:int = 0; for (var i:int = 0; i < N; i++) { sum += primesTest(); } trace(sum/N); function primesTest():int { var time:int = getTimer(); var n:int = 1000000; var i:int; var primes:Array = new Array(n); primes[0] = false; primes[1] = false; for (i = 2; i < n; i ++) { primes[i] = true; } for (i = 2; i * i < n; i ++) { if (primes[i]) { for (var j:int = i*2; j < n; j += i) { primes[j] = false; } } } return getTimer() - time; } AS2はこれのint型をNumber型に置き換えただけ
jsもほぼ変わらない function primesTest(){ var time = (new Date()).getTime(); var n = 1000000; var i, j; var primes = new Array(n); primes[0] = false; primes[1] = false; for(i = 2; i < n; i++){ primes[i] = true; } for(i = 2; i*i < n; i++){ if(primes[i]){ for(j = i*2; j < n; j += i){ primes[j] = false; } } } return (new Date()).getTime()-time; } var N = 10; var sum = 0; for(var i = 0; i < N; i++){ sum += primesTest(); } document.write(sum/N);
テスト結果 AS2 6773.6 毎回警告が出てくるので10回で断念w AS3 427.7 357.3 355.5 365.8 365.4 357.7 354.9 356.7 361.1 361.2 100回平均 約366.33 javascript FF3 805.1 776.3 793.6 754.4 739.4 804.8 783.9 841.8 796.2 798.9 100回平均 約714 IE7 4862 こちらも毎回警告が出てくるので10回で断念 結果はIE7おせえええ FF3はええええ でしたw FF3とくらべてもまだAS3のほうが倍近くはやいけど、FF3.1が出てきたらもうちょっと差が縮まるかもね ちなみにJavaだと100回平均約12でしたw
Cきぼんぬ
Cは10でした JavaとCにとってはこのくらいの負荷は誤差の範囲なのでまた違うテストする必要があるね っとそろそろスレチもいいとこなんでこれくらいで失礼
956 :
Now_loading...774KB :2008/07/01(火) 09:39:35 ID:2nZ3zT+e
>>941 ごめんなさい。長々と書いちゃいました。
短く表現すると次の通りです。
setFocusでTextInputにフォーカスを移動した直後、
Selection.getCaretIndexやgetBeginIndexで正しい値が取得できないのはなぜ?
と言う、質問なのですが...
ご存じの方、いらっしゃいませんか。
>>956 ボタンクリックでなく、マウスクリックでテキストフィールドの値を取得してみるとか
>>955 CとJavaの場合、実行時間よりも、プロセスの起動時間やメモリ消費量が違う。
959 :
Now_loading...774KB :2008/07/01(火) 11:49:27 ID:Svh81VPA
FlashにURL文字列を外部xmlから読み込みこんで使いたいですが、 "&"という文字を他の文字列で置き換えるなどせずに、そのまま扱うことは可能でしょうか?
>>959 属性にしなければ、OK。
属性の場合は、&
961 :
Now_loading...774KB :2008/07/01(火) 14:01:26 ID:Svh81VPA
%26amp%3b ですか?
962 :
Now_loading...774KB :2008/07/01(火) 14:02:10 ID:Svh81VPA
間違えた &
963 :
Now_loading...774KB :2008/07/01(火) 14:12:19 ID:Svh81VPA
& a m p ;
>>963 そうw
2chだと、自動的に変換されるのな
1フレームから25フレームまで設置してあるSoundMCに attachSoundで長めの曲を設定し、繰り返し回数999回で曲を流します。 5〜20フレームに色々設置してあるボタンのgotoAndStopやgotoAndPlayを使って ページを行ったりきたりするようになっているのですが サウンドの.stop()は全く設定していないのに 現在のフレームより前に戻ると曲が止まってしまいます。 (18フレーム目から6フレーム目に戻るなど) PlayでもStopでもカレントフレームから進む分には曲が止まりません。 ずっと曲を流しっぱなしにしたいのですが これは仕様なのでしょうか? 回避方法はあるのでしょうか flashはCS3でAS2.0使ってます。宜しくお願いします
>>965 仕様というか、965自身がそういう作り方してるんだと思う。
ASやflaの構成を詳しく書かないと、これ以上具体的な助言はできない。
968 :
Now_loading...774KB :2008/07/01(火) 18:05:28 ID:6StmygB6
お願いします。 AS3.0です。 イラレからパスデータを読み込み、パスデータ上のポイントの座標を取得する事って可能でしょうか?
969 :
965 :2008/07/01(火) 19:05:21 ID:vk++qjmz
>>967 すみません。先ほどと少し違います。
また改行多いと言われて縮めたので見づらいのはご了承下さい
1フレーム目:ローディングバー
2フレーム目:attachするためのサウンドファイル全部置いてある
3フレーム目から25フレームまで空のMC(sound1とse1〜4)の5個が置いてある
また3フレーム目でASで曲の設定
//BGM1
var sobj1 = new Sound(sound1); sobj1.attachSound("bgm1"); sobj1.start(0,999);
//クリック音
var sose1 = new Sound(se1); sose1.attachSound("SE1"); sose1.stop();
4フレーム目はstop()しただけのタイトル画面。ボタンを押すと
on(release){
sose1.start(0,1); gotoAndPlay("anime1");
}クリック音を鳴らして5フレーム目に飛んで8フレームまでアニメ。
同じく"anime2"として8フレーム目のボタンを押すと
9フレーム目に飛んで11フレームまでアニメ
ここまではいいのですが
8フレーム目や11フレーム目でタイトルに戻るのボタンを押す
on(release){
sose1.start(0,1); gotoAndStop("title");
}
もしくは11フレーム目の別ボタンで
on(release){
sose1.start(0,1); gotoAndPlay("anime1");
}
5フレーム目からのアニメを再度再生すると、なぜかsobj1の音が止まってしまいます。
sobj1.stop();があるのかと検索かけたのですがありませんでした。
現状flaはおいといて新規で上記のサウンドだけの部分を再作成しても同じ状況です。
>>969 よくわからんけどsoundとMCの関連付けがどっかでおかしくなってるんだと思うよ。
soundと関連付けしたMcが存在してない瞬間があるとか、MCネーム"se*"が大文字になってるとか、名前付け忘れてるのがあるとか確認してみ。
とりあえず"se*"リネームしてみれば?
>>969 同じものをつくってみたが、こちらでは再現しない。
>>970 がいうように、大文字小文字の間違いとか、同じ変数使ってるとか
ターゲットの名前間違ってるとか、何かそこには書かれていない問題がある。
972 :
939 :2008/07/02(水) 21:25:03 ID:elpyTVaq
AS2でFusekitを試していて、ボタンを押したらモーションを逆再生させたいのですがどうすればいいのでしょうか? Tweenクラスでいうyoyo()のようなメソッドがないようなのですが
973ですがコールバックでトゥイーンさせることで解決しました
975 :
Now_loading...774KB :2008/07/04(金) 15:47:38 ID:3zeGHTJG
作成したFlash(AS2)のすぐ上にプルダウンメニュー(adobe spryのmenubar)を配置しているのですが、 Mac OSX 10.4.11のSafari3/player9.0.124だけFlashの下に一部のメニューが下に隠れてしまう現象が発生しています。 メニューがFlashの下に隠れるのは、FlashでsetIntervalが動いている間(なのでほとんどずっと)ですが 同じ現象がおこった方いませんか?また、これの回避策は、setIntervalを使用しない以外にないでしょうか。 safari3以外はどのOS・ブラウザでも何も問題ないので、 safari3のためだけに仕様を変えるのは出来れば避けたいのですが・・・
初歩的な質問だと思いますがお願いします。 //ActionScript2.0 var clip :MovieClip; clip.onRelease = function() { //this }; この場合、onRelease 内では this は clip を指すと思うんですが、 外のクラス変数等にアクセスする場合、 _parent,_root等を駆使するしかないんでしょうか? もっと簡単な方法があったらご教示ください。
>>976 簡単というかそれが普通だし
スコープを勉強するといろいろよくわかるよ
978 :
Now_loading...774KB :2008/07/05(土) 21:59:46 ID:c/kXg/1r
ActionScript3からJavaScriptの命令を使用したのですが、コンテナが対応していないとエラーが出ました。IE6.0のブラウザで表示させてるのですが原因がわかりません
979 :
Now_loading...774KB :2008/07/05(土) 22:02:58 ID:c/kXg/1r
ちなみにActionScript3で Externalinterfaceクラスではこのコンテナは対応してませんと出ます。
>>976 つい最近同じ質問がどっかで出たばかり。 姉妹スレとかこのスレのログとか探せばあるよ。
>>975 wmodeをtransparentにしてみた?
983 :
Now_loading...774KB :2008/07/07(月) 22:15:06 ID:4VB/lboM
リファレンスでComboBoxクラスのプログラム例(画面一番下)があったのですが、そのままコピーしてもエラーが出てきます。 ComboBoxコンポーネントがポイントだと思うのですが何ですか?
>>983 できたよ
コンポーネントをステージにドラッグしてcbっていう名前をつけないと無理だよ
as3で質問があります。 var loader_obj = new Loader(); loader_obj.load(new URLRequest("test.png")); として、ローダーにtest.pngを読み込ませたものを var bmp_data:BitmapData = new BitmapData(500,500,true,0xFF000000); bmp_data.draw(loader_obj.content); stage.addChild(new Bitmap(bmp_data)); のようにステージに表示した場合をパターン1 次にあらかじめ、test.pngをライブラリに読み込ませておいてそれをリンケージで "test"としてビットマップにし、 var bmp_dataCheck:BitmapData = new test(0,0); var bmp_data:BitmapData = new BitmapData(500,500,true,0xFF000000); bmp_data.draw(bmp_dataCheck); stage.addChild(new Bitmap(bmp_data)); それをパターン1と同様にステージに表示した場合をパターン2 このパターン1と2の画像出力を見比べてみると極々微妙に違ってしまうのですが何故でしょうか? ローダーを介すると色が変化するのでしょうか。よく分かりません。
>>985 Flashに埋め込む場合は軽くするために圧縮してたと思う
ローダーから読み込む場合はどうなるか知らないから参考にならないかもしれないけどw
>>986 getPixelsで色を取得してみると、ローダーから読み込んだ方だけ色が位相してしまってる感じなんで
圧縮とはちょっと違う感じなんですが。
>>985 Flashに読み込んでる場合は、画像のプロパティに圧縮に関する設定がある。
その設定がどうなっているかをまず確認するんだ。
>>988 予めライブラリに読み込んでる方は何の問題もないので
ローダーで読み込んだ場合の画像の圧縮プロパティがある…んでしょうね、ちょっと調べてみます。
500ピクセル四方の画像じゃないんじゃね?
991 :
985 :2008/07/08(火) 02:10:02 ID:37ODdv7N
失礼しました。photoshopのpng出力が狂ってただけでした。 jpgやgifでは問題なかったのでもしかして…と思いきや。 お騒がせ致しました。
win9x、AS1です。 phpのerror_reporting();みたいなのが ASにもありましたら教えてください。
>>992 その前にphpのerror_reporting();が何かを教えてください
994 :
992 :2008/07/08(火) 05:26:34 ID:aYKCcW0Q
>>993 警告やエラーのチェックレベルを上げる関数です。
例えば、存在しない関数を呼び出したり、
宣言していない定数を使ったりすると、
エラーとして教えてくれます。
>>994 AS3ならstrictモードとかあるけどAS1だど何でも通りそうな気がする
>>994 とりあえず、FlashDevelopというフリーのコードエディタを使いなさい
998 :
985 :2008/07/08(火) 13:17:31 ID:37ODdv7N
同じ状況でひっかかる人がいるかもしれないので、補足。 最新のphotoshopだと分かりませんが、ちょっと古いPhotoshop(7,cs1)でpngを出力する時、 [Web用に保存]を選ぶとガンマ値を勝手に変更してしまうので、そのpngファイルを flashでローダーを通して扱うと色が沈んでしまいます。 もしflashで扱う場合は、[別名で保存]でpngを選択しておいた方が安全と思われます。
なんでこう信者は痛いかな
>>998 昔のPhotoshopのガンマ値変更の話は以前読んだが、
それなら、オーサリング時にFlashに読み込んだ時点で
pngの色がおかしいって気づかないか?
Flashに配置すればガンマ値がまた変更されるんか?
そこが不思議なんだが。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。