ActionScript 誰かが物凄い勢いで解答するスレ 225

このエントリーをはてなブックマークに追加
1Now_loading...774KB
AcitonScriptのことなら
初歩的な質問でもなんでもおk

見れない、保存したい、flashを作りたいはスレ違い
下記の関連スレ、超基本的な質問へ。

●質問する時は自分の環境を書く(AS2,AS3の別も)
●質問はものすごい勢いじゃなくて結構
●できるだけコードも示す
●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く

前スレ
ActionScript 誰かが物凄い勢いで解答するスレ 24
http://unkar.jp/read/pc12.2ch.net/swf/1249379608
関連スレ
Flash製作初心者の質問スレッド レイヤー39
http://pc12.2ch.net/test/read.cgi/swf/1223896635/
2Now_loading...774KB:2009/11/21(土) 14:57:24 ID:yay0fwcT
はじめまして。
actionscriptでボンバーマンを作っています。
爆弾の火炎がブロックを突き抜けないようにするにはどうしたらよいですか?


3Now_loading...774KB:2009/11/22(日) 05:30:31 ID:7sPqax9t
質問
socket通信でMCにアクションを与えるにはどうしたらいいでしょうか?
4Now_loading...774KB:2009/11/22(日) 10:34:15 ID:u7HRRkOR
配列について誰かおせーて

var list = new Array();
var Y = 7;

if (配列の中に変数Yがあるか){
trace("あるよ");
}

if文の条件式はどうやって書いたらいいんだ?
5Now_loading...774KB:2009/11/22(日) 13:36:21 ID:6u3TdWIh
var list = [ 4,5,8,3,1,7,6,4,3]
var Y = 7;
var check:Function = function():Boolean {
for each( var a:String in list ){
if ( a == Y ) {
return true;
}
}
return false;
}
if ( check() ) trace("あるよ");
else trace("ないあるよ");
6Now_loading...774KB:2009/11/22(日) 13:43:17 ID:6u3TdWIh
for each( var a:String in list ){
↑あーstring型になってるけど直して
7Now_loading...774KB:2009/11/22(日) 18:26:58 ID:u7HRRkOR
>>5-6

どうもです。
ちょっとやってみます!
8Now_loading...774KB:2009/11/22(日) 18:30:36 ID:nRnyJuDl
>>3
MCとsocket通信するのか?
9Now_loading...774KB:2009/11/22(日) 19:53:49 ID:X43OYfqQ
FLASH内の速度を保つ為フレームスキップをする時は無音のWAVをストリーミングをかけて行っていたのですが
他にも良い方法はあるのでしょうか
10Now_loading...774KB:2009/11/22(日) 22:42:16 ID:7sPqax9t
>>8
MCを動かしたいです
11Now_loading...774KB:2009/11/22(日) 22:48:23 ID:nRnyJuDl
>>10
具体的に何がやりたいかが見えない・・・
どっかからsocketでデータを読んできて、
その内容に応じてMCを動かすってこと?
12Now_loading...774KB:2009/11/22(日) 23:08:31 ID:7sPqax9t
>>11
例えばKeyboard.UPを押したらMCを上に移動させたいです
13Now_loading...774KB:2009/11/22(日) 23:13:10 ID:MseXE1s7
>>10
[サーバ(何らかのCGIなどが動いているサーバ)]

  ↑                   │
 (1.Socket で情報要求 ⇒ 情報返却)
  │                   ↓

[             SWF              ]


 2.取得した情報を元に、MovieClip なりなんなりを動かす
14Now_loading...774KB:2009/11/22(日) 23:17:22 ID:nRnyJuDl
>>12
socketクラスは使わないんですかね
そうだとしたら、「flash キーボードイベント」とかでググればいいと思います
環境を書いてくれたら、エロい人がコードを載せてくれるかもしれません
15Now_loading...774KB:2009/11/22(日) 23:17:48 ID:MseXE1s7
>>12 要はネットワーク越しにリモート操作みたいな事をしたいって事か?

1.[PCその1] キーボード押す「ABC」
2. → 押された内容をサーバに送信
3. → [PCその2] サーバに情報要求、1の内容を取得
4. → PCその2上で、MovieClip を動かす

みたいな。 あるいはマッチングサーバ上でIP受け取って、Peer2Peer で通信するってなら
2を端折って、3はPCその1から取得になるが


16Now_loading...774KB:2009/11/22(日) 23:21:41 ID:nRnyJuDl
人を下手に見る俺のいやな性格がにじみ出てるぞ、おい
17Now_loading...774KB:2009/11/22(日) 23:38:20 ID:MseXE1s7
質問の仕方が曖昧で詳しい内容を書いてない所から、初心者なのかな?と推測した上で簡単に補足しておくと、
マッチングサーバやPeer2Peerあたりの処理は、基本的にCGI他で自作する必要がある。
その為に必要な知識は、ネットワークは当然として他にマルチスレッドや、場合によってはDBの知識もいるので、
(あるいはDBのようななんらかの処理もいる、かも、しれないので)

質問にあった 「やりたいこと」 は簡素でシンプルでも、理解して実装するには結構な経験が必要になるよ
手前の素養が十分なら、資料探して実験でもすれば あぁなるほど って簡単にわかるとは思うけど

既にこの辺お手の物って人だったら、老婆心スマン
18Now_loading...774KB:2009/11/23(月) 10:00:12 ID:ei6HublK
スティッカムやUStreamのカメラやキャプチャを使ったライブ配信で
送信する映像の圧縮をブラウザのflashプラグインではなく、
別ソフトでエンコードしてライブ配信したいのですが可能でしょうか?

どちらも映像の送信帯域が100kbps程度しかなく激しい映像は
ブロックノイズだらけになり視聴に耐えません。
flvのh264フォーマットを別ソフトでリアルタイムエンコすればマシになるのではと考えてます。
19Now_loading...774KB:2009/11/23(月) 16:35:26 ID:obJthXtc
質問させてください
socket通信機能までは作ったのですが
ユーザー毎に違うMCを配置するにはどうしたらいいでしょうか?
20Now_loading...774KB:2009/11/23(月) 17:10:57 ID:7t2rd1M5
>>19 お前、上の ID:7sPqax9t か?だからもっと具体的に。
上の方のレスとか読んで無いのか?

質問の内容が、実装のアイデア次第でどうとでも作れるような内容なので答えようが無い。
ユーザー毎に違うMCって何? ログインさせてそれぞれ違う絵を表示させたいって事なら、
最早ASの質問じゃなくて、実装方法の質問になる。 そうだった場合、 ID:MseXE1s7 のレスを見ろ
2119:2009/11/23(月) 17:23:02 ID:obJthXtc
ライブラリにはmc1とmc2があります。
user1がログインしたときmc1をuser2がログインしたときmc2を表示させたい。
ASはどのように書いてよいのかさっぱりわかりません。
そもそもuser1からuser2は見えるの?
22Now_loading...774KB:2009/11/23(月) 17:32:43 ID:7t2rd1M5
>>21 ひょっとして前にドラクエ作るとか言ってた人か?

>user1がログインしたときmc1をuser2がログインしたときmc2を表示させたい。
>ASはどのように書いてよいのかさっぱりわかりません。

ASだけで出来る訳無い。 ログイン、って言うのはどこに?
その辺の仕掛けを既に作っているなら、単にサーバから 「そのユーザのID」 を返してもらって、
そのIDに紐づく別の swf なり画像なりをサーバからロードでもすりゃいいんじゃね?
それほど多く無いのなら、単にそのライブラリ上のMovieClipを表示すりゃいいんじゃね?

とりあえず、これASの質問じゃないと思う
23Now_loading...774KB:2009/11/23(月) 17:40:41 ID:7t2rd1M5
>>22 を訂正というか補足というか。

「ASだけで出来る訳無い」 ってズバっと書いちゃったが、そもそも話の前提が何も書かれてなかったので、
例えば Socket で Peer2Peer しながら、って話なら ASだけでも出来ると言えば出来るし、
Flex の Multimedia Server 使うって話なら、AS の範疇かもしれない。

いずれにしても前提も内容も最初から書いて質問してほしい。じゃないと答える方がしんどい
2419:2009/11/23(月) 17:59:51 ID:obJthXtc
>単にそのライブラリ上のMovieClipを表示すりゃいいんじゃね?

いや、user2がログインしてMC2を表示させるだけだと他のuserからuser2は見えませんよね?
ただ単にMCを表示するだけじゃダメですよね。その辺のASの書き方がわからないのです。
25Now_loading...774KB:2009/11/23(月) 18:31:01 ID:7t2rd1M5
>>24 だからPeer2Peerで、とかサーバを介してとか、自分で前提を出せよ。 全部の例書かせる気か。
見えませんよね?じゃなくて見えるようにすりゃいいだけだってば。
それは実装方法の問題。 ASの書き方、じゃなくて。

あと失礼だけど質問の様子から見て、多分やりたい事と自分の技術のギャップがデカ過ぎないか
26Now_loading...774KB:2009/11/23(月) 18:35:16 ID:7t2rd1M5
あと、付いたレスに対して、「ここがわかる、ここはわからない」 をせめて書いてくれ
これじゃどこまで話すべきかすらわからない。 全部エスパーしないといけない
27Now_loading...774KB:2009/11/23(月) 18:58:16 ID:FTKyT/mW
tweenで右に移動しているオブジェクトがあります
ボタンを押すと動きを高速化させたいのですがどうすればよいでしょうか
またtweenは1フレームに何px動くというような設定は出来ないのでしょうか
28Now_loading...774KB:2009/11/23(月) 19:16:34 ID:obJthXtc
>>25
もういいですあなたは。
あんなやり方やこんなやり方があると言われてもこっちはわからないから質問してるのですよ。
そもそも以前からあなたはASのAの字も出さない(出せない)じゃないですか。
こうやってみたら?とささっとAS書いてくれたら一番助かりますしそれを望んでいます。
親切な方のレスを心よりお待ちしています。
2997:2009/11/23(月) 19:18:55 ID:9nHXmO5M
ドラクエ君だよね?パターンおんなじだもんw
30Now_loading...774KB:2009/11/23(月) 19:20:42 ID:7t2rd1M5
>>28 なんだそれ。わかんないから質問してるって?だから どこがわからないか書けと言っているんだよ
ちゃんと内容読んでるか? 開き直って何逆ギレとかしてんだよ。 最低過ぎて何も言えない、もう

31Now_loading...774KB:2009/11/23(月) 19:21:58 ID:7t2rd1M5
ASのAの字も出さないでって、内容も理解しないでコピペする気まんまんかよ。
正直ここまで糞な奴って、見たこと無いわ。頭おかしいんじゃねぇのか?
32Now_loading...774KB:2009/11/23(月) 19:30:09 ID:7t2rd1M5
とりあえずドラクエ野郎はスレに迷惑だから、こっちのどっちか行け

スレタイ:Flashゲームを作ろう!
http://pc12.2ch.net/test/read.cgi/swf/1258537724/

早朝のプログラミングスレ
http://yutori7.2ch.net/test/read.cgi/news4vip/1258928301/
33Now_loading...774KB:2009/11/23(月) 20:33:24 ID:obJthXtc
>>32
それはあなたに潰されたスレでしょ
いちいち貼らなくて結構です
初心者イジメて何が楽しいの…
34Now_loading...774KB:2009/11/23(月) 20:44:55 ID:rJOfue8D
>>33
俺もそのスレ見たけど、悪いのはあきらかに君だと思う。
出てた意見は言い方はキツいとは思うけど間違ってはないと思うぜ
潰すとか潰されたって発想はどうかと思う

てか、上でも書いてる人いるけど、何がわからないのかちゃんとレスしなきゃ

それすらもわからないなら、多分スキルが足りてないからググるなりして調べなきゃ
自分で作りたいんだろ?
35Now_loading...774KB:2009/11/23(月) 20:51:44 ID:GlEGc/jp
>>33
しょうがくせいは おとなに なってから 2ch(にちゃんねる)に きてくださいね^^
36Now_loading...774KB:2009/11/23(月) 20:55:29 ID:7t2rd1M5
37Now_loading...774KB:2009/11/23(月) 21:40:37 ID:obJthXtc
そんなにわけわからない質問ですかね?
>>19でsocket通信機能までは作ったと言ってるのですから
JAVAのサーバー動かしてsocket通信できていることくらいは理解して欲しいです。
普通に多数ユーザーでチャットもできます。
しかし>>19で言ってるようにユーザー毎に違うMCを配置する方法がわかりません。
38Now_loading...774KB:2009/11/23(月) 21:47:50 ID:7t2rd1M5
つくづく自分主体だなお前。 だからそれに対して、
>>22-23 の話になるんじゃないの?

>その辺の仕掛けを既に作っているなら、単にサーバから 「そのユーザのID」 を返してもらって、
>そのIDに紐づく別の swf なり画像なりをサーバからロードでもすりゃいいんじゃね?
>それほど多く無いのなら、単にそのライブラリ上のMovieClipを表示すりゃいいんじゃね?

で、このレス内容に対して理解出来ない部分があるなら、それをちゃんと言えって話なんじゃないの?
スレの流れ読み直してみると、あきらかに自分がわからない所はスルーしてね?
39Now_loading...774KB:2009/11/23(月) 21:52:08 ID:obJthXtc
>>38
> つくづく自分主体だなお前。 だからそれに対して、
> >>22-23 の話になるんじゃないの?
それについては>>24でレスしています。

> で、このレス内容に対して理解出来ない部分があるなら、それをちゃんと言えって話なんじゃないの?
> スレの流れ読み直してみると、あきらかに自分がわからない所はスルーしてね?
ちゃんと言ってます。スルーしてません。
40Now_loading...774KB:2009/11/23(月) 21:53:12 ID:7t2rd1M5
とりあえず、>>37 の要件で言うなら、すでに Javaでチャットが出来るサーバソフトウェアを書いたんだろ?
それは複数クライアントから接続されて、それぞれのクライアントに対して内容を返すんだろ?

ならそれを修正して、文章の文字列だけでなくパラメータも一緒に文字列として送信して、
受け手がそれを解釈してMovieClipを表示するなりなんなりするだけじゃないの?って話だよ

例)
"<user id="foo">
 <param>
  <mc>abcdef0123</mc>
 </param>
 <text>
  発言内容
 </text>
</user>"

例えばこれを送信してやりとりして、テキストとしては text ノードの内容を表示し、
param の子要素は別のロジックに解釈させて表示でもすりゃいいんじゃないの?
あくまでこれは一般的な方法(SOAPでぐぐれ)とも言えるし、俺の個人的な方法とも言えるが
41Now_loading...774KB:2009/11/23(月) 21:57:24 ID:7t2rd1M5
>>39
だから >>24 でレスしてます、じゃなくてさ… 見えませんよね、じゃなくて方法の話だと言ってるだろ
そしてその一つの方法が >>40 だよ。Javaでチャットサーバのコードって、もしも自分で 1から作ってたんなら、
ちょっと捻れば出てきそうなんだが

あと、スルーしてませんじゃなくて、出た案に対して
「それはどういう意味ですか? こういう事では無いんですか?」 って反応が一度も無いだろ
逆にわかってるから不要ってんなら、もうちょっと聞き方変わって来ると思うんだが、違うの?
あと逆ギレしといてその事について何も無いの?
42Now_loading...774KB:2009/11/23(月) 22:10:58 ID:01RDts8B
あとはこちらでやりましょう
http://pc12.2ch.net/test/read.cgi/swf/1258537724/
この専用スレもドラクエ君が逃亡して潰れたように見えてるだけ
43Now_loading...774KB:2009/11/23(月) 22:26:45 ID:zH8lPFYt
つーか、やりたいことと問題点を文章のみで説明しようとしているから
皆が混乱する。
適当なお絵かきソフトかPowerPointで図解したらいいじゃん。

あるいは、試作品をUpするとか。
44Now_loading...774KB:2009/11/24(火) 01:17:06 ID:RKxm75XE
AS3.0(CS4, WinXP-Pro)
Socketで受信したデータの16進数表示で質問です。

接続を確立した後、var socketObj:Socket=new Socket(); の socketObj を使って
function socket_progress (progressEvt:ProgressEvent):void {
var tmpObj:Object=socketObj.readUTFBytes(progressEvt.bytesLoaded);
trace ("Data= "+tmpObj.toString()+", "+progressEvt.bytesLoaded);//バイト数は4または5
}

などとtrace出力しました。これはOKだったので、顧客デモ用に受信データを
16進数表示したいのですがうまく変換できません。
※受信データは1.305とか1.215といった1.2〜1.3の小数です。

試しに trace ("Data= "+tmpObj.toString(16)+", "+progressEvt.bytesLoaded); とすると
ArgumentError: Error #1063 が出ます。また、readUTFBytes()ではなく、readDouble()を
使うと Error: Error #2030 のEOFエラーになります。

どうしたら良いでしょうか?
45Now_loading...774KB:2009/11/24(火) 03:25:29 ID:p475QxiA
短い効果音をタイムラインに差し込んでいます。
この効果音をボタンクリックで聞こえないようにしたいのですが。
(2回押すと今度は聞こえるトグル式のボタン)

簡単な方法ありますか?
音楽をローディングするような大層なことをするわけでは
ありませんが、Soundオブジェクトとか用意しないといけないの
でしょうか?
46純金配合 ◆GoldHyGo/. :2009/11/24(火) 09:01:52 ID:Tn4DQhxV
>>44 まず、少数値のデータを受信しているが、readUTFBytes で取り出してOKだった、って事は、
受信してるバイナリは IEEE754 形式の浮動小数点の即値でなく、"1.2345" みたいな文字列でやりとりされているって事だよね?

 var tmpObj:Object = socketObj.readUTFBytes(progressEvt.bytesLoaded);

なので↑この部分って、tmpObject を toString() でなく、

 var tmpObj:String = socketObj.readUTFBytes(progressEvt.bytesLoaded);
        ^^^^^^^
だよね。※リファレンス参照


そしてこれを 16進ダンプしたいとしたら、ここは readUTFBytes() や readDouble() でなく、
単純に bytesAvailable の値分、readUnsignedByte() とかを使って取り出してから、それを toString(16) しないとダメ。

// 未確認だけど多分大丈夫な気がする。もしアレだったら while の条件に回数制限をつけて無限ループ回避仕込んでおいて
function socket_progress (progressEvt:ProgressEvent):void {
 while(socketObj.bytesAvailable>0) {
  var tmp:uint = socketObj.readUnsignedByte();
  trace ("Data= " + tmp.toString(16));
 }
}

※ポイント1: readDouble() が使えるのは、それがダブルの即値の場合のみ。そうでないとエラー
※ポイント2: toString(変換指定の数値) が使えるのは、数値オブジェクトの場合のみ。それ以外はエラー
※ポイント3: 16進ダンプは結局バイト単位で文字列表現するって事になるので、一つづつ取り出さないとそもそも意味無理

要は 「今受け取っている内容はなんなのか」 を正しく把握しなきゃだめってこと
47純金配合 ◆GoldHyGo/. :2009/11/24(火) 09:06:54 ID:Tn4DQhxV
>>45 Scriptで制御する以上、Soundオブジェクトが無いと無理だと思う。
stage からコレクション辿って列挙する方法でもあれば、それを対象に操作出来ると思うけど、
とりあえず AS2 では無理だと思う。 AS3 の場合、そのサウンドが放り込まれてる MovieClip に対して、
ムービークリップ.soundTransform.volume = 0; で、制御出来るかもしれないけど、未確認。
これで無理なら素直に Soundオブジェクトから操作
48Now_loading...774KB:2009/11/25(水) 19:18:41 ID:AK5BO8cM
「star」というインスタンスをいくつか配置し、それをマウスのx位置のみによって移動させ、
端っこのインスタンスが来たら中央付近で停止させるという、一定の範囲内だけで右往左往するようなスクリプトを作りたいと思っています。
しかし、一方方向だけ移動・停止させるスクリプトはなんとかできたのですが、両方向に動かす方法が思いつきません。
条件文がもう少しうまく作れればいいと思うのですが、どうやったらうまくいくでしょうか。
もしおわかりになる方がいましたら、アドバイスよろしくお願いいたします。

/*
ドキュメントサイズ:500x200
starのサイズ:100x100
Action Script 2.0
参考にしたページ:ttp://www.geocities.jp/flashiroha/script/as9/as9.html
*/

var star:Array = new Array();
var s_num:Number = 8;

for (i=1; i<=s_num; i++) {
_root.attachMovie("star","star"+i,i);
star[i] = eval("star"+i);
star[i]._x = 250 - 110*(s_num-i);
star[i]._y = 80;
}

_root.onEnterFrame = function() {
for (i=1; i<=s_num; i++) {
if (_root.star[i]._x < 600 - 110*(s_num-i) || _root._xmouse > 250) { // 元にしたページから
_root.star[i]._x += (250-_root._xmouse)/10;
}
}
}
49Now_loading...774KB:2009/11/25(水) 19:45:45 ID:rSWJXaUx
>>48
if文つかったらいいんじゃね?
それと、for文の中で同じ計算をするのはどうかと思うよ

こうかな

_root.onEnterFrame = function() {
a = 250 - _root._xmouse;

if( 50 > Math.abs( a ) ){
m = a / 10;
}
else { m = 0; }

for (i=1; i<=s_num; i++) {
if (_root.star[i]._x < 600 - 110*(s_num-i) || _root._xmouse > 250) { // 元にしたページから
_root.star[i]._x += m
}
}
}
5048:2009/11/26(木) 01:22:21 ID:UwDqI6PZ
>>49
ありがとうございます。
試してみましたが、ちょっと意図していたものと違いました(;´∀`)

マウスで動く範囲はドキュメントの全ての範囲でいいんですが、
インスタンスの動く範囲を制限したいんです。

8つのインスタンスであれば、1番目の左のものは左の方から250pxのところまで、
一番右の8番目のものも、右の方から250pxのところまで。

ちょっとわかりにくくて申し訳ないです。
51Now_loading...774KB:2009/11/26(木) 20:33:46 ID:DutN/SR3
すみません。ダメ元で聞きたいのですが、

AS3.0で大量の変数が必要になり、扱いに困っています。
C言語でいう構造体配列のようなもの作れませんかね?
52Now_loading...774KB:2009/11/26(木) 20:45:41 ID:ppd9W1Hn
構造体→クラス
53Now_loading...774KB:2009/11/26(木) 21:02:24 ID:DutN/SR3
クラスって・・・。配列もarrayクラスなのに別途クラスを配列化できるんですか?
54Now_loading...774KB:2009/11/26(木) 21:09:06 ID:z8Dod1HF
ろくに勉強してない人間からですが

public class hogehoge{
public var item:type=なんちゃら;
public var item2:type=ホニャララ;
private function hogehoge(){中身無し}
}

みたいなアイテムだけ定義したクラスを作って
そのアイテムを使いたいところで

var hoge:hogehoge = new hogehoge();

だかなんかで呼び出した後プロパティ使ってはどうだろう・・・
アクセス制限とか気にするならget()辺りが使えるかも
55Now_loading...774KB:2009/11/26(木) 21:13:29 ID:ppd9W1Hn
>>53
配列にStringとか入れますよね。Stringもクラスなんです

あと、Object型でも構造体作れる
obj:Object = {name:"勇者さま", hp:24};
56Now_loading...774KB:2009/11/26(木) 21:18:38 ID:ppd9W1Hn
>>54
AS3.0ではコンストラクタはprivateに出来ないです
ミスかわかりませんが一応
57Now_loading...774KB:2009/11/26(木) 21:45:16 ID:DutN/SR3
みなさん、どうもありがとうございます。
でも、何かどれも、使い勝手が悪いですね・・・。
すんなり巨大な構造体を100要素の配列にできないものか・・・。
58Now_loading...774KB:2009/11/26(木) 22:05:52 ID:dfIwpqX7
>>57
どういうことがやりたいのかいまいち分からないが
Arrayは何でも入れられるし、Vectorは特定のクラスのみ受け入れ可能だけど
その構造体をクラスとして宣言してインスタンスをArrayやVectorに入れる、ということではダメなの?
59Now_loading...774KB:2009/11/27(金) 08:56:52 ID:p1DppcQa
それで使い勝手悪いなんて言ってたら他言語なんて使えないって話になるが‥
ASには struct は無いので似たことするばあいでも class で表現する。

もしも特にメソッドなど不要な場合には、

public class Foo {
 public data1:String = null;
 public data2:String = null;
}

のように定義して置いて、それらに別途ローダでも書いてロードするのが常套手段

var ar = new Array(個数);
for(var i:int = 0; i < 個数; i++) {
 ar[i] = new Foo();
 ar[i].data1 = データをセット
 :
}

構造体で書いても結局同じになるが
60Now_loading...774KB:2009/11/27(金) 12:42:24 ID:FYmAmaJ4
元C使いだけど、クラスで全然おk
>>51が勉強してないから通じないだけの話
6151:2009/11/27(金) 15:27:49 ID:+ClGUtiP
>>60
詳しいようなので、ちょっと、お聞きしたいんですが、
C++でクラスの中のプライベートに構造体を宣言するようなことを
AS3.0でできますか?

>>59サンクス。
ソースコード見てたら、
クラスの配列は昔やってたようで、ただ単に忘れてただけみたいでした。
>>59とほぼ同じコードがソースあって、物忘れに危機感を覚えました・・・。
62Now_loading...774KB:2009/11/27(金) 15:41:57 ID:ihdbJf9c
クラスってもんを大げさに考えてる子なんだろうなあ。コストも技術も大した事ないのに
6351:2009/11/27(金) 15:49:14 ID:+ClGUtiP
いや、その、C++のクラスと性質が違って戸惑っているだけだ。
64Now_loading...774KB:2009/11/27(金) 17:29:51 ID:p1DppcQa
他言語の話なら、俺もC/C++、C#、Java、PHP、JavaScript、Pythonを普段必要に応じて使うけど、
ASのクラス表現はC/C++でのそれよりJavaに近い。オペレータオーバライドもないし、
純粋仮想関数のような意図表現もない(Javaで言うAbstructやInterfaceはある)

あと、細かい事言うならクラスの配列って言い方は普通あまりしないかも。
オブジェクトの配列、○○のインスタンスの配列って言う‥ っては書いてはみたものの、
Flashの世界だとオブジェクトやインスタンスって語が違う対象に使われているので、
話ややこしくなるかもとちょっと不安に思った
65Now_loading...774KB:2009/11/27(金) 17:50:47 ID:O6JPTwy2
forループ内で30個のMCのリスナー登録をすべてしてしまおうと
試みているんですが、押された際の処理がエラーになります。

おそらく、forループ設定時には、forで使う変数の「i」が生きているだとは思うのですが、
押されたときの処理では、iが存在しないのでエラーになるのではと思ってます。

なのでエラーは以下みたいになります。
TypeError: Error #1010: 条件は未定義であり、プロパティがありません。

コードは以下です。
押された際にtxと、tyをmcの座標に置き換えてしまおうというだけのスクリプトを、
以下のforループで実現しようとしているだけです。
何かいい方法はないでしょうか。。。??

for(var i:uint=1; i < 30; i++){
this["mc" + i].buttonMode =true;
this["mc" + i].addEventListener(MouseEvent.CLICK, function():void{
tx = this["mc" + i]["x"];
ty = this["mc" + i]["y"];
});
}
66Now_loading...774KB:2009/11/27(金) 18:04:59 ID:p1DppcQa
>>65 逆に i は問題ないけど、無名関数内で this は使えないと思う。違ったっけ?

あと念のため、自身のコレクションからオブジェクト引こうとしてるみたいだけど、
それ存在してるの?
ちょっとASの仕様忘れたかもだけど、そう言うブラケットアクセス出来たっけ?
67Now_loading...774KB:2009/11/27(金) 18:09:44 ID:p1DppcQa
一点訂正。ああ言う無名関数内での this は、使えない、んじゃなくて
対象が違うから、思った通りには動かない、の間違い。スマソ
68Now_loading...774KB:2009/11/27(金) 18:19:23 ID:od730GPk
>>65
こんなんでいけるかも
this["mc" + i].addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{
tx = event.target.x;
ty = event.target.y
});
69Now_loading...774KB:2009/11/27(金) 18:46:35 ID:O6JPTwy2
>>68
早速ありがとうございます。
完璧すぎます!動作しました!!
ありがとうございます。
ちなみに、この方法以外はありえないのでしょうか。
自分は、この教えてくださった方法以外はありえないと思っています・・・

>>67
thisは確かに対象が違うのでおかしい感じなのかもです。
無名関数の使い方がいまひとつ理解し切れていないのですよね・・・
70Now_loading...774KB:2009/11/27(金) 18:52:06 ID:O6JPTwy2
すみません、もう一点だけ今の流れで質問させてください。
動いたスクリプトは以下ですが、
変数kに、iの値を反映させたいと思っていますが、
ここでもiのせいでうまくいかない状態です。
kを取得するのは、今押されているmcのナンバーを取得して別の用途で使えるようにするためです。
うまい具合に、mcのナンバーだけ取得するにはどうすれば一番スマートでしょうか。

for(var i:uint=1; i < 30; i++){
this["mc" + i].buttonMode =true;
this["mc" + i].addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void{

tx = e.target.x;
ty = e.target.y;
//この以下が問題の1行です。
k = i -1;

});

}
71Now_loading...774KB:2009/11/27(金) 19:07:47 ID:p1DppcQa
>>70 無名関数の領域は別のクラスって考えないとダメ
その k はその関数内のスコープで消滅するか、名前のないクラスのメンバでないといけない

実際には包含クラス側(forとか書いてる方のクラス)の、メンバ変数か
メソッド内の変化しない変数を参照できるが、それは包含側で一意な存在なので、無名側の複数の値を別個には保持できない。

スマートな方法としては、やりたい内容によるが、無名をやめて保持するクラスに整理するか、
包含クラス側に配列や連想配列用意して記録しないとダメ
72Now_loading...774KB:2009/11/27(金) 19:12:29 ID:od730GPk
>>70
iっていうプロパティを持ったMovieClipを継承したクラスを作るのが理想だけど、とりあえず実現するなら
parseInt(e.target.name.substr(2, e.target.name.length - 2))
こんなんとかw
73Now_loading...774KB:2009/11/27(金) 19:15:56 ID:p1DppcQa
てか、無名関数をハンドラとして渡すのと、別クラスのメソッドの参照をハンドラとして渡すのと、
自分のメソッドの参照をハンドラとして渡すのの3パターン、サンプル見せれば一発なんだけど、
出先で携帯から書いてるのでソース書くのしんどい。

無名関数の領域は、自分を包含するクラスのメンバを参照できる特殊な空間だけど、
あくまで別の名前の無いクラスって理解しておくれ
74Now_loading...774KB:2009/11/27(金) 19:28:15 ID:p1DppcQa
名前の無い別クラスって言い方は語弊があるか
とにかく別のオブジェクト。単体の他人。
別のメソッドオブジェクト、関数オブジェクト。
7551:2009/11/27(金) 19:48:03 ID:+ClGUtiP
>>64

うむ・・・。やはりそうですよね・・・。
やっている内に、何とかこのコードを書いた頃を思い出せそうですし、何とかなりそうです。
>>52-以降の皆さん、どうもありがとうございました。あと、お騒がせしました。
76Now_loading...774KB:2009/11/27(金) 20:16:41 ID:O6JPTwy2
>>73
ありがとうございます。
無名関数内で、そのforループで使ってるiが使えないというのはよくわかりました。

そこで3つ挙げていただいた関数の種類の、

1)無名関数をハンドラとして渡す
2)別クラスのメソッドの参照をハンドラとして渡す
3)自分のメソッドの参照をハンドラとして渡す

ですが、1)が自分がやっているものですよね。
2)が無名関数ではないfunctionのことで、
最後の3)がよくわからないのです。

あえていうなら、2)が一番スマートなのでしょうか。
77Now_loading...774KB:2009/11/27(金) 20:17:45 ID:O6JPTwy2
>>72
名前から抜き出して利用するという方法ですよね。
力技な感じがしますが、一番実は最短ルート?なんでしょうか。
78Now_loading...774KB:2009/11/27(金) 20:42:30 ID:p1DppcQa
>>76
1) 無名関数をハンドラに
 foo.addEventListener(HogeEvent.SOMEID, function(e:EventData): void {
  // 無名関数オブジェクトの空間
 });


2) 別クラスのメソッドをハンドラに
 public class Bar {
  public function method1(e:EventData): void {
   // クラスBar のメソッドmethod1 の空間
  }
 }

 〜前後略〜
 var bar:Bar = new Bar();
 foo.addEventListener(HogeEvent.SOMEID, bar.method1);


3) 自分のメソッドの参照をハンドラに
public class 自分 {
 public function huga() {
  foo.addEventListener(HogeEvent.SOMEID, this.method2);
 }
 public function method2(e:EventData): void {
  // 自分の空間
 }
}

どれも、addEventListener には、イベントのキーワード文字列と、"関数参照を" 渡している。
それぞれのハンドラ関数内で this とした時、それはどれを指すか良く考えればわかるって話
79Now_loading...774KB:2009/11/27(金) 22:39:46 ID:MaPQzJjF
MovieClipクラスがダイナミッククラスなのを利用して、for内で各MCにiの値入れたプロパティ作るってのはどう?
AS2的なやり方って感じだけど
80Now_loading...774KB:2009/11/28(土) 20:48:27 ID:6/ivyNvy
AS3.0ですがAS2.0のように自分自身をremoveChildすることは出来ないのでしょうか
指定した DisplayObject は呼び出し元の子でなければなりません。と出てきてしまいます
81Now_loading...774KB:2009/11/28(土) 21:24:01 ID:vpkZLNrh
parent.removeChild(this);
82Now_loading...774KB:2009/11/28(土) 21:33:14 ID:6/ivyNvy
>>81
回答ありがとうございますFLASH CS3を使っているのですがシンボル内のタイムライン上に書いている為それだと
null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。とエラーが出てしまいます…
83Now_loading...774KB:2009/11/28(土) 21:39:15 ID:rG42LGx6
>>82 じゃあ stage とかに変えてみるとか。 stage に removeChild があったかどうかはリファレンス見てもらわないとだけど
要は、「そのオブジェクトの親から見て、そのオブジェクトを削除する」 の形になればいいだけのような気がする
CS3 はわからないけど、コードアシストで候補出てくる中にそれっぽいのが居ないかどうか確認してみる、とか
あるいは adobe のリファレンスにそれっぽいのが居ないかどうか見てみるといいかも
84Now_loading...774KB:2009/11/28(土) 21:58:01 ID:vpkZLNrh
>>82
んー
消したいオブジェクトの参照(del_obj)から
if (del_obj.parent) del_obj.parent.removeChild(del_obj);
とかで問題ないはず
85Now_loading...774KB:2009/11/29(日) 02:49:46 ID:wmRAr9Kf
>>78
76です。ありがとうございます
3パターンとも理解できました thisの話はわかりました。
となるとあとは前に書かれたようにループで使用するiは
自クラス内で終わらせようと思うと
配列にいれていくというかんじでしょうか

ただ配列に格納していっても取り出し時に
配列のインデックス番号が必要となるので
そのインデックスがまさにkの値なんで
どうしたものかとおもってます

やっぱり自クラスで完結しようと思うと プロパティを一つ作ってそれにiの番号を突っ込んでく感じかなとも思っています
86Now_loading...774KB:2009/11/29(日) 12:31:06 ID:edD8hNOW
>>82 シンボル内のタイムライン上

これって「オーサリングで配置」ってこと?
それなら、元々駄目。


俺はこう理解している:
Stageという島があって、そこの法では新たに持ち込んだ外来種の
植物の撤去は可能だが、自生している植物(固有種)の撤去は禁じ
られている 
・・・ オーサリングで配置オブジェクトとaddChildによるオブジェクトの関係

また、異なる植物分類同士の交配(例えば、イネ科とバラ科)には
遺伝子工学的な作業が必要。
・・・ キャストが必要の意味
87Now_loading...774KB:2009/11/29(日) 13:58:44 ID:POlt4o0G
BrightcoveのプレイヤーをFlashに埋め込みたいのですが
やり方を詳しく書いているサイトなどありましたら教えてください。
88Now_loading...774KB:2009/11/29(日) 16:26:03 ID:hyUfUqfP
>>87
そんな物凄く狭いニーズ(マイナーな物)を細かく説明してるようなサイトって無いんじゃなかろうか

てか、今ググッたらこれ一応商用ソリューションの一部みたいなので、商用サイトのページ内に追加して
用意されている機能を使ってサーバサイドと通信して連携は出来るようだけど、
SWFで提供されてるプレイヤーを別のSWFに埋め込むって、普通に loadMovie だっけ?で扱うぐらいしか方法無いと思う
もしもその意味がわからない場合、必要な知識は広がる一方になるので、敷居は高いかもしれない。

自分で実験して調べるのをお勧めする
89Now_loading...774KB:2009/11/29(日) 20:48:58 ID:kSqszqhS
>>85
>>79で答え出てるじゃん
90Now_loading...774KB:2009/11/30(月) 01:04:17 ID:SECaS+NQ
コマ割りされた絵をまとめた1枚の画像を分割し順番にアニメーションさせたいのですがよいサンプルなどはないでしょうか
91Now_loading...774KB:2009/11/30(月) 01:07:35 ID:cV3PW/Qn
>>88
ありがとうございます。

一応APIがあるみたいなんですが
ttp://help.brightcove.co.jp/developer/docs/playerapi/start.cfm
このコードを使っても大量にエラーが出て再生できないんです。
他に解説しているサイトはないかと思いまして。
92Now_loading...774KB:2009/11/30(月) 14:21:40 ID:cgKn0vv6
SpriteAにBitmapXをaddChildしたのち、SpriteBにBitmapXをaddChildをしたらSpriteAからBitmapXが表示されなくなってしまいました。
なぜこのような現象が起こるのでしょうか。また、SpriteA,BともにBitmapXを表示させたい場合の一般的な解決方法はどのようなものなのでしょうか。
また、BitmapXをcloneせずに1つのBitmapリソースでSpriteA,Bに表示することは可能なのでしょうか。

問題丸投げで申し訳ないのですが、お詳しい方見えましたら教えていただけないでしょうか。
93Now_loading...774KB:2009/11/30(月) 14:40:40 ID:UjNexBGW
>>92
子は親をひとつしか持てないから、後にaddChildした方の子になる
んで、複製する場合は

BitmapY:Bitmap = new Bitmap();//新しいビットマップオブジェクト
BitmapY.bitmapData.copyPixels(BitmapX.bitmapData, BitmapX.bitmapData.rect);//ピクセル情報をコピー
SpriteB.addChild(BitmapY);

でいけると思う

http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/display/Bitmap.html
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/display/BitmapData.html
94Now_loading...774KB:2009/11/30(月) 14:54:08 ID:UjNexBGW
>>92
質問の答えになってなかった・・

複製じゃなくて完全に同じものを表示するなら
新しいBitmapを同じBitmapDataで作れば大丈夫

BitmapY:Bitmap = new Bitmap(BitmapX.bitmapData);
95Now_loading...774KB:2009/11/30(月) 14:57:06 ID:cgKn0vv6
>>93
なるほど、そういうことだったんですね。

リソースを食うプログラムなので複製したくなかったのですが、それが一番ベストっぽいですね。
ありがとうございます。
96Now_loading...774KB:2009/11/30(月) 14:57:48 ID:cgKn0vv6
>>94
おおお、なるほど!ありがとうございます!
97Now_loading...774KB:2009/11/30(月) 16:44:51 ID:S3/ruErx
クラスをimportするときにimport flash.text.*といったように*で省略できますが
読み込みの速さ的にはパッケージ内のクラスを2つ以上使用するならば*を使うという認識でよいのでしょうか?
98Now_loading...774KB:2009/11/30(月) 17:25:19 ID:UjNexBGW
勘だけど
仕組み的には、最初に全部読み込むのではなく、
ソースの中に見つからない名前が出てきたときに初めてimportしてるパッケージから探すから、
強いていうなら、個別に書いたほうが検索する箇所が少なくて速い気がする。

でもインポートするファイル数百あったとしても体感できる差はないと思うよ。
*を使わない理由があるとすれば、どのクラスがどのパッケージのものを使ってるのかわかり易くする為か、
名前の衝突を防ぐためとかじゃない?
99Now_loading...774KB:2009/11/30(月) 17:32:10 ID:S3/ruErx
>>98
なるほど。確かに省略するとどこで何のために使ったのかわかりにくくなりますね。
個別に書く方向で行こうと思います。ありがとうございました。
100Now_loading...774KB:2009/11/30(月) 17:36:42 ID:Beew71YE
横やりだけど、>>98 の話は大体合ってるけど、あくまでそれはコンパイル時の話って言う
大前提を忘れてはいけない

考えればわかると思うが、実行時ではない
一応横から補足しとく
101Now_loading...774KB:2009/11/30(月) 19:44:16 ID:ZO/oVcnH
質問失礼します
【環境】 AS3.0(FLASH CS3, WinXP-home)
【目的】 ウェブカメラ映像(画像)を二値化し
     リアルタイムに画面の特定座標が白か黒かによって
     ムービークリップをひとつ表示・非表示にしたい

超初心者でAS3.0はまだ自力で書けないヘタレっぷりですが
ググってコピペコピペでthresholdで二値化とgetPixelで色を取り出す事はできたものの
ライブラリからインスタンスを一旦表示したら非表示にしたりするところができません。
スクリプトはパッケージで外に書いています。

【エラー文】
255
TypeError: Error #2007: パラメータ child は null 以外でなければなりません。
at flash.display::DisplayObjectContainer/removeChild()
at Threshold2/tick()
102101:2009/11/30(月) 19:46:57 ID:ZO/oVcnH
>>101です連レスすみません
ソースは長いので分割します
private function tick(event:Event):void {
if (video == null || camera == null) {
return;
}
if (camera.muted == true) {
return;
}

var s:BitmapData = new BitmapData(video.width, video.height);
s.draw(video);

var r:Rectangle = new Rectangle(0, 0, video.width, video.height);
bdTmp.fillRect(r, 0xffffffff);
103101:2009/11/30(月) 19:47:36 ID:ZO/oVcnH
// 2値化
var threshold:uint = 0x00aaaaaa;
var color1:uint = 0xFF000000;
var color2:uint = 0xFFFFFFFF;
var maskColor:uint = 0x00FFFFFF;
bdTmp.threshold(s, r, new Point(0, 0), "<=", threshold, color1, maskColor, true);
bdTmp.threshold(bdTmp, r, new Point(0, 0), ">", threshold, color2, maskColor, true);

//ポイントの白黒判定
var col:uint = bdTmp.getPixel(100, 50);
var ten:int = col >> 16 & 0xFFFFFF;
trace(ten);

if (ten == 0) {
var menu_mc:menu=new menu();
menu_mc.x=0;
menu_mc.y=0;
addChild(menu_mc);

}
if (ten != 0) {
//removeChild(menu_mc);
//menu_mc.visible = false;
parent.removeChild(menu_mc);

}
}

以上です。どうかよろしくおねがいします。
104Now_loading...774KB:2009/11/30(月) 19:56:08 ID:Beew71YE
>>103 パッとみた時点でとりあえず二つ。
1つは、menu_mc のスコープが合ってない。コピペコピペ以前に知ってなければならないミス。

 {
  var a = ほにゃらら とした時、この a はこのブロックの中だけにしか存在しない。
 }

 {
  なので、
  ほげほげ.ほにゃらら(a);  とした所で、a はこのブロックでは見えない。
 }


もう一つは仕様のミス。 初回動作時、いきなり ten が0以外だった場合どうなる?
また、必ず addChild → removeChild の順で実行されるの?

105Now_loading...774KB:2009/11/30(月) 19:57:35 ID:UjNexBGW
>>103
menu_mcはそのループないでした有効じゃないから
menu_mcをクラスのメンバ変数にするか、removeChildAtでインデックスを指定して削除かな
106Now_loading...774KB:2009/11/30(月) 20:21:43 ID:Yas74C8c
すみません。ちょっと、マニアックな質問なんですが・・・。

まず、リンゲージして、共有から動的に配置したMCを用意しました。
そのリンゲージにしたMCには、中にMCとかテキストフィールドとかがあるんです。
で・・・問題なのは、MCそのもののプロパティにはアクセス出来るのですが、
中のテキストフィールド等のプロパティなどを認識してくれないんです。

どうやったら、中身を認識してくれるのでしょうか?
107Now_loading...774KB:2009/11/30(月) 20:32:53 ID:Beew71YE
>>106 そんなマニアックか?
単に外側のMCにパブリックな関数でも持っておいて、それをインタフェースとして使えばいいだけじゃね?

1.配置されるMC内
 // AS2 の例。3でも考え方は多分同じ
 function setText(s) {
  テキストフィールドのインスタンス.text = s;
 }

2.1をつかう別のMCまたはフレーム。
 1のインスタンス.setText("ほげほげ");

108101:2009/11/30(月) 20:34:09 ID:ZO/oVcnH
>>104-105
早速のレスありがとうございます

>menu_mc のスコープが合ってない
お、お恥ずかしいところを…
メソッドの場所を色々移して試していたのですが
変数を宣言する位置までも移し替えていたようです
それでも基礎がなっていないのは確かですが

>初回動作時、いきなり ten が0以外だった場合どうなる?
その時はmenu_mcが非表示で特にエラーも出なかったので
まあいいやと思っていたのですが

>また、必ず addChild → removeChild の順で実行されるの?
この順序にならないのはやはりまずいんですね…

>menu_mcをクラスのメンバ変数に
をしてみたら、tenが0か否かで切り替わり今のところこの動作が希望通りなのですが
255
ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。
at flash.display::DisplayObjectContainer/removeChild()
at Threshold2/tick()
とエラーが出てしまいました
やはり順序無視がいけないのでしょうか…
109Now_loading...774KB:2009/11/30(月) 20:40:25 ID:HEK6+H7k
質問です
<policy-file-request/>の対処法をわかりやすく教えてください。
ぐぐったけどよくわかりませんでした…orz
110Now_loading...774KB:2009/11/30(月) 20:46:16 ID:MIsYEmCM
>>109
接続を許可するswfのドメイン名を規則にしたがって書いて flush() すればいい。

cf. 全てのドメインと接続先のポート番号
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
111Now_loading...774KB:2009/11/30(月) 20:48:10 ID:Beew71YE
>>108 コメントを3つ。
1.順序無視はとりあえずNG。たまたま動いたとしても考え方的にNG.。 たまたま動いてくれない物もその内必ず出てくるから、
  順序が保障されるロジックを自分で考えること

2.そのエラー、良く読むこと。あと、>>103 のソースを見直してみて、「誰に add してて、どこから remove しようとしてるか」

3.てか表示非表示を切り替えたいだけなら、add や remove みたいな構造を変えるような処理でなく、
単に visible だったか visibility だったかで切り替えたらいいだけでは?

112Now_loading...774KB:2009/11/30(月) 20:49:40 ID:Yas74C8c
>>107

そんなものは、とっくに試してます。
が、なぜかプロパティの通りに更新されないんです。
作動時には認識するんですが、結果はそうではないっていう・・・。
113Now_loading...774KB:2009/11/30(月) 21:01:00 ID:Yas74C8c
あぁ、マスク解いたら、更新して表示されました。これはバグ?、仕様?
どうも、お騒がせしましたw
114Now_loading...774KB:2009/11/30(月) 21:02:02 ID:Beew71YE
>>112 そんなものをとっくに試していたとしても、リンケージ使って生成したムービーは、
一度Flashが表示処理を行わないと表示系プロパティが即時には反映されないっていう、
動作サイクルについては知らなかったと言う事か?

1フレームおいてから、インタフェース読んでみ。 インスタンス化した後、プロパティにセットしている処理を良くおいかけて、
1フレームも進んでいない状態で走っていないかどうか
115101:2009/11/30(月) 21:03:13 ID:ZO/oVcnH
>111
またしてもありがとうございます
>単に visible だったか visibility だったかで切り替えたらいいだけでは?
おっしゃる通りです

menu_mc.visible = true;
menu_mc.visible = false;

などで当初記述していたのですが、やはり基礎が(ry
でうまくできず…
差し出がましいですがこちらの記述はどうすればいいかお聞きしてもいいですか?
116Now_loading...774KB:2009/11/30(月) 21:05:38 ID:Beew71YE
なんか書き込みでエラーになったと思ったら書き込めてた…

>>113 マスクもそう。マスクなどの判断はFlashが表示処理する段階で評価されてるみたいなので
(そりゃそうだという話もあるが)、最短1フレーム置かないと(結果的におかれている流れなら上手くいく)、
安定して期待した通りにならなかったりする。 どこにも明記してないような気がする不親切な仕様だが、仕方ない。
117Now_loading...774KB:2009/11/30(月) 21:10:48 ID:Beew71YE
>>115 ちゃんと実験して基礎やれよww

>>103 のソース、ちゃんと追いかけてないので結果が望みどおりかどうかは知らないが、
元のロジックのまま書き直すなら、こうじゃね?

パターン1)
 // if 文の中の ten==0 や ten!=0 は、評価結果の論理値(true/false) を見ている。なので、そのまま代入してしまう
 menu_mc.visible = ten==0;

パターン2)
 // より素直に書いた物。パターン1はこれを意味的に省略した格好
 if(ten==0) {
  menu_mc.visible = true;
 } else {
  menu_mc.visible = false;
 }
118Now_loading...774KB:2009/12/01(火) 00:32:37 ID:7ICnpVlL
タダの四角いマスクをかける場合ドロー描画のマスクとビットマップのマスクではどちらか軽いのでしょうか
119Now_loading...774KB:2009/12/01(火) 08:26:56 ID:hAha95U0
中の処理的に考えてBitmapだと思う
大体そうでないなら、パフォーマンス向上の為にcacheAsBitmap なんて使わない
120109:2009/12/01(火) 08:47:21 ID:K9cJNqNf
>>110
すみません。それをhtmlのソース内に書けということでしょうか?
<head>内に書いても<body>内に書いても解決できませんでした。
121Now_loading...774KB:2009/12/01(火) 08:50:43 ID:hAha95U0
>>120 サーバ側のポリシーファイルだと思う
html はブラウザが解釈してクライアント側で表示するだけなのでまったく関係ない
122Now_loading...774KB:2009/12/01(火) 12:25:33 ID:N31TqzL5
FlashCS4+ActionScript3.0で適当なボタンを配置し、それが押されるたびに

for (var i = 0; i < 100; i++) {
  if(TArray[i] != null)
   delete TArray[i];
  System.gc();
  TArray[i] = "STR";
}

というコードが実行されるようにしたんですが、スタンドアローンのプレイヤーで実行し
タスクマネージャで見ているとボタンを押す(このコードを実行する)たびにメモリ使用量が
増えていきます

ActionScript3.0ではメモリ管理はできないものと思ったほうがいいのでしょうか?
123Now_loading...774KB:2009/12/01(火) 12:43:34 ID:VGjwJKRw
System.gc();はデバッグプレーヤのみで機能する
124Now_loading...774KB:2009/12/01(火) 13:00:31 ID:ojVSQCDX
>>122
リスナーを弱参照にして、不要になったらremoveEventListenerする。
125Now_loading...774KB:2009/12/01(火) 13:15:45 ID:N31TqzL5
>>123
なるほど
となるとある程度メモリに余裕のあるマシンで実行していると、
ガベージコレクションは起こらずにメモリ使用量は基本的に
増えていくってことですか……

>>124
イベントリスナーはマウスのボタンを押すときのMouseEvent.DOWNしか使ってないです
126101=115:2009/12/01(火) 13:49:37 ID:pHJYJvHF
>>117
自宅が規制中なので遅くなりましたがどうもありがとうございました!
ちゃんとエラー出ずに思い通りになりました

自分でやってみた時うまくいかなかったのは
とりあえず最初は非表示にしとこと思い
if分岐する前にvisible=false;を記述してた所為でした
つくづく自分アホス
ここまで付き合って下さり本当に感謝です
127Now_loading...774KB:2009/12/01(火) 13:55:45 ID:csT/f330
開発環境:flashdevelop as3プロジェクト
問題:
テキストフィールドをスクロールしたいと思いUIコンポーネントのTextAreaのimportをしようそしたところ、できませんでした。
TextAreaを仕様するにはどうすればよいのでしょうか。
一般的にテキストフィールドにスクロールバーを追加するにはどうしたらよいのでしょうか。

詳しい方よろしければ教えてください。
128127:2009/12/01(火) 14:23:26 ID:csT/f330
TextAreaの件自己解決できました。
一般的なスクロールバーの実装方法ご存知の方見えましたら教えていただけないでしょうか。
12945:2009/12/01(火) 14:42:17 ID:pU5yx5Ry
(Socketで受信したデータの16進数表示)

>>46
レス有難うございます&検証が遅くなり、申し訳ございません。
先ほど実験しました。
小分けして(バイト単位で)中身を見るとのことですが出来ませんでした。頂いた
while (socketObj.bytesAvailable>0) {
var tmp:uint=socketObj.readUnsignedByte();
trace("Data= " + tmp.toString(16));
}

ではDataが表示されないので、検証のためのtrace出力として
trace("動作情報= "+progressEvt.bytesLoaded+", "+tmpStr+", " +socketObj.bytesAvailable+", "+progressEvt.bytesTotal);
を書きました。
これだと、動作情報= 5, 1.255, 0, 0 という表示になり、後ろの2つ(socketObj.bytesAvailable
とprogressEvt.bytesTotal)は常にゼロです。

16進数表示のため、先ずは小分けして中身を見たいのですが、どうしたら良いでしょうか?


【関連の質問】
Socketのリファレンス ttp://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/net/Socket.html
を見ると以下の説明があります。
 ActionScript コードでソケット接続を確立して生のバイナリデータを読み書きできます。
 これは XMLSocket に似ていますが、送信あるいは受信するデータの形式に制約がありません。

ここで、「受信するデータの形式に制約がありません」とのことですが、扱えるのは
「生のバイナリデータ」と書いてあります。
これは平たく解釈すれば、『どの拡張子のファイルでも送受信できる』ということで良いでしょうか?

※ >>46さんの文中に「"1.2345" みたいな文字列で」とあり、Socketクラスはバイナリデータ以外に
文字列の扱いもOKなのかと疑問に思いましたので。
13045改め44:2009/12/01(火) 15:02:39 ID:pU5yx5Ry
間違えました!

自分のレス番は>>44です。
131Now_loading...774KB:2009/12/01(火) 20:59:27 ID:7ICnpVlL
フレームごとにfillrectをかけて画面をクリアしているのですがfillrectをかけない場合はCPUが10%くらいなのにfillrectをかけると80%くらいまで跳ね上がります
fillrectって物凄い重い処理なのでしょうか他に軽い処理などはないのでしょうか
132Now_loading...774KB:2009/12/01(火) 21:30:22 ID:T7Cfy287
>>131
普通にclearじゃ何か不都合あるの?
133Now_loading...774KB:2009/12/01(火) 21:44:04 ID:7ICnpVlL
>>132
BITMAPDATAにclearも使えるのでしょうか
134Now_loading...774KB:2009/12/01(火) 22:23:23 ID:VGjwJKRw
>>133
clearはない
何故故にその処理をしているのかがわからないから、アドバイスのしようがないな
とりあえずbitmapdataを塗りつぶすにはfillRectが恐らく一番負担が少ない
135Now_loading...774KB:2009/12/01(火) 22:30:20 ID:7ICnpVlL
>>134
ビットマップにアニメーションを連続描画しているので
毎回画面をリフレッシュする為にbmp_data.fillRect(bmp_data.rect, 0x0);と記述しているのですが
すごく重くなってしまうのです
136純金配合 ◆GoldHyGo/. :2009/12/01(火) 22:50:52 ID:hAha95U0
>>135 俺、前にこんなゲームのような物を作った時、
http://up.mugitya.com/img/Lv.1_up107512.png

背景スクロールの為に、マップチップ(bitmapData)を毎回高速に転送する必要があって調べた事があるんだけど、
多分お望みの用途であれば、例えば予め任意サイズで 0x00 で埋まったデータを用意しておいて、

var p:Point = new Point(); // p に描画開始位置を
var r:Rectangle = new Rectangle(); // r に塗りつぶしたいサイズを
bitmapData.copyPixels(真っ黒のbitmapdata, r, p);

ってやった方が速いやもしれん。 以前 adobe に tech系コラムだったか何かの記事で、copyPixelは高速って話を見たので試した。
実験した所、リアルタイムでスクロールできるほどだったので、採用したという訳だ。
Win32で画像処理系の何かを作った事ある人ならピンと来ると思うけど、恐らく copyPixels は、中で bitblt を行ってる。だから高速なのかも
137Now_loading...774KB:2009/12/01(火) 22:52:03 ID:VGjwJKRw
>>135
一度描画したビットマップ自体をアニメーションさせるのはだめなの?
具体的に何がしたいのかわからないけど、wonderflとかでサンプル探して処理方法を見直したほうがいいかも。
138純金配合 ◆GoldHyGo/. :2009/12/01(火) 22:52:15 ID:hAha95U0
>>135 俺、前にこんなゲームのような物を作った時、
http://up.mugitya.com/img/Lv.1_up107512.png

背景スクロールの為に、マップチップ(bitmapData)を毎回高速に転送する必要があって調べた事があるんだけど、
多分お望みの用途であれば、例えば予め任意サイズで 0x00 で埋まったデータを用意しておいて、

var p:Point = new Point(); // p に描画開始位置を
var r:Rectangle = new Rectangle(); // r に塗りつぶしたいサイズを
bitmapData.copyPixels(真っ黒のbitmapdata, r, p);

ってやった方が速いやもしれん。 以前 adobe に tech系コラムだったか何かの記事で、copyPixelは高速って話を見たので試した。
実験した所、リアルタイムでスクロールできるほどだったので、採用したという訳だ。
Win32で画像処理系の何かを作った事ある人ならピンと来ると思うけど、恐らく copyPixels は、中で bitblt を行ってる。だから高速なのかも
139純金配合 ◆GoldHyGo/. :2009/12/01(火) 23:14:48 ID:hAha95U0
・・・なんか書き込みエラーが出たと思ったら… 何で連投になってんだ・・・orz

>>129
>「生のバイナリデータ」と書いてあります。
>これは平たく解釈すれば、『どの拡張子のファイルでも送受信できる』ということで良いでしょうか?

>※ >>46さんの文中に「"1.2345" みたいな文字列で」とあり、Socketクラスはバイナリデータ以外に
>文字列の扱いもOKなのかと疑問に思いましたので。

ActionScript に限らないプログラミングの基礎的な話だけど、文字列だろうがなんだろうが、元のデータはバイナリです。
バイナリ値を、「文字列として扱えば文字列として扱える」 って事。 なのでOKなのか? って話じゃないのです。
そういう意味で、「どんなファイルでも」 ではなくて、「どんなデータでも」 送れるでしょう。 受け取り側がどういうデータが分かっていようがいまいが送れます。

ちょっと脱線するけど、例えば 0x31 0x32 0x33 0x34 という4バイトの値がSocketなどを通じて送られてきた時、
これを 「文字列として扱えば」 "1234" という文字(ASCII表現でこの文字)になる。 同じデータを4バイト符号無し整数として扱うと、
これは10進で 1,234 という数値ではなく、825,373,492 という数値になる。 またそれぞれ1バイトづつの生データとして扱うと、
これらはそれぞれ10進で 49 50 51 52 という4つの数値になる、ってこと。 要は送り手が、どんな値を送っているか理解出来ていないと、
多分望みどおりの結果は得られない。 この辺はプログラミングというかコンピュータと言うかのド基礎なので、勉強必須。

あと、Socketの件についはループ条件がそれでダメだったら、他の何か動く条件で回してみて。
要は、readUnsignedByte() で取り出したバイト値をそれぞれ uint#toString(16) で"16進文字列"に変えて吐きたい訳だから、
条件さえ整うならいけるはず。
14044:2009/12/02(水) 00:40:18 ID:aOtGOEBq
>>139
レス有難う。
もっと試してみます。
141Now_loading...774KB:2009/12/02(水) 12:34:56 ID:bFSYurwt
142Now_loading...774KB:2009/12/02(水) 12:45:14 ID:xxYZ41Nw
AS3 CS4です
NumberをtoString(16)は出来るのですが、その逆で
aなどがまじったのを10進数に戻すとNaNになります。
多分、プログラムしたら出来るでしょうが簡単に16進数を数値として認識してもらえることはできないでしょうか?
143Now_loading...774KB:2009/12/02(水) 13:18:50 ID:yWKtsvLn
144Now_loading...774KB:2009/12/02(水) 15:45:15 ID:SqaJ+k9C
var array:Array = [ 111, 222, 333, 444, 555 ];

function deleteObj( nnn:Number ):void {
for each( var n:Number in array ) {
if( n == nnn ) {
trace( n );
array.splice(....
}
}
}
deleteObj(333);

AS3 FlashCS3です。
対象の要素を引数で渡し、配列の中にある要素とfor eachで比較。
その対象を配列から削除するという関数を考えているのですが、
結局この要素が、配列の何番目に入っているかを取得するにはどうすればよいのでしょうか。
また、この目的の処理をする場合でもっと効率の良い方法があればどうか教えてください。
お願いします。
145Now_loading...774KB:2009/12/02(水) 16:31:12 ID:yWKtsvLn
foreach使わないなら、indexOfで何番目かわかる
var idx:int = array.indexOf(nnn);
while (idx != -1) {
array.splice(idx, 1);
idx = array.indexOf(nnn, idx);
}

for eachは参照される順番が保障されてないから、
forで回してカウントしないと何番目かはわからない

Vector使えるなら使った方が処理は早いと思われる
146Now_loading...774KB:2009/12/02(水) 18:00:19 ID:PegJ7Dl/
ActionScript2.0 の勉強を始めようとしている者ですが、質問させてください。
(1)ActionScript はFlashの画面を使わずに(絵を動かしたりボタンを配置せずに)、C言語のコンソールアプリみたいな作り方はできますか?
(2)もし上記の作り方ができるなら、main関数みたいなものは、どこでどのように宣言すれば良いでしょうか?

おバカな質問で申し訳ございませんが、お答え頂けると嬉しいです。
ちなみに、C/C++ の経験は多少ありまして、基本的なクラスの概念は理解しているつもりです。
147Now_loading...774KB:2009/12/02(水) 18:19:46 ID:ofB7ttmW
いまからas2を始めるのはお勧めしない
148Now_loading...774KB:2009/12/02(水) 18:19:46 ID:A22Gkdu9
>>142です
パルセイントでできました
ありがとう
149純金配合 ◆GoldHyGo/. :2009/12/02(水) 20:03:10 ID:yJpnSFHJ
>>146 標準入出力を受け取る手段がないので、
いわゆるコンソールでやりとりするような物は出来ません

あくまでASはFlashと言うただの1アプリケーションが解釈実行する組み込みマクロのような存在、
あるいはGUIの基本ウィンドウを持つVMのような物です

何も配置しない真っ黒/真っ白画面にして、中で何か処理をするのは普通にアリだとは思いますが、
それはただそういうスクリプトを実行してるだけであって、
OSが直接実行する何かと並列な存在ではありません
150146:2009/12/02(水) 21:02:42 ID:PegJ7Dl/
>>149 さん、教えて頂いてありがとうございます。
コンソールでいろいろできるなら、画面設計を一切考えずに簡単でいいなぁと思ってました…
でも、Flashって結構便利ですね。
携帯でもゲーム機でも使えて、Javaよりも動作が軽そうなので、頑張って何か作ってみます。
151Now_loading...774KB:2009/12/03(木) 22:54:04 ID:bckqcP8b
入れ子になったムービークリップがあります。
それぞのムービークリップにアニメーションをつけています。(アニメーションはスクリプトではなくフレーム上です。)

現在のスクリプト
mc1_mc.stop();
mc1_mc.mc2_mc.stop();

入れ子になったムービークリップが停止するスクリプトをまとめて書く方法を教えたください。
よろしくお願いします。
152144:2009/12/03(木) 23:50:12 ID:qkVKYVWx
>>145
ありがとうございました、indexOfで場所を把握できました。
var idx:int = array.indexOf( nnn );
array.indexOf( idx, 1 );
とても勉強になりました!
153Now_loading...774KB:2009/12/04(金) 05:44:24 ID:xqtS0h9c
String型の変数が空かどうか判別したいのですが、
どのような方法があるでしょうか?
以下の方法では駄目でした。


if (str == "") {
 trace = ("空です");
}
154153ですが:2009/12/04(金) 06:06:36 ID:xqtS0h9c
重ねて質問します。Stringのmatchの使い方が、わかりません。
以下の方法では駄目でした。

■ソース
var str: String = new String("*");

if (str.match(str)) { //←これで駄目な意味が分らない
trace("合致");
str = word[a];
}
else {
trace("合致せず。str=" + str);
}

■結果

合致せず。str=*
155Now_loading...774KB:2009/12/04(金) 06:15:57 ID:k3Hj0BD9
え?
156Now_loading...774KB:2009/12/04(金) 06:34:18 ID:2E7Bpu+f
>>153
これは動くと思います
trace = は誤植でしょうか?

>>154
match(pattern:*):Array
戻り値はBooleanじゃなく、patternに一致した文字列の配列です
引数は正規表現として扱われます

*(アスタリスク)
直前のアイテムについて 0 回以上の繰り返しに一致します。
157Now_loading...774KB:2009/12/04(金) 11:35:58 ID:HqMErwk+
>>153
型宣言してたらnull
してなかったらundefineだ
たしか
158Now_loading...774KB:2009/12/04(金) 13:05:31 ID:M3ZYVQDm
変数名を連番、あるいはある所から取得して生成するみたいな事ってできないでしょうか?

おかしいですが、下記のようなイメージです。
var i:int;
for (i = 0; i < 10; i++) {
var test-i:int;
}
test-1,test-2,test-3…みたいな感じで変数名が連番になって変数が生成されるという事です。
159Now_loading...774KB:2009/12/04(金) 13:27:55 ID:2cJV6B0z
this["test-" + i] = i;

みたいな感じ
160Now_loading...774KB:2009/12/04(金) 17:12:11 ID:M3ZYVQDm
>>159
すみません、いろいろ思考したのですが、
どのように使用すればよいのかわかりません。
this[]で囲むことでどのような意味を成すのでしょうか?
調べてもthisをそのように使用するというのが見当たりません
161Now_loading...774KB:2009/12/04(金) 17:57:19 ID:HqMErwk+
>>160
159じゃないけど
例えば
this["test-1"]

this.test-1
は同じこと。
[]を使えばプロパティ名に文字列を使える

一応書いておくと識別子にハイフンは使えないからね。
162Now_loading...774KB:2009/12/04(金) 19:07:17 ID:sKw4fK5/
配列の宣言で
var hoge:Array=[1,2,3];
とした場合hoge[0]から数値が入ると思いますがhoge[-1]から入れることはできるでしょうか
今は先に0から宣言してその後でhoge[-1]を宣言するようにしていますが
見た目がよろしくないので質問させていただきました
163Now_loading...774KB:2009/12/04(金) 19:13:35 ID:oX6WtKUW
>>160

つ 配列アクセス演算子
164Now_loading...774KB:2009/12/04(金) 20:56:24 ID:2cJV6B0z
>>162
マイナスは使えないよ
165Now_loading...774KB:2009/12/04(金) 20:59:29 ID:B7vtHyIl
>>164
使えるよ
166純金配合 ◆GoldHyGo/. :2009/12/04(金) 21:13:48 ID:DkiXsrff
>>162 どういう都合なんだ
167Now_loading...774KB:2009/12/04(金) 21:46:33 ID:M3ZYVQDm
>>161,163
ありがとうございます。
調べてなんとなく理解できた気がするのですが、
これはあらかじめ、自分で連番の変数を宣言しておかないとダメと言うことでよろしいでしょうか?
そうではなくて、宣言時に動的に連番に出来ないかなと思いまして…
168Now_loading...774KB:2009/12/04(金) 22:20:50 ID:nVe/SPz0
>>167
どういう理由で連番が必要か分からないから一概には言えないけど、Array使えば?
169Now_loading...774KB:2009/12/04(金) 23:30:48 ID:O7JtxJof
環境:WinXP-Pro,AS2.0,Player7,PHP5.2.6(Apache2.2)
LoadVarsのsendAndLoadでPHPとFlash間のデータ送受信を実現したいのですが、
全く分かりません。近い例として
ttp://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=1105&forum=7
ttp://www.artful.jp/blog/archives/2006/12/flashphp_1.html
があったので、これを参考にPHPとASを組んだのですが完全に手詰まり状態です。

下記の流れをやりたく思っています。
AS(Flash)で値を発生させる → LocalhostのPHP(valueSum.php)に送る 
→ PHPが計算(合計)して答えを出す → Flashに返信する
※平たく書くと Flash → PHP → Flash です。

実際の記述は以下通りです。
【AS】
var formData:LoadVars = new LoadVars();
var receivedData:LoadVars = new LoadVars();
doB.onRelease = function() {//ボタン(doB)を押して実行
function sendForm() {
formData.value0 = 10;
formData.value1 = 20;
}
};
var receivedData:LoadVars = new LoadVars();
receivedData.onLoad = function() {
trace("合計:"+receivedData.valueSum);
valueT2.text = receivedData.valueSum;//理想では返信された値(合計30)が表示されるハズ
};
formData.sendAndLoad("http://localhost/〜/valueSum.php",receivedData,"GET");

【PHP】
$valueSum = $_GET["value0"] + $_GET["value1"];
print("$valueSum=".$valueSum);
170169の続き:2009/12/04(金) 23:32:05 ID:O7JtxJof
ブラウザで上の記述でPHPを起動すると下記のエラーメッセージがブラウザ内に
現れます(コマンドプロンプトでも同じ)。

 PHP Notice: Undefined index: value0 in C:\hajimete_php5\valueSum.php on line 5
 Notice: Undefined index: value0 in C:\hajimete_php5\valueSum.php on line 5
 PHP Notice: Undefined index: value1 in C:\hajimete_php5\valueSum.php on line 5
 Notice: Undefined index: value1 in C:\hajimete_php5\valueSum.php on line 5
 0=0

また、合計値表示用のvalueT2には「Undefined」と出ます。

この場合、どうすれば良いでしょうか?
また、PHPを先に起動すべきといった検証手順があるのでしょうか?
アドバイス願います。
171Now_loading...774KB:2009/12/05(土) 01:54:43 ID:ixtldDC8
>>169
めちゃくちゃ過ぎる。
自分の書いたソースの各行を説明できる?

【AS】
var formData:LoadVars = new LoadVars();
var receivedData:LoadVars = new LoadVars();
receivedData.onLoad = function(success:Boolean) {
trace("合計:"+receivedData.valueSum);
valueT2.text = receivedData.valueSum;
};

doB.onRelease = function() {
formData.value0 = 10;
formData.value1 = 20;
formData.sendAndLoad("http://localhost/〜/valueSum.php",receivedData,"GET");
};

【PHP】
$value0 = (isset($_GET["value0"])) ? intval($_GET["value0"]) : 0;
$value1 = (isset($_GET["value1"])) ? intval($_GET["value1"]) : 0;
$valueSum = $value0 + $value1;
print("valueSum=".$valueSum);
172Now_loading...774KB:2009/12/05(土) 16:42:41 ID:I2cdQgpr
For文の処理を1回1フレームごと処理したいのですが無理でしょうか
173169:2009/12/05(土) 19:05:47 ID:AUvglW2r
>>171
レス有難うございます。
教えて頂いた記述でOKでした。traceのところは
trace("success, 合計:"+success+", "+receivedData.valueSum); で
success, 合計:true, 30 と出ました

最初、PHPの3項演算子のところは理解しづらかったですが、なんとか理解
できました。
174Now_loading...774KB:2009/12/05(土) 21:16:13 ID:YGqHgmca
>>172
どゆこと?
まさかenterFrameで解決しないよね…
175Now_loading...774KB:2009/12/05(土) 23:24:47 ID:I2cdQgpr
>>174
EnterFrameで解決しますがプログラムが汚くなるので他の方法はないかと模索しています
17644&129:2009/12/06(日) 00:43:19 ID:v+XqfF/1
(Socketで受信したデータの16進数表示)  ※最初の質問は44

>>46さんの「無限ループ回避仕込んでおいて〜」の
 while(socketObj.bytesAvailable>0) {
  var tmp:uint = socketObj.readUnsignedByte();
  trace(" Data= "+tmp+", "+tmp.toString(16));//tmpも表示するようにしました
 }

を、私の当初の記述(下)
-------------------------
接続を確立した後、var socketObj:Socket=new Socket(); の socketObj を使って
function socket_progress (progressEvt:ProgressEvent):void {
var tmpObj:Object=socketObj.readUTFBytes(progressEvt.bytesLoaded);
trace ("Data= "+tmpObj.toString()+", "+progressEvt.bytesLoaded);//バイト数は4または5
}
-------------------------
に適用すると trace(" Data= "+tmp+", "+tmp.toString(16)); は何も出なかったのですが、
readUTFBytes(progressEvt.bytesLoaded) の引数を0にしたところ[つまりreadUTFBytes(0)]
下記の出力を得ました。
Data= 49, 31
Data= 46, 2e
Data= 50, 32
Data= 49, 31
Data= 56, 38

これと 31→0x31 の変換を用いると、上記は Data= 10進ASCIIコード, 16進ASCIIコード
の関係になっていることが分かりました。
つまり受信したデータは、文字列(10進ASCIIコード)の並びだと言えると思いますが、何故
readUTFBytes(0)で>>46さんのwhile文が有効になったのかが分かりません。

引数がprogressEvt.bytesLoadedの場合、単純にreadUnsignedByte()のカーソルの位置が
終端に移動してしまってそれ以上読めないからなのでしょうか?
17744&129:2009/12/06(日) 04:01:03 ID:v+XqfF/1
あー、また間違えた・・・

『当初の記述』部分は修正していました。
var tmpObj:Object=socketObj.readUTFBytes(progressEvt.bytesLoaded);
        ↓
var tmpStr:String=socketObj.readUTFBytes(progressEvt.bytesLoaded);
178Now_loading...774KB:2009/12/06(日) 12:35:07 ID:j2rezxek
>>175 汚くなるかなぁ
どんなのが汚いのかわからんけど
わざわざenterFrameのために空MC作るのがいやってこと?
179純金配合 ◆GoldHyGo/. :2009/12/06(日) 19:48:44 ID:wwRdmRjw
>>172 >>175
>For文の処理を1回1フレームごと処理したいのですが無理でしょうか

そもそも動作の単位が違うので無理です。
フレームの繰り返しは、大きな Flash のアニメーション処理の単位で、for などの繰り返しは、
それよりも小さな Scriptコード上での繰り返し単位だから。

良く考えればわかる事だけど、例えば 1フレームの中に for 〜 処理 のように書く事が出来ますが、
もしもこれを 「for 〜 フレーム」 のように書きたいと思ったら、Script の処理逐次処理単位をフレームにしないと
実現できません。 フレーム1:何かの宣言、フレーム2:for、フレーム3:処理… のような。
で、実際にはそれだと使えないので、そのような事は出来ません。

なので、後は望んだ意図次第で工夫して、例えば gotoAndPlay や if の分岐などを使って
実現する必要があります。 内容次第ではそもそもそういう実装方法自体せずとも実現出来る事もあるので、
あとは自分のやりたい内容次第でロジックを考えてください。
180純金配合 ◆GoldHyGo/. :2009/12/06(日) 20:11:08 ID:wwRdmRjw
>>176
>何故readUTFBytes(0)で>>46さんのwhile文が有効になったのかが分かりません。

Socket#readUTFBytesの引数に0を渡した場合、多分リファレンスには書いて無いけど、
「その時取得可能な最大の内容を取得する」 あるいは UTFの単位で取得する際の最小の一塊を
取り出してるのかも。 あくまで推測。 何故 0 にしたらいけるのか、についてはごめん俺も知らない。

※余談: http://www.adobe.us/livedocs/flex/2_jp/langref/flash/net/URLStream.html
 URLStream の readBytes については、0 にすると全て読み取るみたいな記述はあるけど、
 この事から 0 を特別扱いをする傾向を感じる。

あと、UTFの単位で取り出して文字が返ってきてるって事は、サーバ側も文字を送ってる訳だよね?
あとは質問の雰囲気から察した老婆心だけど、readUTFBytes と readUnsignedByte が取得している単位の違いは理解してるよね?
なんていうか最終的には結果オーライでもいいかもしれないが、今やってる内容を乗り越えた後に、
何かでまたつまづいて止まるような気がしないでもない。 あと、ものすごく基礎的な話であれだけど、文字とバイト列の関係とか
181Now_loading...774KB:2009/12/07(月) 06:56:51 ID:tpmuvQTR
AS3 CS3です。
ボタンクリップに対してcを付けて
addEventListener(MouseEvent.CLICK,evt);
などと、イベントのクリックの指定を行いたいのですが、
場合によって、イベントされないことがあります。
エラーの表記は
「(インスタンス名)のプロパティがありません。」とかです。

でも、ボタンクリップでなくムービークリップだと
きちんと思い通りのイベントが反応されます。

これは何が問題なのでしょうか?
基本 ボタンクリップに対して、マウスイベントを与えるのは
よくないのでしょうか?
182Now_loading...774KB:2009/12/07(月) 18:13:35 ID:8yMyTb+b
先ほど初心者の方でも書き込んだんですが(マルチですまないです)

【環境】 AS2.0(FLASH CS4, MacOS X)
【目的】 swfに埋め込んだflvの動画が再生終了した後、
     自動的に別のフレームに移動させたい

フレームに

var flv_listener= new Object();
flv_listener.complete = function(){
this.gotoAndStop(57);
};
flv_player.addEventListener( "complete" , flv_listener );
stop();

で試しているのですがうまくいきません。
どうすれば良いでしょうか…?

どなたか、よろしくお願い致します。
183Now_loading...774KB:2009/12/07(月) 20:03:16 ID:zyUBTaqv
アクションスクリプトだけで無限に横にスクロールする画像を作りたいのですがどのような方法があるでしょうか
184183:2009/12/07(月) 20:04:20 ID:zyUBTaqv
すみません画像を無限に横にスクロールさせる方法です
185Now_loading...774KB:2009/12/07(月) 20:21:24 ID:gJf4i3LD
>>181
addEventListener(MouseEvent.CLICK,evt); 前後の記述をヨロシク


>>183
左から右に流れる場合:
ステージと同じ大きさの図を2つ並べる(例 [A][A'])
→ [A']をステージから見えるようにして[A][A']を同時に右に動かす
→ [A]の右端がステージの右端付近に来たら[A']を[A]の左に移動させる
→ [A'][A]のセットで右に動かす 
→上に戻る

あとは微調整してくれ。
18644&129&176:2009/12/07(月) 20:24:57 ID:dmSBY8sR
>>180
いつも懇切なアドバイス有難うございます。

>なんていうか最終的には結果オーライでもいいかもしれないが、今やってる内容を乗り越えた後に、
 何かでまたつまづいて止まるような気がしないでもない。

色んなサンプルを当たって練習&理解してみます。
187Now_loading...774KB:2009/12/07(月) 20:45:45 ID:FVkpebQE
var left:Number = 0;
var right:Number = stage.stageWidth;
var top:Number = 0;
var bottom:Number = stage.stageHeight;
if (ship.x - ship.width / 2 > right)
{
ship.x = left - ship.width / 2;
}
else if (ship.x + ship.width / 2 < left)
{
ship.x = right + ship.width / 2;
}
188Now_loading...774KB:2009/12/07(月) 22:04:53 ID:FvGDEDMr
XMLSocketなんですが、

警告 : [strict] 構文が正しくないため、xmlsocket://hoge.net:843 のポリシーファイルは無視されます。この問題の解決方法については、http://www.adobe.com/go/strict_policy_files_jp を参照してください。

と出ます。
サーバーからは
<cross-domain-policy><allow-access-from domain="*" to-ports="*"/></cross-domain-policy>(\0)
と返しています。
どうすればいいのでしょうか?
189Now_loading...774KB:2009/12/07(月) 22:34:30 ID:1TBOGu/j
>>188 どうすればいいのでしょうかって、丸投げ過ぎでは…

1.XMLの構文が正しくないと言っているのだから、構文をチェックする
2.チェックする先は、ポリシーファイルと、ついでに送受信しようとしたXMLの中身
3.解決法はこちらとリンクが出ているので、そこを確認。
  ※飛んだ先は多分英語だが、「XMLSocket ポリシーファイル」 でググると話は簡単に見つかる

どうすれば、って意味だとエラーメッセージ通り多分記述ミスがある、あるいはドメイン制限を越えているなど
もろもろ理由は思い当たると思うので、それらに対処すればおk
190Now_loading...774KB:2009/12/08(火) 15:03:34 ID:gmInxnvs
AS初心者、知識はCをかじった程度の学生です

インスタンスは表示されるのですが関数が適応されません

var url:String = "../obj/top.gif";
var urlReq:URLRequest = new URLRequest(url);

var top:Loader = new Loader();
top.load(urlReq);
top.x = 100;
top.y = 50;

addChild(top);


top.addEventListener(Event.ENTER_FRAME, test);
function test(eventobj:Event):void {
var target_mc:MovieClip = eventobj.target as MovieClip;
target_mc.x += 5;
}

関数内を下記に書き換えると実行されます

top.addEventListener(Event.ENTER_FRAME, test);
function test(eventobj:Event):void {
top.x += 5;
}

引数の型変換の部分が上手く記述出来てないと思うのですが
試行錯誤しても解決できないので
アドバイスいただけたら助かります
191Now_loading...774KB:2009/12/08(火) 18:10:31 ID:VRSYCQfU
MovieClipではなくてLoaderではないですか?
192Now_loading...774KB:2009/12/08(火) 18:19:13 ID:BIzrBHeC
>>190 自分で上で Loader のインスタンスを addChiled しているのに
target として取得したオブジェクトを MovieClipクラスにキャストしようとしてるのが誤り

Adobeのリファレンスサイトで、DisplayObjectか何かのページに周辺クラスの
継承図があったと思うけど、それによると確か Loader と MovieClip は継承関係には無かったと
思うので、キャストは出来ません

as MovieClip の所を as Loader に変えればおk
193Now_loading...774KB:2009/12/08(火) 20:43:38 ID:n+zyz8lA
>>191,192
通りました!さんくすです
OOP初めてなので助かりました

追加で質問ですが
Loaderで読んだ画像をMovieClipとして扱う方法はないのでしょうか?
現状はHPに使いたいと思ってるのでLoaderやBitmapでも問題ないですが
ちょっと気になりました(´・ω・`)
194Now_loading...774KB:2009/12/08(火) 21:19:16 ID:5OVnPgOL
>>193
MovieClipはただの入れ物だから、
そのままmcにaddChildするか、bitmapData.draw()で写してビットマップとして追加するか
195Now_loading...774KB:2009/12/08(火) 21:24:14 ID:n+zyz8lA
>>194
そういうやり方があるんですね
調べてみます!ありがとうございます
196純金配合 ◆GoldHyGo/. :2009/12/08(火) 21:43:43 ID:BIzrBHeC
自宅からレス。 >>192 です

>>193
MovieClip として扱う、の範囲がどこまでを指してるのかによるのであれなんだけど、
もしも単純にMovieClipのインスタンスとして扱いたいというならば、>>194氏 のレス通りにすればいいと思う。

というか、1点だけ。 OOという観点でASを使う場合、勉強や具体的な実装含めて、
基本的な考え方については別段問題は無いんだけど、用意されているライブラリのクラス構成については
罠が沢山待ち受けているので、あまりお勧めは出来ないかもしれない。 …知った上で使う分には便利だけども。

例えば先ほどの Loader クラス。 これは名前の印象から、例えば Java で言うところの net系クラス、あるいは io系クラスのように
見えるけれど、正体はここにある通り ↓
http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000143.html

DisplayObject系の派生クラスです。つまり名前は "Loader" なんて汎用的な io風の名前が付いているけれど、
Sprite や MovieClip の仲間です。 他にも、Video系クラスの使うストリームは、net パッケージのストリームとまったく互換性が無いとか、
分離も出来ないとか、OO的な観点から見ると???な状態となっています。 OOP初めてなので、とレスにあったので
この辺にも注意、とコメントだけしておきます。
197純金配合 ◆GoldHyGo/. :2009/12/08(火) 21:46:06 ID:BIzrBHeC
あ、忘れた。
>MovieClip として扱う、の範囲がどこまでを指してるのかによるのであれなんだけど

この↑一文の意味は、つまり単純に stage に addChild して座標を動かしたい程度だったら、
特に MovieClip や Sprite と入れ子にする必要はなくて、そのまま(Loaderインスタンスのまま)addChild してやればいい、
(何故って、Loaderの正体は上記の通りなので)
でももしも何かの事情でどうしても MovieClip インスタンスにしなければならないとしたら、入れ子にすればよい、
という意味です。 念のため補足。
198Now_loading...774KB:2009/12/08(火) 22:08:16 ID:n+zyz8lA
>>196,197
わかりやすい解説ありがとうございます
勉強になりました!
199Now_loading...774KB:2009/12/09(水) 21:03:34 ID:ypdthlyK
addChild(new Bitmap());をした場合
中心点は必ず左上になるのでしょうか中心にすることはできませんか?
200Now_loading...774KB:2009/12/10(木) 00:34:19 ID:/fKK+x2V
x,yを縦横の半分マイナス
201Now_loading...774KB:2009/12/10(木) 23:30:58 ID:Iz90nhwq
package
{ 〜
var t:TestClass = new TestClass();
t.num = 234;
trace( typeof( t ) );
}
class TestClass
{
public var num:Number
}

変数格納用のクラスが使いたくて、packageの外で定義する方法をやってみたのですが、
このインスタンスtをtypeOfで調べてみた所、object型と出ました。
object型の変数を使うと処理が重くなるといった事を思い出して、この方法をやってみたのですが。
(最初はpackageの中でObject型の変数を指定して、
object.num とobjectインスタンスの外から変数を指定していました)

何度もTestClass.numにはアクセスするので、あまり重くない方法を取りたいのですが・・・。
結局packageの中でobject変数を用意するのと、上のように別の変数用クラスを用意するのでは、
結局同じObject型へのアクセスという事で、処理負担はどっちが有利という違いは無いのでしょうか?

それともObject型を回避する為に
class TestClass extends Sprite
のように、スプライトを継承したりした方が何も継承しない上の方法よりは負担は軽くなるのでしょうか?
202Now_loading...774KB:2009/12/11(金) 01:42:28 ID:O806LqE4
>>201
別個でクラス作った方が基本的に早くなるよ
でもたぶん10万回とか100万回くらいループしないとほとんど差はないけどね

普通の
var obj:Object = {};
で生成するオブジェクトはプロパティの数も型も決まっていないダイナミックなクラスだから遅いものと思われる

パフォーマンスが気になるときは↓みたいにちょちょいとテストするとよかろう
import flash.utils.getTimer;
var start:int = getTimer();
for () { ... }
trace(getTimer() - start);
203Now_loading...774KB:2009/12/11(金) 06:24:49 ID:LKJyGMFR
Objectを継承していない変数なんて存在するの?
204純金配合 ◆GoldHyGo/. :2009/12/11(金) 12:26:20 ID:PlUgtvQ4
ASの場合、プリミティブ型(int、uintなど)もObject継承してたかも
今見られないのでちゃんと確認してないが
205Now_loading...774KB:2009/12/11(金) 13:20:47 ID:DOU4IKR+
intもObject継承してるよ
ただ速度の問題ならダイナミックかそうでないかがキモだろうから、だから何?って話になるけど
プリミティブはさらに速度出るように特殊な処理してるからなおさら
206Now_loading...774KB:2009/12/12(土) 00:21:51 ID:fpYJUdrt
import fl.transitions.Tween;

Tweenクラスをインポートしようとするとコンパイルエラーが出るのですが
どなたかわかりませんか?

環境は
Flex,FlashDevelop共Verは3.x(忘れました)でFlashPlayer9の機能には対応してると思います
207Now_loading...774KB:2009/12/12(土) 00:26:25 ID:2UyjeD9t
>>206
flash cs3とかのAdobe製品に含まれてるパッケージだと思われる
tweenerとか使ってみたら?
208Now_loading...774KB:2009/12/12(土) 00:31:00 ID:fpYJUdrt
>>207
調べてみます
ありがとうございます
209Now_loading...774KB:2009/12/12(土) 02:16:28 ID:aFOO/7sb
Flash CS3で作ってます。AS3.0を始めて1週間程度です。

縦長長方形のムビクリをドラッグにあわせて縦の長さを伸縮できるようにして、
なおかつ離したときにゴムのように伸び縮み→減衰して停止、というスクリプトを組みたいです。
ゴムのように伸び縮みする部分はheightにsinを代入することで再現、減衰はMath.powを使うところまではわかってますが、
どう代入したらいいのかさっぱりわかりません。
なお長方形はムビクリで作りましたが、ただの塗りつぶした長方形なのでDrawRectで書く方法でも大丈夫です。

どなたか宜しくお願いします。
210Now_loading...774KB:2009/12/12(土) 10:59:02 ID:eYfTpWJP
ムビクリ(笑)
211純金配合 ◆GoldHyGo/. :2009/12/12(土) 11:26:44 ID:YV15nqG/
>>209 その関数の結果(戻り値)をセットする、って言う考えはどこから来た?
理由が整理されてないと方法は見つからないぜ

とりあえず、周期関数で座標を動かせばビヨヨーンってなるんじゃないか、
までは気づいてるようなので、順序としてはまず

「マウスで適当なMovieClipをクリックして、対象を特定できるか」
(ヒント:MouseEvent.MOUSE_DOWN と .MOUSE_UP)

「次に、マウスの動きに合わせてMovieClipを変形動作できるか」
(ヒント:MouseEvent.MOUSE_MOVE)

そこまで出来れば、あとは座標や幅高さをあなたの方法で変化させてやればいい
212Now_loading...774KB:2009/12/12(土) 11:38:06 ID:rbi4Usls
ビヨ〜ン関数のクラスもあるぜ
213Now_loading...774KB:2009/12/12(土) 14:16:31 ID:tEW1rlm2
メディアサーバーに置いてある動画を以下のScriptで再生したいのですが、うまく行きません

var nc:NetConnection = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, onNCNetStatus);
nc.client = new Object();
nc.connect("rtmp://flash.ponycanyon.co.jp/vod/c/2009/lisa-ch");

function onNCNetStatus(_evt:NetStatusEvent) : void {
trace(_evt.target+":"+_evt.info.code);
var ns:NetStream = new NetStream(nc);
ns.client = new Object();
ns.addEventListener(NetStatusEvent.NET_STATUS, onNSNetStatus);
ns.play("movie");
var vid:Video = new Video(240,180);
vid.x = vid.y = 0;
vid.attachNetStream(ns);
addChild(vid);
}
function onNSNetStatus(_evt:NetStatusEvent) : void {
trace(_evt.target+":"+_evt.info.code);
}
214Now_loading...774KB:2009/12/12(土) 14:17:18 ID:tEW1rlm2
>>213の続きです

上記を実行すると、出力は

[object NetConnection]:NetConnection.Connect.Success
[object NetStream]:NetStream.Play.Reset
[object NetStream]:NetStream.Play.Start

と出ますが、再生されません。

ちなみに、動画をローカルに置いて、nc.connect(null);、ns.play("movie.flv");に書き換えれば再生されます。
また、自分でスクリプトを書かずに、FLVPlaybackコンポーネントを使って、sourceプロパティに rtmp://hoge.com/app/movie.flv と設定しても再生されます。
なにか根本的なところが間違ってるのかもしれませんが、よろしくお願いします
215純金配合 ◆GoldHyGo/. :2009/12/12(土) 16:14:25 ID:YV15nqG/
>>213 まず、あなたはポニーキャニオンの人? つまり、

>nc.connect("rtmp://flash.ponycanyon.co.jp/vod/c/2009/lisa-ch");

ここと同じドメインにSWF置いてる?もしも全然無関係な個人サイトにSWFをUploadしていて、
まったく別のドメインにあるこれをロードしようとしてるなら、普通に無理と思う
216209 ◆MIqONiVjZI :2009/12/12(土) 16:18:01 ID:CoA6iYh2
>>211
自宅から書き込みます。

いくつか買い集めたAS3.0本にTimer関数ってのを見つけたので、そこからです。
一定間隔ごとにsin値を取得してそれを連続して表示すればアニメーションするんじゃないかと思いました
217Now_loading...774KB:2009/12/12(土) 16:37:51 ID:tEW1rlm2
>>215
すいません、無修正でアップしちゃったので忘れてもらえると助かります

構成はWEBサーバーにswfをおいて、メディアサーバーにflvを置いてます
アクセス許可は大丈夫とのことだったので、crossdomain等も大丈夫です

この状態で、
FLVPlaybackコンポーネントを使うと再生できるのに、
上記のスクリプトでは再生されません
何が悪いのかを教えていただけると嬉しいです
218純金配合 ◆GoldHyGo/. :2009/12/12(土) 17:01:38 ID:YV15nqG/
>>217 うーん・・・ 以前にVideo関係の取り回しを楽にするため、ラッパークラスを設計して書いた事あるので
その時のソースとリファレンスを確認してさらっと見直してみたけど、とりあえず、

NetStream#play() の引数として、俺はurlを渡しています。メディアサーバは使用した事無いんだけど、
あいつの正体は JavaのServlet だったと思うので、単純に、パスが間違ってないか?とは思います。 つまり、

>ns.play("movie");

この時これは、swfから見て ./movie にあたるパスにアクセスしようとしてると思うので… それがまず合ってるのかな?と
219Now_loading...774KB:2009/12/12(土) 18:03:32 ID:tEW1rlm2
>>218
私もメディアサーバーを使わずに動画再生を行ったことはあります
httpだと、NetConnection.coonect(null)とplay(URL)で済むんですが
rtmp://の場合はいろいろと違うようで、四苦八苦してます
一応いろんなサイト見てその通りにしてるはずなんですが・・・
220Now_loading...774KB:2009/12/12(土) 18:23:09 ID:BBJFx9AU
どこに質問していいのかわからないので、
とりあえずよろしくお願いします。

5年ほど前に、ユーザ認証で入るサイト内で、
DBの値を取得し、Flashでグラフを作成しました。
その時は、ユーザIDとパスワードをswfの後ろに
パラメータをつけた形でHTML出力してもらっていましたが、
さすがにセキュリティ上まずいだろうという話になり、
別の方法でセッション情報を受け渡せないだろうか?と
質問されました。

私はしがないFlash作成要員なので、
どう答えればいいのかわかりません。

Flashへ投げるDBの内容はASPで吐き出してもらっています。

板スレ違いでしたら、申し訳ありませんが
どちらに移動すればいいか、教えていただければ幸いです。
221Now_loading...774KB:2009/12/12(土) 18:33:03 ID:2UyjeD9t
>>220
例えばサーバサイドでPHPとか使ってたらPHPのセッションにログイン情報もっておいて、
FLASH内からリクエスト投げてOKかNG返してもらうとか。

ユーザ認証は何でやってるの?
222220:2009/12/12(土) 18:49:44 ID:BBJFx9AU
>>221
Flashを置いてあるページ以外も複数作成してもらっていて、
業者はすべてASPで開発していると言っていました。
私は、今一セッションという概念もわかっていないです(´;ω;`)
223Now_loading...774KB:2009/12/12(土) 19:03:56 ID:2UyjeD9t
>>222
ASPってドットNETのほうのASPか
以前はそのSWFの後ろにつけたID・PWを使ってどうやって認証してた?
あとDBへのアクセスはASP経由とかでやってる?
224Now_loading...774KB:2009/12/12(土) 19:11:50 ID:N+55e4i7
セッションの効いてるページ上にswfエンベッドしてるならセッション情報付きで
サーバにアクセスできるんだけど、業者が難しく考えすぎてるだけなんじゃないか?
225純金配合 ◆GoldHyGo/. :2009/12/12(土) 20:55:49 ID:YV15nqG/
>>220 >>222
>その時は、ユーザIDとパスワードをswfの後ろに
>パラメータをつけた形でHTML出力してもらっていましたが、

まず整理したいんだけど、ここで言っている認証状態って例えば

1.swf の AS内からネットワークに接続する為に渡されている物?
2.それとも、swf そのものを認証後にクライアントにロードさせたい為、間に CGI 等挟んでたりする?

1の場合、良くあるのは *.asp/*.aspx (あるいはその他のサーバサイドページ、php、jsp など)でログイン処理と
セッション維持を行っておいて、そこに動的に出力された html 上で、ワンタイムキーを埋め込み、
swf 側はそのワンタイムキーをサーバに投げて本来の ID/PW を取得して処理を続行するっていうパターン。

しかしもしも2の事情がある場合、ちょっと設計そのものを変えないと無理。 … って、書いてて思ったが、2はあんまり無いか


226Now_loading...774KB:2009/12/12(土) 20:55:51 ID:BBJFx9AU
>>223
>>224
FlashからDBの値を取得という書き方は
よくなかったですね。
えっと、
HTMLから、○○.swf?ユーザID&パスワード
という形で受け取ったIDとパスを
sendLoadVars.sendAndLoadで渡し、
あちらからは、変数=○○&変数=○○…
という形で吐き出してもらっています。
渡し先のスクリプトは拡張子がaspxです。
227純金配合 ◆GoldHyGo/. :2009/12/12(土) 21:21:37 ID:YV15nqG/
>>226 って事は、>>225 で言う 1に該当する状態だけど、
多分 asp/aspx 側(要するに ASP.NET側)は、単純に swf からアクセスされるページで
SESSIONの情報をさらっと取得せず、ID/PW で再度確認を行いながら内容を返している、って事だよね。

そういう事情ならワンタイムキーをログイン時に作成してもらい、それをID/PWの代わりに埋め込んでもらえばいいだけ
そしてAS側も、ID/PWの代わりにそれを送信すればいい。
サーバ側(ASP.NET側は SESSIONからワンタイムキーを引いて、それと送信されてきたものが一致するかだけ確認すれば
結果認証されてるって事になる。 ※実際の認証は、結果的にログイン時に行われているって事になる
228純金配合 ◆GoldHyGo/. :2009/12/12(土) 21:29:51 ID:YV15nqG/
おまけ。 >>222
>私は、今一セッションという概念もわかっていないです(´;ω;`)

セッションって、要するに 「一連のページは単独でない。全て入り口から出口までつながったものです」 を表現する為の考え方で、
それを実現する為の技術です。 ASP.NET でも JavaのJ2EE(多分 Flexメディアサーバ含む) でも、PHP でもその他でも考え方は大体同じです。

具体的には、あるページに接続してきたクライアント(例えばブラウザ、例えばSWF、例えばなんらかのソフト)があるとき、
そのクライアント個人向けに何らかのデータをサーバ側に持ちます。 次に同じクライアントからそのシステムに接続された時、
同じデータをサーバ側で操作できるようにします。 で、この時、「次に同じクライアント」 と一言で言っているけど、
普通 http はステートレス(遷移状態が記録されない) なので、そのままでは 「このアクセスは同じひと」 がわかりません。
それを解決するため、サーバ側の機構として COOKIE を利用して、とあるキーが発行されます。
サーバ側のセッション処理機構では、クライアント側のCOOKIEにあるキーと、自分が持っているキーの辞書を比較し、
「あ、これ同じ人」 と、判断します。 こんなかんじ
229Now_loading...774KB:2009/12/12(土) 21:31:17 ID:N+55e4i7
てかサーバ側でSession情報に応じて値返すようにしとけばそもそもswfに変数渡す
必要すらないと思うが。
230純金配合 ◆GoldHyGo/. :2009/12/12(土) 21:34:28 ID:YV15nqG/
>>229 普通そうするよな… w
231220:2009/12/12(土) 23:35:35 ID:BBJFx9AU
>>225
>>229
ありがとうございます!
セッションてどうやって引き継いでるんだろう?と思ってたのですが
そういうことなのですね。

業者の方にはワンタイムキーを渡すようにしてくださいと
回答すればよいのでしょうか?

>>229さんの
おっしゃってることは、またこれとは違う手法なのですか?
232Now_loading...774KB:2009/12/12(土) 23:52:57 ID:N+55e4i7
>>231
どういう環境か不明だから業者にこのスレ見せて選ばせるのが手っ取り早いと思う
233Now_loading...774KB:2009/12/13(日) 00:19:54 ID:90PTDJgW
>>232
了解です

大変助かりました
みなさんありがとうございました
234Now_loading...774KB:2009/12/13(日) 02:46:39 ID:PA6RPTM6
AS3、cs4でサンプルソースの利用についてです。

初心者ですがよろしくお願いします。
本当に初歩的な事だと思いますが、
package{
import〜


と記述されてるスクリプトをCS4でswfとして出力するにはどうすればいいですか?
自分なりに調べてみたのですけど環境設定で外部ASとして読み込み、
そのflaファイルを同階層に置いて出力すればおkとの事だったんですが
うまく出来ませんでした。
どのような設定をすれば読み込んでくれるのか知りたいです。
内容、文章ともに稚拙で申し訳ないのですが、どうかよろしくお願いします。
235Now_loading...774KB:2009/12/13(日) 10:29:49 ID:7Ut2LyXl
ヘルプでドキュメントクラスのところ読めば分かるんじゃないかな?
236Now_loading...774KB:2009/12/13(日) 19:48:39 ID:5jDtw/O6
123456・・・と高速で数値を加算して表示していくプログラムがあるのですが
テキストフィールドに毎回書き込むと負荷が大きそうな気がするのですが大丈夫でしょうか
0〜9までを画像にして毎回表示するほうが軽いでしょうか
237Now_loading...774KB:2009/12/13(日) 20:00:25 ID:Xvl8e+h9
テキストでおk
238Now_loading...774KB:2009/12/14(月) 04:47:29 ID:1lSv1yS+
EnterFrame毎に出力するほうがよか
239213:2009/12/14(月) 20:15:59 ID:dRkhb1BX
>>213です
自己解決したので、報告
rtmp://domain.com/video/data/1/movie.flv
にある動画は以下のソースで再生できました
var vid:Video = new Video(240, 180);
addChild(vid);
var nc:NetConnection = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, evtNetStatus);
nc.client = new Object();
nc.connect("rtmp://domain.com/video");
function evtNetStatus(_evt:NetStatusEvent) : void
{
trace(_evt.info.code);
switch (_evt.info.code) {
case "NetConnection.Connect.Success":
var ns:NetStream = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, evtNetStatus);
ns.client = new Object();
ns.play("data/1/movie");
vid.attachNetStream(ns);
break;
}
}
240純金配合 ◆GoldHyGo/. :2009/12/14(月) 22:23:11 ID:J+WnzPLS
>>218
>ns.play("data/1/movie");

だから相対パスになってるんだけど合ってるかなと >>218 で言ったんだけど、
自己解決って事は、伝わってなかったのかw
241純金配合 ◆GoldHyGo/. :2009/12/14(月) 22:23:53 ID:J+WnzPLS
ミス
>>240>>239 宛て
242Now_loading...774KB:2009/12/15(火) 23:37:34 ID:kZzq10Xu
読み込みたいファイルが存在しなければ無視するシステムを作りたい
(URLは利用者に入力させるので、事前に正しいかどうか分からない)のですが
たとえば、ローダーの場合、
var loader:Loader = new Loader();
loader.load(new URLRequest(存在しないファイルアドレス));
で、存在しないファイルをLoaderで読み込もうとすると、
Error #2044: ハンドルされていない IOErrorEvent : text=Error #2035: URL が見つかりません。
というエラーがでてしまいます。(ファイルが存在しないのだから当たり前ですが)
なので、読み込む前にファイルが存在するかどうかあらかじめ調べるか、エラーを出さずにすむ方法はないでしょうか。
ちなみに、ぐぐったら↓これを使えと書いてあったんですが、これでエラーをキャッチしてもエラーは出たままです。
loader.addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler );
どうすれば実現できますでしょうか?
開発環境はFlex4+Flashdevelop3です
243Now_loading...774KB:2009/12/15(火) 23:43:39 ID:Fa4sj19H
>>242
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, func);
かな。それか例外処理で検索。
244Now_loading...774KB:2009/12/16(水) 13:58:51 ID:03BJYCDL
たぶんどっかの画像のURLとかテキストのURLを使ってムービーに表示させたいとか?
エラー処理はtry...catchとI/Oエラーでいけるはずだけど、そもそもセキュリティ的に無理なことやろうとしてんじゃないかな
245Now_loading...774KB:2009/12/16(水) 15:57:47 ID:75TQBDdE
ActionScript3でC言語で言うところのmemcmpを配列に対して実行する方法はありますか?
forで回してるんですが、遅くてたまらないです。
246Now_loading...774KB:2009/12/16(水) 17:12:38 ID:03BJYCDL
ないんじゃない?固定長のデータを高速に扱う部分がキモならByteArrayでやればいいんじゃないかな
247純金配合 ◆GoldHyGo/. :2009/12/16(水) 17:14:35 ID:gWhAZ8nf
>>245 ありません

と言うか、結局ASは良くも悪くもFlashと言う1製品用のスクリプトなので、
ネイティブコンパイル(またはそれに準ずる物)と比較しない方が良いかもしれないです。
充分な機能を持ってますけどね
248Now_loading...774KB:2009/12/16(水) 17:18:51 ID:KUz1LhbS
例えばその部分だけAlchemyでCに処理渡したら速くなったりするのかなあ?
実験でやってみてほしいw
249純金配合 ◆GoldHyGo/. :2009/12/16(水) 20:39:30 ID:gWhAZ8nf
家からレス。てか、せっかくなんでリンク貼っとくw

Adobe Labs: Arhcemy - C/C++ で 高速なFlash開発
http://labs.adobe.com/technologies/alchemy/

Document - Windows (Windowsと言うか、Cygwin必須)
http://labs.adobe.com/wiki/index.php/Alchemy:Documentation:Getting_Started#Windows

Download
http://labs.adobe.com/downloads/alchemy.html

今週末触ってみる
250242:2009/12/16(水) 22:28:56 ID:V5BHnBnc
>>243
できました。ありがとうございます。
251245:2009/12/17(木) 15:26:09 ID:4LrrG9pf
>>246-249
ありがとうございます。
Alchemyで実装してみたら無茶苦茶早くなりました。

#include <stdlib.h>
#include "AS3.h"
static AS3_Val compareMemory(void* self, AS3_Val args)
{
int retval;
AS3_Val arg1 = AS3_Undefined();
AS3_Val arg2 = AS3_Undefined();
int arg3;
void* a;
int a_len;
void* b;
int b_len;
AS3_ArrayValue(args, "AS3ValType, AS3ValType, IntType", &arg1, &arg2, &arg3);
a_len = AS3_IntValue(AS3_GetS(arg1, "length"));
a = malloc(a_len);
AS3_ByteArray_seek(arg1, 0, 0);
AS3_ByteArray_readBytes(a, arg1, a_len);
b_len = AS3_IntValue(AS3_GetS(arg2, "length"));
b = malloc(b_len);
AS3_ByteArray_seek(arg2, 0, 0);
AS3_ByteArray_readBytes(b, arg2, b_len);
retval = memcmp(a, b, (size_t)arg3);
free(b);
free(a);
return AS3_Int(retval);
}
252Now_loading...774KB:2009/12/17(木) 15:27:27 ID:4LrrG9pf

int main()
{
AS3_Val compareMemoryMethod = AS3_Function(NULL, compareMemory);
AS3_Val result = AS3_Object("compareMemory: AS3ValType", compareMemoryMethod);
AS3_Release(compareMemoryMethod);
AS3_LibInit(result);
return 0;
}

とりあえずこんなので動いてるみたいです。
253Now_loading...774KB:2009/12/18(金) 00:37:11 ID:o1TLRzqZ
MTASCでFlash Lite2.0(携帯向け)コンテンツを作ろうとしている初心者です。

ちょろちょろ座学をしてきたのですが、そろそろ実践をして覚えていきたいと思っています。
何か過程を少しずつ理解しながら練習していけるような解説サイトはないでしょうか?

http://www.geocities.co.jp/Milano-Cat/4036/bote/
がとても気に入ってるのですが、あいにくAdobe Flashでの作成法が中心のようで…。
254Now_loading...774KB:2009/12/18(金) 18:55:40 ID:wgp3IQJw
>>253
Lite2.0ならFSCommandを使わない限りPlayer7でパブリッシュしたSWFも
利用できます。
あとLite専用スレは見た?
255Now_loading...774KB:2009/12/18(金) 22:33:59 ID:Mi5Tz2Po
AS2でhittestを用いてシンボルにカーソルが触れたときに効果音をループせずに一回鳴らすというのはどうすれば良いのでしょうか?
現在はボタンのオーバーで音を鳴らしているのですが、クリックしたままカーソルを移動させてシンボルに触れたとき音を鳴らしたいので困っています。

現在のファイルは↓です
http://www.geocities.jp/tales_house/kira2.fla
http://www.geocities.jp/tales_house/kira2.swf

解決方法わかる方どうかよろしくお願いします。
256純金配合 ◆GoldHyGo/. :2009/12/19(土) 07:37:32 ID:5ZxdyfvJ
>>255 swfだけ試してみたけど、これは単純にこういう状態
1.hittest が true → 音が鳴る
2.絵が回転する
3.回転のタイミングで(恐らく斜めになったあたりで) hittest している対象の MovieClip から一度マウスが離れた状態になる
4.そのまま回転が続き、再び hittest が true → 再度音が鳴る

図示すると… □ ← の領域の、例えば右下の角あたりにマウスがある時(hit!)、□ が回転して ◇ ← こうなった時、一度マウスは
外の領域に出た状態になる。 そのまま ◇ が回転し続け … 再び □ ← こうなった時、再度 hit するという状態。


なので簡単な回避方法としては、例えば回転する MovieClip を入れ子にして、

 [親] 不透明度 1(0でも良かったっけ?)の矩形
  └[子] 回転する絵

のようにして、hittest は親側でする。のようにすればおk

┌─┐
│◇│ ←外の枠が hittest 判定用の透明な親。中の◇が回転する絵。
└─┘
257Now_loading...774KB:2009/12/19(土) 12:52:48 ID:pfka2vJ1
xmlにかかれた情報を読み取って1つ1つの情報に合わせたムービークリップを複製したいのですが、
どのようなコードを書いたらよろしいでしょうか?よろしくお願いします。
258Now_loading...774KB:2009/12/19(土) 14:25:52 ID:cni2gb74
URLLoaderで読み込んでXMLListにぶち込む
259Now_loading...774KB:2009/12/19(土) 15:02:42 ID:pfka2vJ1
>>258
できました!!ありがとうございました!!
260Now_loading...774KB:2009/12/19(土) 16:40:02 ID:47YhWpdu
ASもECMAS5に準拠するのかな?
261Now_loading...774KB:2009/12/19(土) 17:28:10 ID:xDcKeWnr
>>255
フラグを使う
カーソルが触れた時にサウンドを鳴らしたいのか
クリックした時に鳴らしたいのかはっきりしないのでこれくらいしか言えない
262Now_loading...774KB:2009/12/19(土) 22:37:57 ID:gxG2E4df
テキストフィールドにUIScrollBarをセットで使っているんですが、
表示している段落の位置を強制的に最下段に直す事ってできませんかね?
よろしくお願いします。
263Now_loading...774KB:2009/12/19(土) 23:26:29 ID:pfka2vJ1
url =new URLRequest("music/00" +[i]+".mp3");

URLRequestに変数のiを入れてif文にかけたいんですが、この場合iはどのようにいれればいいでしょうか。
よろしくお願いします。
264純金配合 ◆GoldHyGo/. :2009/12/20(日) 00:01:31 ID:5ZxdyfvJ
>>263 ? 要は 「もしも i の値が何々だったら、どうこう」 ってしたい、ってこと?

var i:int = 100;
var url:URLRequest = new URLRequest("music/00" + i +".mp3"); // ← この場合、"music/00100.mp3" という文字列に

この時、例えば 「i が 50 だったらどうこう」 したい場合は、

 if(i==50) {
  // i が50ならどうこう
 } else {
  // そうでない場合
 }


って話ではなくて?それとも三項演算子の話なのか
265Now_loading...774KB:2009/12/20(日) 00:14:54 ID:TMOvwNTF
>>264
説明不足ですいませんでした。最初にiの値に0を入れてインクリメントして
music/000.mp3
music/001.mp3
music/002.mp3
....
とURLRequestに入力したいと考えています。
266純金配合 ◆GoldHyGo/. :2009/12/20(日) 00:24:39 ID:M5TyCF6N
>>265 それをやりたい場合は、 if じゃなくて for という制御命令を使うのだ

for(var i:int=0;i<100;i++) { // 0〜99 まで繰り返す
 url =new URLRequest("music/00" + i + ".mp3");
 // なんか処理
}

…ただしこのまま実行した場合、000.mp3 〜 009.mp3 まではいいとして、
10以降は 0010.mp3 のようになってしまうから、適宜フォーマットしてやらんといけない
例えば↓こんな具合に

for(var i:int=0;i<100;i++) { // 0〜99 まで繰り返す
 var tmp:String = "000" + i;
 // 文字列の後ろから3桁を拾っている。3桁以上になる場合、-3 を変える必要あり
 url =new URLRequest("music/" + tmp.substring(tmp.length-3) + ".mp3");
}
267Now_loading...774KB:2009/12/20(日) 10:11:37 ID:HBBkJ6sl
xml内を検索したいのですが、ググるとimport mx.xpath.XPathAPIを使うというのがありますが、
AS3単体でそう言ったことをするにはどうすればよいでしょうか?
268Now_loading...774KB:2009/12/20(日) 10:38:31 ID:HBBkJ6sl
補足です。Arrayを使うと、出来ますが、xmlのデータが
<日本の駅>
<駅情報>
<駅名>横浜駅</駅名>
<路線情報>
<路線名>東海道線</路線名>
<上り駅>川崎</上り駅>
<下り駅>戸塚</下り駅>
</路線情報>
<路線情報>
・・・
</路線情報>
<路線情報>
・・・
</路線情報>
</駅情報>
<駅情報>
</駅情報>
・・・
</日本の駅>

みたいになっていまして、arrayで[0][0]に駅名、[0][1]に路線名、2,3に上り下り駅なんて形で入れますと
その駅に2路線以上あると、同じ駅なのにインデックス値が変わってしまうため、
抽出するときに厄介なことになってしまうので、xmlのままで検索できないかと思い、質問させていただきました。
もし、arrayをこうすれば解決できるなどありましたら、教えていただければ幸いです。
269純金配合 ◆GoldHyGo/. :2009/12/20(日) 12:49:02 ID:M5TyCF6N
>>267-268 簡単に一言で済ますと、DOMでぐぐれ、って話になるんだけど… ASの場合この辺か↓
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/xml/package-detail.html

一応、簡単に補足しておくと、とりあえずXMLを扱う時の基礎としてはASに限らず大抵の言語で、
XMLの標準操作である DOM(Document Object Model)という考え方を使って要素にアクセスする。
ASで具体的に書くと、こんな感じになる。

var oXml:XMLDocument = new XMLDocument();
oXml.ignoreWhite = true;            // 空白を気にするな、の意味
oXml.parseXML(〜ここにXML文字列〜);  // パース

var tmp1:XmlNode = oXml.firstChild;      // 最初の要素。>>268 で言えば、多分 "日本の駅"
var tmp2:XmlNode = tmp1.childNodes[0];   // とりあえずXMLデータがみっちり隙間無かった場合、多分最初の "駅情報"
var tmp3:XmlNode = tmp2.childNodes[0];   // 同様に、多分最初の "駅名"
var tmp4:String = tmp3.childNodes[0].toString();  // 多分 "横浜駅" という文字列。

※注:tmp4 については、普通はただの文字列(XMLで言うCDATA)であっても「ノード」なのでこのようにするけど、
 エンジンが上手い具合に処理してくれてるなら、 tmp3.toString() で取れるかも

基本的に、XMLのデータは『ノード構造』なので、ファイルディレクトリみたいに階層になっていて、
XPath は上みたいなDOM処理を簡易に行うため、それこそファイルのパスやURLのように "日本の駅/駅情報/駅名" みたいにアクセスできるようにした仕掛け。
しかしXMLのデータはファイルやURLのそれと違い、ノード名は重複するので、結果的に途中で n 個の同名を XMLNodeList 形式で取得して
処理する必要がある。 ・・・ だいぶ端折って簡単に説明してるけど、もっと詳しくは DOM でぐぐっておくれ

あと、普通この手のノード処理は、もしも汎用的に書きたい場合や慣れてる場合、さらっと再帰のアルゴリズムで実装する。
理解出来ていればその方が簡単で手早い。 限定的で絶対にデータ文字列に問題が無い事がわかっているなら、上みたいに書いてもいい。
270純金配合 ◆GoldHyGo/. :2009/12/20(日) 12:59:30 ID:M5TyCF6N
あ、ごめん、違うか。
DOMで取得した内容を自分仕様な Array に突っ込んだあと、検索したいって話? だとしたら、
実装方法はいろいろあるけど、俺なら辞書作ってそっちに持っておく。

var oDic:Object = new Object();
oDic[ここに例えば駅名の文字列] = ここにXMLNodeの参照

で、キーワードを oDic に当てて、中身を取り出せばおk。他の方法としては、上で書いたDOMを再帰で探す。
ちなみに、DOMには他にも要素名でさくっとノードを取得するようなメソッドがあるので、内容次第ではそっちを使ってもいい。
※ただしこの辺は方言あり。AS限定なら、例えばこれ → http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/XML.html#elements()

あと、AS3だとこの辺を参照:
http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000125.html
http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000125.html
271Now_loading...774KB:2009/12/20(日) 14:27:41 ID:RSbZNkN1
>>268
AS3ならe4x使ってXMLList形式でアクセスすればいいんじゃね?それだとなんか問題あるの?
272Now_loading...774KB:2009/12/20(日) 21:35:28 ID:VUAXZoMw
MP3形式で効果音を鳴らしているのですが遅れて再生されてしまいます仕様なのでしょうか
273Now_loading...774KB:2009/12/20(日) 23:40:29 ID:HBBkJ6sl
>>270,271
回答ありがとうございます。両方とも見て大変参考になりました。
まだ出来てはいませんが、色々試してみたいと思います。
274Now_loading...774KB:2009/12/21(月) 03:11:54 ID:6M2CzB/c
CS4 AS2.0です

a_mc._visible=false;
NO=1;
b_btn.onPress = function(){
No++;
if(NO==1){a_mc._visible=true;
}
else{
a_mc._visible=false;
}
}
b_btnを押したらa_mcを表示させ、もう一度押したらa_mcを非表示に
したいのです。
現状表示はするのですがもう一度ボタンを押しても非表示になりません
お忙しいなかだとおもいますがご回答お願いします
275Now_loading...774KB:2009/12/21(月) 05:27:41 ID:9rAfs1io
No
276Now_loading...774KB:2009/12/21(月) 06:12:54 ID:vE/k2rrw
function(){
 a_mc._visible = !a_mc._visible;
};
277Now_loading...774KB:2009/12/21(月) 09:26:47 ID:6M2CzB/c
>>275
>>276
さんありがとうございます
おかげさまで出来ました
ありがとうございます
278Now_loading...774KB:2009/12/21(月) 23:49:38 ID:GNI4zyKG
>>263 >>265

for (var i:int=0; i<100; ++i) {
var url:URLRequest = new URLRequest("music/00" + ((i<100)?"0":"") + ((i<10)?"0":"") + i + ".mp3");

:
:
}

とかじゃなく?
279Now_loading...774KB:2009/12/21(月) 23:58:48 ID:9rAfs1io
とかじゃなく
280Now_loading...774KB:2009/12/24(木) 03:32:09 ID:0nVAbJuD
CS3(Windows)、ASは2(のつもり)ですが、↓の例は適当に書いてます。

onLoad = function() {
 for(i = 0; i < 3; i++) {
  this["mc_" + i].onPress = function() { trace(j); }
 }
}

上のようなスクリプトを書いた場合、
「mc_0」〜「mc_2」まで、どれをPressしてもtraceされるのは「2」になると思います。

これを、「mc_0」をPressしたら「0」をtrace、「mc_1」をPressしたら「1」をtrace、
みたいに動作させる場合、どのように書くと良いのかが解らずにいます。

自分の聞きたいことを上手く質問できているかすら自信がないのですが、
何かしらご指摘やアドバイスなどいただけると嬉しいです。
281Now_loading...774KB:2009/12/24(木) 03:48:45 ID:PWAHi95i
>>280
trace(j)って何?
trace(i)の間違いか?

iの値は保持されていないので、以下のようにMCに値を持たせる必要あり
this["mc_" + i]._i=i;
this["mc_" + i].onPress = function() { trace(this._i); }

そうでないなら、以下のような方法もありかと
this["mc_" + i].onPress = function() { trace(this._name.charAt(3)); }
282Now_loading...774KB:2009/12/24(木) 03:57:59 ID:0nVAbJuD
>>281
ご指摘の通り、「j」は「i」のタイプミスです、ごめんなさい。

後者の、名前から引っ張ってくるってのは自分でも想像してたんですけど、
前者は思いついてもいませんでした。
早速試してみたいと思います、レスありがとうございました!
283Now_loading...774KB:2009/12/24(木) 11:42:44 ID:VIoBf33x
Javaからの移植をしています。
static final String a[][] = {{"A","B"},{"12","34","56"}};
をVectorを使った配列に変えたいのですが・・・。
ググってもよく分かりませんでした。
誰か教えていただけないでしょうか?
284Now_loading...774KB:2009/12/24(木) 13:55:28 ID://V7OFZE
static var vec:Vector.<Vector.<String>> =
Vector.<Vector.<String>>([Vector.<String>(["A", "B"]), Vector.<String>(["12", "34", "56"])]);

なんだこれ
285Now_loading...774KB:2009/12/25(金) 01:38:50 ID:tWWEWqzZ
ActionScript3.0 で、URLLoaderでサーバのテキストを読み込むプログラムを作ったのですが、
ファイルのすべてを読み込まれるまで
dataプロパティには読み込んだデータが格納されないようなのです
すべて読み込まれるまでに次の動作が要求されるプログラムを想定しています
Event.COMPLETE以前に読み込んだデータを扱うにはどうしたら良いでしょうか
Socketから自分で書くしかないのかと悩んでいます
どなたかご教示お願いいたします
286Now_loading...774KB:2009/12/25(金) 07:46:25 ID:6BMV9ftg
そら自分で書くしかないわな
287Now_loading...774KB:2009/12/25(金) 07:57:00 ID:unzsy3FG
URLStreamを使えと書いてありました
288285:2009/12/25(金) 11:30:11 ID:tWWEWqzZ
>>286
>>287
URLStreamで実装したところ無事成功しました!
long pollingに必須だったのでとても助かります
ありがとうございます
289Now_loading...774KB:2009/12/25(金) 16:09:19 ID:laWpC8by
Flash含め、PhotoshopとかDWとかCS5はいつ頃発売されるのでしょうかね?
290283:2009/12/25(金) 16:37:51 ID:AzgituD4
>284
ありがとうございます。
ちょっと混乱しそうな記述になりますねw
291Now_loading...774KB:2009/12/26(土) 20:21:07 ID:q4M9kfOU
WinXP-Pro,CS4,AS2.0です。
ダイナミックテキストの表示角度調整はどうしたら良いのでしょうか?

あるMC内にダイナミックテキスト(インスタンス名:txt)を置き、これを
MCのフレームアクションで txt.text="画像データ"; として文字を表示
させました。

しかしこれを http://uproda11.2ch-library.com/216922Jsp/11216922.png
のように90度回転しようと txt._rotation=90; とすると文字自体が
消えてしまいます。

すいません。お願いします。
292Now_loading...774KB:2009/12/26(土) 20:26:00 ID:0NAO9QHF
>>291
手っ取り早いのはフォントを埋め込むことだったような。
293Now_loading...774KB:2009/12/26(土) 22:12:56 ID:mkBhrrqJ
>>291
ダイナミックテキストをビットマップに変換したらいい

方法?
そんなもん自分で調べろ
294291:2009/12/26(土) 22:24:36 ID:q4M9kfOU
>>290
ありがとうございます。

しかし、『_ゴシック』などとすると埋め込みボタンが
無効になります。これでSWF化しても何も出ません。
どうしたら良いでしょうか?

ちなみにPlayer7です。


>>293
Player7なのでBitmapDataオブジェクトは不可です。
295Now_loading...774KB:2009/12/26(土) 23:03:50 ID:0NAO9QHF
>>294
前に_(アンダースコア)がついているフォントはデバイスフォントなので
埋め込みできない。それ以外のフォントにする。
296291&294:2009/12/26(土) 23:09:48 ID:q4M9kfOU
>>295
さんきゅう!
出来ました。
297Now_loading...774KB:2009/12/28(月) 02:55:08 ID:RPfMPOWJ
環境はCS4,AS2.0,Player7,WinXPです。

MC内にlineToで階段状の線を引いていますが、最初の1本目(漢字で言うなら
1画目)の線を透明にしたいのですが出来ません。例えば _| なら最初の水平線
が透明です。

流れは、
moveToで始点に移動 → lineStyleで1本目はアルファを0に → lineTo で線を引く 
です。

記述の順番を入れ替えて lineStyle → moveTo にしても同じでした。
どうすべきでしょうか?
298Now_loading...774KB:2009/12/28(月) 02:59:18 ID:OMpxJMUO
それであってるように思うけど・・
299Now_loading...774KB:2009/12/28(月) 04:45:05 ID:Qpi0OHaZ
>>297
ソースぷりず
300Now_loading...774KB:2009/12/28(月) 08:19:29 ID:ehS+rF8g
AC初、flashdevelopにてHPを制作しております

live_txt.text = (live_urlLoader.data as String);

だと読めるのですが

live_txt.htmlText = (live_urlLoader.data as String);

とすると無理みたいです

外部テキストを.htmlTextへ読み込む場合はどうすればいいのでしょうか
どなたかよろしくお願いします
301Now_loading...774KB:2009/12/28(月) 08:43:27 ID:RtvC7SFD
>>300
ACって何だ。ASの事?さらに as があるから多分AS3だと思うが、
まず live_txt って型は何?何のオブジェクトを指してる?あと
無理みたいとはどういう状態?エラーならその内容、意図しない動きならその動作を書け

あなたが見ている物がはっきりしないと、見当違いな話になってしまうので、
状況を正確に伝えて
302300:2009/12/28(月) 08:49:15 ID:ehS+rF8g
>>301
説明不足すいません、AS3です
ACって何だ・・・orz

live_txt:TextFild
live_urlLoader:URLLoader

.textへ代入するとロードしたテキストがそのまま反映されるのですが
.htmlTextへ単純に代入出来ないものかと思いましたが
コンパイルは通るのですが、反映されずブランク状態です
303300:2009/12/28(月) 08:53:42 ID:ehS+rF8g
>>302
TextFild→TextField
重ね重ねタイプミス申し訳ないです
304Now_loading...774KB:2009/12/28(月) 19:50:06 ID:wZloSjLt
なんで出来ないか分からないから、参考にでも

private var tf:TextField = new TextField();
public function Main():void {
addChild(tf);
var ld:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("tf.txt");
ld.addEventListener(Event.COMPLETE, loadCompleteHandler);
ld.load(req);
}
private function loadCompleteHandler(e:Event):void {
tf.htmlText = e.target.data;
}
305Now_loading...774KB:2009/12/28(月) 20:15:49 ID:RtvC7SFD
>>303 実は表示されてるとかいう落ちは無いよね?
文字の色とか文字サイズとか。その辺は確認した?
CSS埋め込んで「これなら絶対見えるはずのサイズ」とかにしてみた?

>>304 そのサンプルには余計な部分が多すぎでは
306297:2009/12/28(月) 23:24:51 ID:6fC0oWy6
自己解決しました・・・しかし明確な理由は分かりません。

線を引くMCは空のMCだったのですが、これに入れ子で別のMC
を含ませたところ、希望通りの線が描かれました。

なお、新たに入れ子になったMCと線とは何ら記述上の関係はありません。
307Now_loading...774KB:2009/12/28(月) 23:38:37 ID:eYdnkbKC
そんなハズは無いと思うがまぁいいかー
308Now_loading...774KB:2009/12/29(火) 00:12:00 ID:bM3/YZ3b
PHPを使って、SWF内に画像を読み込みたいのですが出来ません。
環境: CS4,AS2.0,WinXP,Player7,PHP5.2.6(Apache2.2)
※Localhostで実行

POSTを使ってPHPでは、
$gazou = "fig01.jpg";

echo '&gazou='.$gazou;

SWFでは
var load_vars:LoadVars = new LoadVars();
load_vars.onLoad = function(success:Boolean) {
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.loadClip(load_vars.gazou,mc);//Stage上のmcにJPGを読み込ませる
// sendAndLoad() で送受信している
}

これだとエラーとして 
URL 'file:///C|/〜/Flashとのリンク/***/fig01.jpg' を開く処理のエラー
が出ます。
一応、引数のsuccess:Booleanはtrueになり、PHP側のファイル名はfig01.jpgは
正しいのですが画像表示されません。どうしたら良いでしょうか?

参考サイト: ttp://hfm-kenchan.com/Lesson/log_qa/D0804272.htm
309308:2009/12/29(火) 00:19:46 ID:bM3/YZ3b
(補足)
POSTを使ってPHPでは、
$gazou = "fig01.jpg";
              ←この空行は無視して下さい
echo '&gazou='.$gazou;
310Now_loading...774KB:2009/12/29(火) 00:27:22 ID:l32PGsmr
SWFファイルの設置された場所からの相対パスになってると思う。
つまりプレビュー中はローカルファイルの参照になるね。
$gazouに絶対パスを入れておくか、SWFファイルをWEBサーバーにアップロードすれば解決すると思う。
311308:2009/12/29(火) 01:20:39 ID:bM3/YZ3b
>>310
てんきゅう〜! 絶対パスを入れてOKでした。
312308:2009/12/29(火) 03:12:45 ID:bM3/YZ3b
すいません、連投になります。

実際にWebで試そうと思い、上のSWFをPHPファイルと共にサーバーの同じ
ディレクトリにUpしました。
すると再び画像が出なくなり困っています。

SWFにはダイナミックテキスト(valueT2)を設けてLoadした値を確認することに
しました。
mcl.loadClip(load_vars.gazou,mc);
valueT2.text = load_vars.gazou;// ここで確認

この場合 valueT2に fig01.jpg が表示され、SWFは load_vars.gazou 自体は
受け取っているようです(しかし表示されません)

どうしたものでしょうか?
313Now_loading...774KB:2009/12/29(火) 06:31:36 ID:l32PGsmr
mclのリスナの、onLoadErrorとonLoadCompleteをチェックしてみて。
314Now_loading...774KB:2009/12/29(火) 18:15:02 ID:3mdZu8Tc
開発環境:win vista,flashdevelop
セッターとゲッターの使用について困っています。
例A.
private var _net:NetworkEngine;//ネットワークエンジン
public function get net():NetworkEngine {
return this._net;
}
例B.
private var net:NetworkEngine;//ネットワークエンジン
public function getNetworkEngine():NetworkEngine {
return this.net;
}

問題1 例Aのようにゲッターを使用しているのですがプライベート変数netという変数のゲッターをnet()と記述しようとしたところ、ゲッター名には既存のメンバ変数名を使用できないような動作をみせました。渋々_netとしてメンバ変数を宣言することにしました。
一般的にはどのようにゲッターとメンバ変数を結びつけるのがよいのでしょうか。_による解決は釈然としませんでした。

問題2 一般的にゲッターやセッターは使うべきなのでしょうか?例Bのようなjava的にget~やset~というメソッドを使ってカプセル化をしたほうがよいような気がしてきました。
315Now_loading...774KB:2009/12/29(火) 18:41:35 ID:NBgB+Ufp
>>314
>問題1
プライベート変数とセットにして作成するその方法が一般的

>問題2
好きにすれば?といsか言いようがない。
変質的なカプセル化マニアならなんでもカプセル化するだろうし、
値のチェックをしたい要素だったらつければいいんじゃない?
316308&312:2009/12/29(火) 21:18:20 ID:dBHLVchk
(サーバーのPHPから画像をSWFにLoad)

>>313さんのアドバイスによりonLoadErrorとonLoadCompleteでチェックしました(下記)

var loadObj:Object = new Object();
loadObj.onLoadComplete = function() {
trace("Load Complete.");
valueT2.text = valueT2.text+"Load Complete.\r";//成功した場合
};

loadObj.onLoadError = function(target_mc:MovieClip, errorMess:String) {
trace("Load Error.");
valueT2.text = valueT2.text+"Load Error: "+errorMess+"\r";//エラー時のメッセージ
};

mcl.addListener(loadObj);//リスナーに追加
mcl.loadClip(load_vars.gazou,mc);

PCのLocalhostでは問題なく画像が見れるのですが、サーバーに上げると
エラーメッセージとして Load Error: URLNotFound になります。

同じディレクトリなのですが・・・ すいません、再度アドバイス願います。
317308&312:2009/12/30(水) 14:23:17 ID:KwsfoZNF
(続報)
色々試した結果、(もしかしたらですが)$gazou = "fig01.jpg"; で fig01.jpg
が単に文字列として扱われているのかも知れません。

というのも、試しにパスを $gazou = "./fig01.jpg"; としたところ、
valueT2.text = load_vars.gazou; では ./fig01.jpg のまま出ました。

header("Content-type: text/plain"); を使っています。しかし、これを
外したところ load_vars.onLoad = function(success:Boolean) の
success:Boolean が Falseになり、全くデータのやりとりが不可になります。

※一方では、URLNotFoundと出ることから、一応ファイルを読みに
行っていると思われます(涙

これってPHPスレで聞いた方が良いのでしょうか?
318Now_loading...774KB:2009/12/30(水) 15:17:22 ID:DDYbmoq6
PHP経験ゼロなのでRubyによるテストだけど

print "Content-type: text/plain\n\n"
print "gazou=./penisrael.jpg"


var lv:LoadVars = new LoadVars();
var mc:MovieClip = this.createEmptyMovieClip("mc", 0 );
lv.onLoad = function(){
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.loadClip( lv.gazou, mc );
};
lv.load( "http://www.hogehoge.hoge/test.cgi" );

で読み込みに成功。ちなみにIE,Chrome,FF,Opera全部OKだった。

System.useCodepage = true;とか、
もし画像が外部ドメインならcrossdomain.xmlとSystem.security.loadPolicyfileとか。
ごめんわからない。お手上げ。
319Now_loading...774KB:2009/12/31(木) 19:12:17 ID:807udlkW
質問させてください。

ある座標(マウスカーソル)の下にあるムービークリップのインスタンス名を取得することは出来るでしょうか?

具体的にはマウスが動くたびにその座標下にあるムービークリップを調べて、そのプロパティをいじりたいのです。

いろいろ調べて、そうゆう命令があるらしいというのはわかったのですが、そのコードが検索にヒットしませんでした。
320Now_loading...774KB:2009/12/31(木) 19:25:33 ID:JSKzFjN9
AS2?3?CS?Flex?
321Now_loading...774KB:2009/12/31(木) 21:45:18 ID:Hn+HzVFV
>>319 考え方としては、各MovieClip側で「自分にマウスカーソルがRollOverしてるか?」を
調べる仕掛けを書いといて、してるならばそれぞれ、例えば親などに通知する、
みたいな仕掛け作ればおk

で、通知された側で処理を分岐する。 忘れたけど、ある座標下になにがあるか、を調べるメソッドなり
関数なりあったかもしれないが、それを調べるには >>320 の情報が必要かもしれない
322319:2010/01/01(金) 02:48:55 ID:JaqbWugl
AS2です。

>>321
仕様がドラッグした状態で複数のムービークリップをまたぐのでロールオーバーは使えないんです。
ドラッグオーバーでもムービークリップをまたいでしまうと上手くいかず。

あとムビクリを何百個も並べるのでムビクリ一つ一つがリアルタイムで判定すると重くなりそうなのです。
323Now_loading...774KB:2010/01/01(金) 03:15:39 ID:uOdg1lhO
>>322
じゃ、MovieClip.hitTest()
324Now_loading...774KB:2010/01/01(金) 10:08:32 ID:eDv0rKlI
あらかじめムービークリップの位置を座標を基にした連想配列で記憶させといて
マウス座標とその配列を比べて、合致している要素があれば
その要素のムービークリップのインスタンス名を取得してプロパティをいじる
でいんじゃね
325Now_loading...774KB:2010/01/01(金) 10:42:32 ID:UdCRaM3w
あけましておめでとうございます

AS3のみでゲームを作ろうとした場合、ムービークリップのようなものを使うならば
これを利用するのが一番なのでしょうか?

FlashでSVG形式のベクターグラフィックを利用する | デベロッパーセンター
http://www.adobe.com/jp/devnet/flash/articles/spark_project_svg.html

326Now_loading...774KB:2010/01/01(金) 15:28:39 ID:EzctGxmr
>>325 一番か、っていうと簡単に答えられない問題。 どう一番か、って話になるから。
つまり、拡大してもピクセルのブロックが見えないとか、ボケないとかっていう観点ではSVGだが、
ドット絵のようなものならむしろ png などの画像を使いたい。

2Dゲームのドットキャラ(例えばマリオや、そういった2Dキャラ)は、大抵 png などの画像で透過処理して
重ね合わせてると思う。 少なくともSVGじゃない。

そんな感じなので 「これさえあればおk!一番!」 なんて答えは存在しない。 用途によりけり
327308&312&316:2010/01/01(金) 21:39:01 ID:LRIAdnKW
>>318
検証有難うございます。

PHPスレに移動して聞いてみます。
328純金配合 ◆GoldHyGo/. :2010/01/01(金) 22:04:21 ID:EzctGxmr
>>327 今読み返してみたけど、要はやりたい事って
2度サーバにアクセスして処理したいって事だよね?

1度目は LoadVars で text/plain な文字列を取得して、
2度目はその文字列をパスに見立てて、jpg を再度取得にいく、って話だよね?

画像はシンプルにサーバにおいてあるの? 間にPHP(というかCGI)かましてる訳では無いんだよね?
だとした場合、まずは切り分けすること。

LoadVars の部分外して、シンプルに MovieClipLoader で Jpegを読めるかって処理を書いて確かめた方がいい。
その方が早い
329308&&312&&316:2010/01/01(金) 22:54:07 ID:LRIAdnKW
>>328
レス有難うございます。
目的と仕様をもっと説明したいのですが、夕方から
頭痛がして上手く書けません。

明日、再度レスします。
330308&312&316:2010/01/02(土) 14:58:36 ID:4x0Zv0Mk
>>328
体調が復活したので再レスします。

【環境】 
・レンタルサーバーの同じディレクトリにSWF,PHP,JPGを置く。
・SWFはPlayer7,JPGサイズは2KB

【やりたいこと】
・SWFのLoadボタンを押してPHPを起動させ、sendAndLoad()でJPGを読み込みたい。
・実際のLoadVars()オブジェクトは load_vars で、PHPは $gazou = "fig01.jpg";
 echo '&gazou='.$gazou; と書いて load_vars.gazou で画像の取得をしたい。
・ただしPHPでは同時に $Data01 = 〜; $Data02 = 〜; の形で数値もSWFに渡している。
 ※つまり、数値と画像の同時取得が現時点での最大目標。
 
【問題点】
・Localhost(PHP5.2.6,Apache2.2)での数値と画像の同時取得はOK。
・サーバーにUpすると数値の取得は大丈夫だが、画像はonLoadErrorでURLNotFound になる。
・しかし、valueT2.text = load_vars.gazou; では valueT2に fig01.jpg が表示され、
 PHP側では画像自体は探しに行っていると思われる。


数値と画像の同時取得が理想なのですが、どうしても駄目なら>>328さんが書いて
いるように、別アクションで取得してみます。
331純金配合 ◆GoldHyGo/. :2010/01/02(土) 15:11:29 ID:373VjVlS
>>330 その説明の文面から、初心者っぽい印象を受けたんだけど、
「同時取得」 と言っても実際には平行する二つの通信アクションになるよ。

ちなみに余談だけど、PHPを起動するのではなくて、SWF(というかクライアント)から見たら、
Webサーバからコンテンツを単に受け取るだけ。 ここが通信になる。
サーバが 静的なHTMLを返そうが、PHPによる動的な何かを返そうが、クライアントから見たら同じこと。
という前置きをした上で、ちょっと内容を切り分けよう。 あなたは何か混乱している。

>PHPは $gazou = "fig01.jpg"; echo '&gazou='.$gazou; と書いて load_vars.gazou で画像の取得をしたい。

これは正確には、文字列の取得であって画像の取得じゃない。
単に echo が標準出力(クライアントへ返す内容)として、文字列を返してるだけ。 それをまず LoadVars で文字列として受け取り、
それを、MovieClipLoader で再度取得(2度目のアクセス) して画像を取得してるんだよね? で、

>ただしPHPでは同時に $Data01 = 〜; $Data02 = 〜; の形で数値もSWFに渡している

この値はどうやって返そうとしてる? or 返した? localhost で成功とあるけど、ちょっと 「画像と数値を同時に」 のくだりはちょっと置いておいて、
そもそも何を SWF で GET してる?

普通に考えると、 例えば サーバから 画像パス文字列とその他数値でも何でもを、「何か自分で決めたフォーマットで文字列として」 返したあと、
それをパース(読み取り)して、そこから次の処理に進む。 それか、2セッション通信を行って、非同期処理を書くとか説明割愛するが色々。

一度Webシステムについて、動作を整理したほうがいい。
332純金配合 ◆GoldHyGo/. :2010/01/02(土) 15:19:48 ID:373VjVlS
一例として、例えば

header("text/plain");
// ここで例えば $data01 を用意したとして… ex. DBから取得、あるいは何らかのファイルから、あるいは $_POST や、$_GET から
echo '&data01=' + $data01 + '&gazou=fig01.jpg';

とだけ書いた php を用意しておく。 url は SWFと同じ高さにあるとして、
LoadVars で、この PHP にアクセス → コンテンツが戻り "&data01=内容&gazou=fig01.jpg" という文字列をSWFが取得する。
これを、例えば分解して、data01=内容 の部分を自分で何かに使い、gazou キー以降の値を再び url に見立てて、
MovieClipLoader 経由で画像そのものを取得する。

みたいな感じ。ベタで言うなら
333純金配合 ◆GoldHyGo/. :2010/01/02(土) 15:21:55 ID:373VjVlS
ゴメン、地味にミス。 最近 php 書いてなかったので素で間違えた
×echo '&data01=' + $data01 + '&gazou=fig01.jpg';
○echo '&data01=' . $data01 . '&gazou=fig01.jpg';
スマソ
334Now_loading...774KB:2010/01/02(土) 17:19:39 ID:8c0fA7AW
あけましておめでとございます。

VCで簡単なアプリくらいは作れる程度の日曜プログラマーなんですが、
この冬休みにFlashを覚えてみようと勉強してます。

現在Flash CS4 と Flash独習ナビってのでFlash製作環境に慣れている所で
これが終わったらAS3の勉強に入りたいのですが、参考書・辞書として
買っといて間違いない!って本とか教えていただけないでしょうか?

本屋で手に取れればいいのですが、田舎なんでamazonくらいしか購入方法がないので…

ちなみに自分は普段使ってるのはC++ですが、
Java、JavaScriptは独習シリーズを一通り読破しているという程度です。

とりあえず逆引きクイックリファレンスかビジュアルリファレンスは買った方がいいかなーと悩み中…
335Now_loading...774KB:2010/01/02(土) 18:55:31 ID:373VjVlS
>>334 それだったらむしろ、
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/index.html?package-summary.html&all-classes.html

↑このサイトだけで十分な気もする
336Now_loading...774KB:2010/01/02(土) 19:20:11 ID:vdpCl/S+
>>334
他の言語との決定的な違いは、フレームの概念かな。
(パラパラ漫画のコマ毎にコードを書くということ)

あと、部品(MCやボタン)毎にコードが書けたりするので、
コードを書く場所の自由度が高い分混乱するかも。


>>逆引きクイックリファレンスかビジュアルリファレンスは買った方がいいかなーと悩み中

2つ共お薦めの本です。でも入門用としては、
「基本からしっかりわかるActionScript 3.0」(森 巧尚 著) 毎日コミュニケーションズ
が超お薦め

他、「ActionScript 3.0 エラーアーカイブス」(加茂雄亮 著)ソシム
はあったら便利。
337334:2010/01/02(土) 19:48:45 ID:8c0fA7AW
>>335
おぉ、これはなんとも馴染み深い形式のリファレンス!
これならビジュアルリファレンスはとりあえず保留してもいいかも。

>>336
「基本からしっかりわかるActionScript 3.0」はノーチェックでしたが、
ググったら出版社のサイトで少し中が見れました。

最初はちょっと変数の概念とかプログラム未経験者向きかなーと思いましたが
後半はゲームの作り方とかあって良さそうですね。

最終目標はFlashアニメよりもFlashゲーム作りたいので買ってみようと思います。
あと「エラーアーカイブス」もまったくノーチェックでしたが評判いいですね。
まだそんなにAS打ってないのでUIとか判らないですが、
さすがにVSみたいなデバッガーはないでしょうからコウいう本が重宝しそうですね。

----

お二方ともありがとうございます。
338Now_loading...774KB:2010/01/05(火) 04:22:43 ID:glPOaHHp
ActionScriptを始めようと思うのですが、構造がいまいち理解出来ません。

例えば、部屋があるとして部屋全体にActionScriptをするのですか?
それとも、椅子、机、1つの部品事にActionScriptの指示を出すのですか?
339Now_loading...774KB:2010/01/05(火) 04:53:01 ID:LEc07raQ
ちょっと意味がわかりかねるが、両方すると思うぞ
340Now_loading...774KB:2010/01/05(火) 11:11:10 ID:OHeFFGGU
AS2.0は後者(前者も出来るけど)
AS3.0は前者
341Now_loading...774KB:2010/01/05(火) 11:33:31 ID:pR3/3uBd
>>340
AS3.0は前者っておかしくない?
Spriteなどオブジェクトを生成した場合は、
1箇所に記述が集まりやすいけど
それでも各オブジェクト(インスタンス)用にクラスを作成するのがベターだから
AS3でも後者だと思うんだが
342Now_loading...774KB:2010/01/05(火) 11:55:48 ID:glPOaHHp
なるほど、つまり
ドラクエに例えるならば、
AS3がドラクエ3でAS2がドラクエ2

実はロトシリーズの一番古いのはドラクエ3
343Now_loading...774KB:2010/01/05(火) 12:39:31 ID:dpG24nuV
as3の世界で微分積分を使うときってどんなときでしょう??
344純金配合 ◆GoldHyGo/. :2010/01/05(火) 12:53:57 ID:t2Y6VSj5
>>343 言語や環境はただの道具で、微分も積分も一つの手段でしかないので
「そんなものは必要な時に使う」 が正解

>>338 質問から見て、FlashにおけるASの立ち位置がわからないって話なら、それは
部屋全体〜それぞれの部品ごと、それらの影にASが(2でも3でも)いて、好きに制御するって感じ。

絵や音や動画を 「素材」 (資源=リソース) と捉えたとき、それに指示を出したり動かしたり、
また作ったりする 「人」 (または頭、または人足、または指示書、または設計書) がASって感じ。

実際の配置場所については、例えばフレームの中 (紙ペラに書かれたスケジュールで言えば、区切られた時間や日付の1コマ) に、
「ここではこうしとく」 みたいに記述したり、あるいは 椅子や机などの素材に、シールで書いて貼ったり、
または全然別の所、まったく素材と関係ない場所に 「素材Aを動かし、動いた結果を記録」 みたいな紙を置いておいて、
実際に作業する人(=ASのエンジン) に指示したりする。

…抽象的で曖昧な質問へガチレスしようとすると、どうしてもこっちが長文になってしまう罠
345Now_loading...774KB:2010/01/05(火) 13:08:06 ID:glPOaHHp
>>344
無茶苦茶わかりやすい説明です。
なるほど、つまり複雑なFLASHゲームでも一つ一つのパーツ単体と考えたらわかりやすいということですか。

何から始めたら良いのか全くわかりませんでしたが見えてきました。
346純金配合 ◆GoldHyGo/. :2010/01/05(火) 13:29:31 ID:t2Y6VSj5
>>345 ちょっと専門用語的な言い回しすると、例えば
「オブジェクト指向 (略称OO。〜プログラミングと言った場合には OOP)」 という考え方がある。
詳しくはググった方がいいけど、別にその概要そのものは必須じゃないのでググんなくてもいい。

概念としては、それ。 「この物体に、意味付けをする=これはこんな内容のブツで、こんな動きをし、こんなパラメタを持ってる」 のように
定義して、中身を実際に記述し、それらが泡のように集まって全体の形を成すってところ。

複雑なFlashゲームであろうと、何かのアプリケーションであろうと、
例えばボタン1つにしたって全部 "姿" と "動作" と "意味" を持っている。そういうのの積み重ねで、全体を成す感じ。

ということは、何から始めたらいいかと言えば… まったく入門者なら適当なサンプル相手にコピペでもして
「へぇ、こんな風に動くんだ」 と体験してから、しばらくして慣れたら今度は
「俺はポーカーを作りたい。では、ポーカーってどんな 『動きの集まりだ?』 」 と分解して、それらを1個1個書いていく感じ。

書く内容には、「絵の表示」 や 「ボタンの動作」 「マウスの動き」 「カードの管理」 「カードの相関の、管理」 「役の判定」 「その結果の保持」 など、
鍵カッコの数よりももっと多くのものが必要になったりする。  話長いのでここまで。 こんな感じ
347Now_loading...774KB:2010/01/05(火) 14:03:28 ID:Qt2nG+mt
A.swfからB.swfを真ん中に読み込んで表示させています。
(B.swfは高さ/幅はA.swfのサイズの半分です)

B.swfの中のActionScriptで、座標をstage.mouseXとかで取得しているのですが
A.swfの座標として読み込んでしまい、動きがおかしくなります。

もちろん、B.swf単体で動かした場合は正しく座標判定できるのですが・・・
どうすればよろしいでしょうか
348純金配合 ◆GoldHyGo/. :2010/01/05(火) 14:29:32 ID:t2Y6VSj5
>>347 おかしくなると言うより、それ正常な動作。
stage は土台のステージであって唯一のオブジェクト。 図示するとこんな感じ
┌───
│stage
│┌───
││A
││┌───
│││B

でたまたま、「土台になっている A.swf が、stage と同じサイズになってるだけ」 と捉えるべきなので、
この辺理解していないと、このAとBを入れ替えてもまた同じようにおかしくなった、ように見えてしまう。

どうしたらいいかといえば、図を見たまんま、
単純に stageから見た B.swf の位置をオフセットとして引けばおk

349純金配合 ◆GoldHyGo/. :2010/01/05(火) 14:32:11 ID:t2Y6VSj5
>土台になっている A.swf が、stage と同じサイズになってるだけ
サイズっていうより、位置か。 スマソ
350Now_loading...774KB:2010/01/05(火) 15:39:39 ID:Qt2nG+mt
>349
stageは唯一ってところがポイントですね。
できればB.swfの内容は昔に作ったやつだから弄りたくないんですが・・・

ありがとうございました



351Now_loading...774KB:2010/01/05(火) 22:19:45 ID:AS2WinoL
以下のサイトですが、大きな画像をディスプレイで表示してる領域のみ、綺麗に表示するようにしています。
荒い画像は小さい画像を引き伸ばしているのでしょうか?
仕様の考え方のヒントになるほうほうがあればアドバイスください。
http://www.bio-bak.nl/
352Now_loading...774KB:2010/01/05(火) 22:30:52 ID:vv5tnIMy
>>351
すげーグロ動画。
はきそうになった。
手が動くって気持ち悪い。
お前がつくったのか?
もっとましなサイト作れよ。
後、作ってないにしても例をべつにして。
なにもこのサイトにしなくてはいけない理由はないでしょう?
353Now_loading...774KB:2010/01/05(火) 23:41:39 ID:VMLBZF7U
winのCS4にて
flash flvplaybackを使用しFLVプレイヤーを作成しました。
このプレイヤーは自動再生をさせずに、
再生ボタンを押すと開始されるようにしました。
この時1フレーム目の画像ではなく、好きな画像を入れて
待ち受け画像としたいのです。

Action Scriptの知識も低く、色々調べているのですが発見できず
済みません、教えて下さい!
354Now_loading...774KB:2010/01/06(水) 06:49:01 ID:Q6mOXYV5
質問
AS2 CS3 XP環境です。
ボタンにgetURLを使ってページ移動するときに変数を持っていき
移動したページでその変数を使ってフレーム移動したいのですが
ASが解りません。
回答よろしくお願いします。
後その場合swfは埋め込まないといけないのでしょう?
よろしくお願いします
355純金配合 ◆GoldHyGo/. :2010/01/06(水) 08:37:22 ID:/HlhjVwQ
>>353
FlashDevelopユーザなのでCS持っていないからアレだけど、
もしもそのプレイヤーが自分の動画を再生する、ってだけなら、単純に別途動画編集ソフトでコマ切り出して
それを通常の静止画ファイル表示するのと同じ方法で表示させてやればおk
FLVプレイヤー側を非表示にして、画像を表示。 再生ボタンが押されたら、それぞれ表示状態を逆にする

あるいはもしもやろうとしている事が、Youtubeやニコニコ動画のアップロード時に任意のフレームを選んで
サムネイル化する、みたいな事と同じような事をしようとしている場合、SWFだけでは無理。
フレーム位置をサーバに送って、サーバ側で保存するようなCGIを書くか、フレーム位置の画像を(もしも取り出せるなら)
取り出して送信して記録するようなCGIを書かないとダメ。 というか、「待ちうけ画像」 って言葉が気になるが、
どっちにしても動画中の1フレームを画像化したい、って話ならCGIで動的にやるか、手動で切り出して貼りこむ必要がある
それか、seek してそのコマだけ表示しとくか
356純金配合 ◆GoldHyGo/. :2010/01/06(水) 08:38:08 ID:/HlhjVwQ
>>354 getURLする時に、"http://hoge/huga.html?任意の名前=値" のようにして投げ、
受け取った側でJavaScriptでそれを切り出せばおk。 javascript get query 辺りでググってくれ。
それか、php など使用してるなら、サーバ側で $_GET で取り出せばおk。
特に使用してないなら JavaScript で
357Now_loading...774KB:2010/01/06(水) 15:45:26 ID:8Sy7YwZb
やっほーい! 「Nexus One」に Flash Player 10.1 が搭載されている模様
ttp://www.youtube.com/watch?v=vlWOocHwcLo
358Now_loading...774KB:2010/01/06(水) 16:12:08 ID:uPG7dhO6
同じHTML上にある2つのswf間で通信を行う際LocalConnectionを使ってるのですが
IE8だと正常に動くのですが、safari、Forfoxでは動作してくれません。
(動きが止まるので、内部的に何かエラーが出ている気がします)

どのような原因が考えられますでしょうか
359Now_loading...774KB:2010/01/06(水) 16:28:58 ID:t17DAatt
見当違いかもしれんが、俺がよくLCの動作確認でやらかすのは、2つSWF実行してるだけのつもりが
ブラウザのタブで同じLC使ったSWF動かしっぱなしでそっちのタブのSWFと通信しちゃってるって
パターンw
360Now_loading...774KB:2010/01/06(水) 16:52:18 ID:uPG7dhO6
>>359
ビンゴ!
IE開いたまま他のブラウザ同時に開いてテストしてかからでした。
危うくブラウザ毎に違う条件分岐コードとか作るところでした。

ありがとうございまーす!!!!!
361Now_loading...774KB:2010/01/07(木) 08:47:24 ID:ajfJrzOg
Actionscriptじゃないと思うんだけど、
cssとかを使い swf と swfが被った時の表示順番(上下)の設定の
させ方を知っている人はいらっしゃれば教えて頂きたいのですが

最近、livedoorやニコニコ動画で、swfをHTMLの上に被せて表示させたりとかあるのですが
同じ事をしようとしたら、ブログ内の別のswfが更に上に表示されてしまい困ってます。
362Now_loading...774KB:2010/01/08(金) 00:31:59 ID:F1IdUda1
キー入力で困っています。
大体以下のようなコードなのですがENTERキーのみ、イベントが発生しません。
上下キー、アルファベット、スペースキーは問題なく動作します。
ただ、AdobeFlashCS4で「ムービープレビューする」でこの症状が発生します。
デバッグモードだと正常にENTERキーが反応します。
初めてのASなので何か根本的な間違いをしていると思うのですが
原因を教えてください。

stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownEve);
function keyDownEve(event){
trace(event.keyCode);
}
363Now_loading...774KB:2010/01/08(金) 03:03:53 ID:HVIvPf1E
>>362
メニューで、キーボードショートカットを無効にする
とかなんとかの項目にチェック
364Now_loading...774KB:2010/01/08(金) 10:26:21 ID:F5g4vQH8
ActionScriptからJavascriptを発行して、swfのサイズを動的に変えたいのですが、
IEでは上手く動作するのですが、firefox、safari、chromeなどのIE以外のブラウザでは
動きません。

以下が該当部分のASコードです。
---------------------------------------
var js:String = <![CDATA[function() { document.getElementById("externalSwf").height = 50; }]]>;
ExternalInterface.call(js);
----------------------------------------

HTML側は、AC_FL_RunContentとobjectタグによる配置を行っています。
原因が分からず2〜3日悩んでおります・・・
365Now_loading...774KB:2010/01/08(金) 13:02:06 ID:eAdzZgl+
366Now_loading...774KB:2010/01/08(金) 14:50:36 ID:2EF156Dx
てす
367Now_loading...774KB:2010/01/08(金) 14:53:58 ID:2EF156Dx
>>364
ブラウザ間で違う結果が出る場合は、必ずHTMLかjavascriptに原因がある。

フラッシュの張り付けは標準のjs使うより、swfObjectを使った方がいいよ。
368Now_loading...774KB:2010/01/08(金) 18:26:52 ID:F5g4vQH8
>>365
仰る通り、
document.getElementById("hoge")のところを
window["hoge"]にしたらoperaは行けました!

firefox、safari、chromeはダメでしたが原因がJavascriptであることが
分かったので大きな前進です!ありがとうございました。

>>367
swfobjectコードすっきりするんですね!
知りませんでした。検討してみます。
369Now_loading...774KB:2010/01/09(土) 09:54:19 ID:HQs8wNlb
wonderflって勉強になっていいね。遅ればせながら昨日知ったよ
370Now_loading...774KB:2010/01/09(土) 23:03:24 ID:UNPRZ6p/
>>369
本もでてる。
371Now_loading...774KB:2010/01/10(日) 17:45:02 ID:uD5n8VAg
Vectorを使用したStringの定数値の3次元配列の記述の仕方を教えてくれませんか?
色々試したのですが分かりません。
const t:Vector.<Vector.<Vector.<String>>> = Vector.<Vector.<Vector.<String>>>([
([
Vector.<String>(["A","A","A","A"]),
Vector.<String>(["B","A","A"]),
]),([
Vector.<String>(["C","A","A"]),
Vector.<String>(["D","A","A"]),
Vector.<String>(["W","A","A"]),
])
]);
372Now_loading...774KB:2010/01/10(日) 22:55:35 ID:sBkvM3Hr
var t:Vector.<Vector.<Vector.<String>>> = Vector.<Vector.<Vector.<String>>>([
Vector.<Vector.<String>>([
Vector.<String>(["a", "b", "c"]),
Vector.<String>(["d", "e", "f"])
]),
Vector.<Vector.<String>>([
Vector.<String>(["g", "h", "i"]),
Vector.<String>(["j", "k", "l"])
])
]);
373Now_loading...774KB:2010/01/10(日) 23:40:31 ID:dX6tKVry
AS3
変数を使ってクロージャへアクセスするにはどうすればよいですか?

public function main():void {
for( var i:uint= 0; i < 2; i++ ) {
//test0,test1.test2へアクセスしたい
}

function test0():void {
trace(test0);
}
function test1():void {
trace(test1);
}
function test2():void {
trace(test2);
}
}
374Now_loading...774KB:2010/01/11(月) 01:27:11 ID:o8OeMxrn
変数と関数の名前が重複してないか?
375Now_loading...774KB:2010/01/11(月) 02:27:58 ID:UGcG4TDb
>>373
こういうことかいな?
this["test0"] = function():void{};
this["test0"]();
376373:2010/01/11(月) 11:36:25 ID:yRaNLWgM
質問の仕方が良くなかったです。メンバ関数なら
this["test" + i]();
でアクセスするところ
public function main():void {
 for( var i:uint= 0; i < 2; i++ ) {
   this["test" + i]();
 }
}
public function test0():void {
 //
}

関数クロージャの場合どのようにすればできますか?
public function main():void {
 for( var i:uint= 0; i < 2; i++ ) {
   //this["test" + i]();
 }
 function test0():void { }
 function test1():void { }
 function test2():void { }
}
377Now_loading...774KB:2010/01/12(火) 03:07:00 ID:Fkv2pgLn
wiiマリオみたいな横スクロールのゲームは、
背景の絵をどういう風にメモリを食わないように処理してるんでしょう
378Now_loading...774KB:2010/01/12(火) 14:31:42 ID:MxLHXBYt
ActionScript3, Adobe Flex Builderで開発しているのですが
webページ上に埋め込まれたFlashが
ウインドウを閉じたり 別のページに飛ぶ リロード
など、閉じられる動作を検出する方法はありますか
379Now_loading...774KB:2010/01/12(火) 14:37:37 ID:MxLHXBYt
ActionScript3.0(Flex上)での質問です
swfファイルをwebページ上に載せているとして
そのページが閉じられた時にイベントを検出することはできますか
380Now_loading...774KB:2010/01/12(火) 17:03:09 ID:Rs8Prt5v
ASで出来るか知らないけど、JSからonUnloadで行けたりしないかな
381Now_loading...774KB:2010/01/13(水) 04:05:08 ID:NCjKEBxD
モリサワフォントパークみたいに、
ベクターで、文字一つ一つを自由にあつかいたいのですが、
どうするのがベストでしょうか
一文字一文字それぞれ文字の輪郭をギザギザに揺らしたりするためです。
文字をデータ(ベクターの塗りのイラスト)として扱う、いい方法はありますか
382Now_loading...774KB:2010/01/13(水) 20:39:41 ID:gdYNLZEc
これはASだけではなく、
映像系のプログラムも使っている。
また、文字を自由に動かすのはAS3.0でひとつずつ
ムービークリップに変換して動かせばいいのではいいのではないでしょうか?
ただモリサワフォントパークみたいにはいかないと思います
383Now_loading...774KB:2010/01/14(木) 16:07:26 ID:mB7y06g1
質問させてください!AS3です。

A.swfからB.swfを読み込んで表示させています。
B.swfは、ロードが完了した時点から自動的に再生が始まるのですが、
これを任意のタイミングで再生を開始させたいのです。
(例えばロード後、A.swfにあるボタンを押したらB.swfが再生されるようにしたい)

ちなみにB.swfの内容は弄れないので、A.swfから制御したいです
このような事は可能でしょうか??
384Now_loading...774KB:2010/01/14(木) 17:57:40 ID:g5qSnKd1
>>383
これが参考になるかも

■親 SWF ファイルから読み込んだ子 SWF ファイルにアクセスする
ttp://hakuhin.hp.infoseek.co.jp/main/as3/loader.html#LOADER_01
385Now_loading...774KB:2010/01/16(土) 16:25:21 ID:Gefh0SEO
ご質問です。

環境はFLASH8/ActionScript2で、
FuseKitでアクションを付けております。

今回、外部読み込みJPGにFuseKitでアクションを
付けたいと思っておりますが、
JPG読み込みは表示されても、
FuseKitのアクションが作動しません。

FuseKitは外部読み込みMCには対応していないのでしょうか?

読み込みJPGは"image01.jpg"
JPGを読み込んでいるMCは"Image01"です。

1フレーム目ActionScript
----------
import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup(Shortcuts,PennerEasing);

loadMovie("image01.jpg", "Image01");

Image01._alpha = 0;
Image01.alphaTo(100,5,'',0);
----------

外部読み込みではないMCに対しては、
上記記述で問題なく動きます。

お手数ですが、ご存じの方教えてください。
386Now_loading...774KB:2010/01/16(土) 22:02:13 ID:fWkhnSr/
>>385
FuseKitのことは全然知らないが、外部ファイルのロードは
事前の処理をクリアしちゃうから、とりあえず
最初にMovieClipLoaderで外部画像ロードして、
その完了後処理onLoadInitあたりで、アクションを適用させれば
いいんじゃないの?

いずれにせよ、MCのメソッドでもないloadMovieはAS2.0でも
あまり推奨されないだろうし、使いにくいから、まずはそれを
使わないとこから始めるといいと思う。
387Now_loading...774KB:2010/01/16(土) 22:40:10 ID:ZrPBPSvc
RTMFPのわかりやすいサンプルコードが載ったページはどこかにないでしょうか
388Now_loading...774KB:2010/01/17(日) 00:38:38 ID:CjXG0r9K
actionscriptでxmlファイルを開いたのですが、
要素や属性ごとに変数に格納したいです。参考になるコードはないでしょうか?
389Now_loading...774KB:2010/01/17(日) 01:42:46 ID:KxuWs1YC
390Now_loading...774KB:2010/01/17(日) 02:31:54 ID:aokWysrJ
エディタのTextMateのAS3Projectで、
プロジェクトを最初につくって生成されたas以外のasファイルを
メインのファイルとしてコンパイルする方法がわかりません。
FlashDevelopのalways compileの対象ファイルが変えられるみたいに、
対象ファイルを変えたいのですが、どうすればいいでしょうか?
391Now_loading...774KB:2010/01/17(日) 02:39:26 ID:F9cEc5rf
外部のURLにアクセスするときに、クッキー(Flashのではない)を使いたいのですが
サンプルコードはないでしょうか?
392Now_loading...774KB:2010/01/17(日) 03:28:26 ID:aokWysrJ
>>390
解決しました、.tmprojの書き換えでうまくいきました。
じゃ、build.xmlって何に使ってるんだろう・・・
変えても変えなくても影響しなかった・・・
393Now_loading...774KB:2010/01/17(日) 04:12:33 ID:WnpkEZ5R
以下のようにできるだけ短いコードで画像を表示しようとしています。
画像を表示することは普通に成功しましたが、
widthとheightを指定すると、なぜか画像が表示されなくなります。
どうすれば解決できるでしょうか?

394Now_loading...774KB:2010/01/17(日) 04:13:40 ID:WnpkEZ5R
package {
 import flash.display.Sprite;
 import flash.display.Loader;
 import flash.net.URLRequest;
 
 public class Main extends Sprite {
  private var imgLoader:Loader = new Loader();
  
  function Main():void {
   var url:String = "img.jpg";
   loadContent(url);
   addChild(imgLoader);
   
   imgLoader.x = 10;
   imgLoader.y = 10;
   imgLoader.width = 325; //元の画像の1/2の大きさ、これを書くとなぜか表示されなくなる
   imgLoader.width = 455; //上に同じ
  }
  
  private function loadContent(url:String):void {
   var req:URLRequest = new URLRequest(url);
   imgLoader.load(req);
  }
 }
}



395Now_loading...774KB:2010/01/17(日) 04:32:53 ID:WnpkEZ5R
widthとheightを書き間違いました。
 「imgLoader.width = 455; //上に同じ」
 ↓
 「imgLoader.height = 455; //上に同じ」
 
重ねて、お願いします。
396Now_loading...774KB:2010/01/17(日) 06:12:53 ID:5xc50m+C
>>393
読み込み完了後にやればいけると思う
imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event):void
{
  imgLoader.width = 455;
}
397Now_loading...774KB:2010/01/17(日) 10:10:08 ID:WnpkEZ5R
>>369
なるほど!
できました。ありがとうございます。

透明度なども同じように変更しなければならないようですね。
398Now_loading...774KB:2010/01/17(日) 10:39:43 ID:W7W0K8DU
actionscript2.0、FlashCS3を使用しています。

number1 = 1;
number2 = 2;
number3 = 3;
number4 = 4;
number5 = 5;



number100 = 100;

↑上記を短く、簡潔にまとめるにはどのような方法を使えば良いでしょうか?
399Now_loading...774KB:2010/01/17(日) 11:41:28 ID:U92sgerV
>>398
そこまでいくと配列使ったほうが楽なんじゃない?

//配列100要素に値を代入
var number:Array = new Array();
for(var i:int = 1;i<101;i++)number[i]=i;

//アクセスするときには number[番号] の形式でアクセス
trace(number[1]); //1
trace(number[50]); //50
400Now_loading...774KB:2010/01/17(日) 13:06:14 ID:5DPpePE4
AS3で、ブラーやグラデーションでマスクするのはどうやったらいいのでしょうか?
AS2の方法は見つかるんですが・・・
401Now_loading...774KB:2010/01/17(日) 13:52:03 ID:JrwBKrae
var xml:XML=
<response status="fail">
<error>
<code>1</code>
<description>Error 12</description>
</error>
</nicovideo_user_response>

これからstatusのfailはどう指定すれば取り出せるでしょうか?
trace(xml.response.status)で取れるかと思ったのですが無理でした。
また、descriptionの取り方も教えていただけるとありがたいです。
402Now_loading...774KB:2010/01/17(日) 14:14:50 ID:CexZ2xaC
>>401
xml.@status、xml.error.descriptionで取れるかと
それ以前にそのXML、構文エラーのような
403Now_loading...774KB:2010/01/17(日) 14:19:36 ID:U92sgerV
>>400
たしかビットマップキャッシュオンにしないと駄目だった気がする。マスク先がmc、マスク用がmaskMCだとしたら、
mc.cacheAsBitmap = maskMC.cacheAsBitmap = true;
してから
mc.mask = maskMC;

>>401
ルートノードの要素なんだから@つければいけんじゃね?
trace(xml.@status, xml.error.description);
404401:2010/01/17(日) 14:30:52 ID:JrwBKrae
ありがとございます。
attribute('status')でとれたようなのでそちらでやりました。
お手数おかけしました。。
405401:2010/01/17(日) 14:54:24 ID:JrwBKrae
何回も申し訳ないのですが、

var xml:XML=
<id>12345</id>
<id>23456</id>
<id>873677</id>


<id>873634</id>

これを
var id:Arryのような配列に入れるにはどうしたらよいでしょうか?
406Now_loading...774KB:2010/01/17(日) 16:50:35 ID:GFtq1YVi
質問失礼します。
ファイルをバイナリでpost送信したいんですけど、どうしたら良いんでしょうか?
分かる方、お願いします。
407406:2010/01/17(日) 16:55:54 ID:GFtq1YVi
すいません。条件を一つ忘れてました。
通信が途中で切れてしまった事も考えて、ファイルサイズも同時に送りたいです。
受け取り側で、
int iSize = $_POST["FILE_SIZE"];
byte[] bBuffer = $_POST["FILE_BUFFER"];
という風に受け取れたら最高なんですが。。。
よろしくお願いします。
408Now_loading...774KB:2010/01/17(日) 17:26:16 ID:5DPpePE4
>>403
グラデーションは無理みたいですけど、ブラーはできました
ありがとうございました
409Now_loading...774KB:2010/01/17(日) 17:38:59 ID:4bw90Uc9
>>405 あなたはもう、XMLのDOM(=ドキュメントオブジェクトモデル)についてググれ。
XMLDOMはASだのFlashだの以前に、別の団体が管理している標準の考え方だ。
ASにもそれに(一応)順じたアクセス機構が備わっている。

それか、具体的にはAdobeのリファレンスから、XML や、XMLNode かなんかを探せ
単純に ルートノード取り出したらあとはループ回して順に拾うだけだ。

また、ノードの中のテキスト(XMLでは CDATAと言う)は、それ自体1つのノードなので
nodeType を必ず判別して取得する必要があるから、その点だけ注意。
で、これの階層がもっと深くなりそうな場合には、再帰処理を書いて取り出したりするが、

もうそこら辺になってきて、もしも理解出来ないとしたら、やりたい事とやれる事の差が大きすぎるので、
勉強しなければならない。 まずは、Adobe のリファレンスから、XMLNode あたりを追え
410Now_loading...774KB:2010/01/17(日) 20:44:29 ID:gWHR8JU4
var str:String = "<thread thread=\"" + thr + "\" \"version\"=\"1\" \"res_from\"=\"-1\"/>";
こうゆう文字列はダメなのでしょうか。
エラーに「属性threadには開始引用符が必要です。」とあるのですが、
開始引用符は最初の"のことではないのでしょうか。
411Now_loading...774KB:2010/01/17(日) 21:00:19 ID:JQkgaK3C
ActionScriptの修行をするのに、入門者向きの良いサイトありませんか?
412Now_loading...774KB:2010/01/17(日) 21:54:51 ID:4bw90Uc9
>>410 それ、trace してみたかい? 文字列の内容的にこうなると思うんだが…

 <thread thread="thrの中身" "version"="1" "res_from"="-1"/>

多分やりたいのは、こうじゃないのか?

 <thread thread="thrの中身" version="1" res_from="-1"/>


だとするなら、正しくはこうだと思うのだがどうだろう
 var str:String = "<thread thread=\"" + thr + "\" version=\"1\" res_from=\"-1\"/>";

コピペしないで、何が違うか良く把握する事。
413Now_loading...774KB:2010/01/17(日) 22:05:28 ID:gWHR8JU4
>>412
var th1:String="<thread thread=\"" + thr + "\" version=\"1\" res_from=\"-1\"/>";
正しくはこうでした。すいません。
「属性threadには開始引用符が必要です。」となるのですが、どこがいけないのでしょうか
414Now_loading...774KB:2010/01/18(月) 00:03:32 ID:yVAOi9NC
自分で考えること知らん奴に何言っても無駄
415Now_loading...774KB:2010/01/18(月) 01:22:18 ID:4vovysUY
と言っても無駄
416Now_loading...774KB:2010/01/18(月) 03:10:37 ID:0ezs24Cz
Actionscriptのバージョンは2.0になります。
フォームに文字を一通り入力して、ボタンを押すと、
デスクトップにtxtファイルが生成されるFlashを作りたいと考えています。
txtファイルを生成するにはどのような記述を行えば良いでしょうか?

父と母、そして祖母は3人とも「すいふ(swfのことらしい?)形式のファイル単体では無理」
と言っていたのですが、本当に制作不可能なのでしょうか…?
417Now_loading...774KB:2010/01/18(月) 04:22:22 ID:4vovysUY
本当に制作不可能です
418Now_loading...774KB:2010/01/18(月) 06:31:38 ID:3wH2flIU
そのswf危険すぎるだろぉ常識的に考えろよすずむしぃ
419Now_loading...774KB:2010/01/18(月) 09:56:38 ID:sR/OvB70
ヤフー使いずれー
他の鯖だとうまく動くのに
アフォーは動かん

どうにかしろ
420Now_loading...774KB:2010/01/18(月) 10:29:18 ID:wexVvBNp
配列
var list:Array = [みかん,りんご,りんご,みかん,りんご];

があります。
(1)「みかん」という単語はそれぞれ先頭から1、4番目に存在しています。
(2)「りんご」という単語はそれぞれ先頭から2、3、5番目に存在しています。
(3)「みかん」ボタンをクリックすると1、4という配列が作られ、
 「りんご」ボタンをクリックすると2、3、5という配列が作られる…
 というものを作りたいのですが、どのような記述を行えば良いでしょうか?
421Now_loading...774KB:2010/01/18(月) 11:31:42 ID:sGxRF9pQ
>>420
>1、4という配列が作られ
これは配列を作りたい訳じゃなくて、配列の中の要素に書き込みたいって話でおkだよね?

やりようは内容次第で色々あるが、もしも要素が5つであれば、初めから要素5の配列を1つ作り、
各ボタンでそれぞれ書き込んであげればいい。

//AS3の例
var list:Array = new Array(5); が宣言/定義されてるとして、

(みかんボタンオブジェクト).addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
 list[0] = "みかん";
 list[3] = "みかん";
});
(りんごボタンオブジェクト).addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
 list[1] = "りんご";
 list[2] = "りんご";
 list[4] = "りんご";
});

※注意: 実際には環境次第内容次第なので、このままコピペしても絶対に動きません
422Now_loading...774KB:2010/01/18(月) 12:42:48 ID:uM6bgALF
たぶん配列内を検索して該当する要素のインデックス番号をまとめて取り出したいんだろ。
つかXMLと配列絡み答えるのやめようぜ。同じ奴がうぜー。
普通はXMLListのまま扱えばいいだけだから自分で勉強してくれ。
423Now_loading...774KB:2010/01/18(月) 12:48:05 ID:sxgOTMht
actionscript3です。
var myXMLSocket:XMLSocket = new XMLSocket();
みたいな感じのXMLSocketでonDataとonConnectを使いたいのですが、「未定義である可能性の高いプロパティ」
となってしまいます。
どのようにして使うべきですか?
424Now_loading...774KB:2010/01/18(月) 16:32:18 ID:z5tYNe1Q
AS3.0で制作しています。
現在、svgファイルの読み込み→flash上で加工→svgファイルで書き出し
といったプログラムを目標としています。

しかし、svgファイルの読み込みで加工(縦横比変更とか)したあと
そのデータをsvgファイルで書き出す方法が分かりません。

svgがxmlデータというのは理解しているのですが、
私の知識ではデータをいじることができません。
どなたか、助けていただけないでしょうか?
425Now_loading...774KB:2010/01/18(月) 17:48:51 ID:uM6bgALF
>>423
AS3.0ならaddEventListenerでdataイベントとかconnectイベント拾うんじゃないかな
426Now_loading...774KB:2010/01/18(月) 17:49:57 ID:uM6bgALF
>>424
ASでのXMLの扱い方と、ローカル保存の仕方は
http://livedocs.adobe.com/flash/9.0_jp/main/00000125.html
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/index.html
↑でXMLとFileReference調べると乗ってるよ

XML何?とかは自分で調べて
427Now_loading...774KB:2010/01/18(月) 18:03:03 ID:baIQISbC
>>425
ありがとうございます。

if(!myXMLSocket.connect(addr.port)){
trace("failed.");
}
でfailedが返ってくるってことは接続できていないってことだと思うのですが、
原因はこちらにあるのでしょうか?
428Now_loading...774KB:2010/01/18(月) 18:03:46 ID:baIQISbC
>>427
addr,portでした。すいません
429Now_loading...774KB:2010/01/18(月) 18:42:14 ID:z5tYNe1Q
>>426
一応、xmlの扱いについては理解しているつもりなんですが、
xmlによるsvgの記述があまり理解できていません。

読み込みに関しては、frocessingライブラリ何かを利用して何とか
出来来ました。
(参考んにした↓サイトです
http://www.adobe.com/jp/devnet/flash/articles/spark_project_svg.html)

しかし、読み込んだデータをGraphicsにした後に
そのGraphicsをまたSVG形式に直し保存する方法を探しています。

何か良い手段はないでしょうか?

430429:2010/01/18(月) 18:45:20 ID:z5tYNe1Q
すいません。
URLの改行をしそこねました。
正しいURLは↓です。
http://www.adobe.com/jp/devnet/flash/articles/spark_project_svg.html
431Now_loading...774KB:2010/01/18(月) 20:50:47 ID:4Cr8aguf
>>429 いや理解出来ていない。
というか、いま自分が何をしようとしてるかわかってるかい?

svg は、ただベクタ情報を xml 形式で格納しただけだ。
つまりただの文字列だ。

例えばこんな感じの、ただの文字列だ。

<xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg">
 <circle fill="blue" cx="15" cy="30" r="20"/>
</svg>

そして、

>そのGraphicsをまたSVG形式に直し保存する方法を探しています。

ビットマップになった物をまたベクタ形式に逆変換するって?それを Flashで?

…svg形式は単に Embed すれば Shapeとして表示出来るのに、それすら
他人のソースライブラリを頼って表示だけしたレベルの技術しか無い人には、
多分絶対に無理です。 というか、全然理解出来ていないので、もう一度よく考えてください。

ググって、理解して、考えてください。
432Now_loading...774KB:2010/01/18(月) 21:11:17 ID:4Cr8aguf
あ、別にビットマップにしてる訳じゃないのか

でもそれにしても、それをまたsvg でもなんでもいいが xml に戻すには
自力でノードをcreateして再帰的に処理して生成する必要があって、
例えばそれがsvgなら、svgの仕様をまず把握して理解したうえで、
そのように作らないといけない。

それについては、ここで教えてくださいって言って済む分量の話ではないから
結局どうしてもやりたかったら自分で仕様をおいかけて、生成ロジックを考えて組んで下さい。

以上
433429:2010/01/18(月) 21:19:10 ID:z5tYNe1Q
>>432
レスありがとうございます。

やはりsvgの使用表を理解するべきだったんですね。
既存の読み込みライブラリー等をみながら
生成のアルゴリズムを検討してみます。
434Now_loading...774KB:2010/01/18(月) 21:35:31 ID:sGxRF9pQ
>>433 ヒントだけ言っておくと、

1.まず構造を把握しろ
2.Graphics上でドローする際、その時のShapeなどの線分と重なりの構造を
  別の何かに辞書などで持つか、階層化したオブジェクトとして記録しとけ
3.書き出しをする時、2の階層を再帰的に辿りつつ、
  SVGのDTDに沿ってノードを作っていけ
4.出来上がった XMLNode のツリーをテキストにしてサーバに送りつけろ

こんな感じ。頑張れ。 そしてどっちかっていうと、読み込みライブラリを追うより、
まずXMLと再起とSVGの要素を全部当たれ。 まったく初心者でも2ヶ月くらい集中すれば簡単だ
435420:2010/01/19(火) 01:01:37 ID:uM5Iokby
>>421
申し訳ございません、ちょっと、自分が望む物と違うかな、という感じです…

>>422
求めているのは、まさに、そんな感じの物です。
XMLList、ぐぐったら一発でした。ありがとうございます。
436Now_loading...774KB:2010/01/19(火) 10:38:28 ID:R9UJkVJn
var xml:XML=
<time>1234567890</time>
<id>12345</id>
<id>23456</id>
<id>873677</id>


<id>873634</id>

actionscriptでこれを
var id:Arryのような配列に入れるにはどうしたらよいでしょうか?
xml.idで1つ抜き出すのはわかるのですが、forとかで回そうにもどう回して良いかわかりません。
437Now_loading...774KB:2010/01/19(火) 11:50:47 ID:jgy7TaHS
このスレにはいったい何回XMLネタが出てくるんだ。
そして何回同じような回答が出なきゃならないんだ
438Now_loading...774KB:2010/01/19(火) 15:59:38 ID:7y3O8m88
フル画面Flashについてなのですが、モーションでステージの外にMCが移動すると
そのサイズでフル画面になってしまい、横に白い余白ができてしまうのですが、
どうしたらいいでしょうか?
439Now_loading...774KB:2010/01/19(火) 16:42:58 ID:5MANfX8e
>>438
現状どうやってフルサイズにしてるか分からんけど、フルサイズにしたい範囲に下敷きのようなMC配置して、
そのMCの大きさを元にフルサイズに保つような処理にすればいいんじゃないかな。
440Now_loading...774KB:2010/01/19(火) 20:30:05 ID:wEfzDKQ1
>>439さん
なるほどー現在、

R = 900/1200;
Stage.scaleMode = "noScale";
Stage.align = "LT";
function bgScale() {
w = Stage.width;
h = Stage.height;
if (w*R > h) {
bg._width = w;
bg._yscale = bg._xscale;
} else {
bg._height = h;
bg._xscale = bg._yscale;
}
bg._x = w/2;
bg._y = h/2;
}
bgScale();
sListener = new Object();
sListener.onResize = function() {
bgScale();
};
Stage.addListener(sListener);

このbgというMC中にステージ外に動くモーションがあるので、
これとは、別のMCを基準にすればいいのですね。
441Now_loading...774KB:2010/01/20(水) 09:36:24 ID:CARXAj0q
質問です。
AS2 CS3を使っています。
ステージの中央にthumb_totalのMCがあります。
thumb_totalの一部の所をクリックしたら
マウスでthumb_totalを動かせるようにしているのですが
クリックをした瞬間にthumb_totalの左上基準点に移動してしまいます。
クリックした場所でthumb_totalを動かせるように出来ないでしようか?
thumb_total.onMouseDown=function(){
if(thumb_total._xmouse>0 &&thumb_total._ymouse>0 && thumb_total._xmouse<thumb_total._width && thumb_total._ymouse<thumb_total._height*0.1)
thumb_total.startDrag (true);
}

thumb_total.onMouseUp=function(){
thumb_total.stopDrag ();
}
ご指導よろしくお願いします。
442Now_loading...774KB:2010/01/20(水) 12:45:07 ID:Wl7LZX18
>>441
MovieClip.startDrag()の引数の意味、わかってtrueにしてる?
それと、onMouseDownじゃなくて、onPressじゃないか?
443Now_loading...774KB:2010/01/20(水) 17:21:53 ID:CARXAj0q
>>442
ご指導ありがとうございます。
startDrag()の引数の意味はわからずにドラッグ ドロップ
書いてあるサイトを真似して書いています。
onMouseDownをonPressに直してみたのですが、
まだMCの左上基準点の所に移動してしまいます。
引き続きご指導お願いします。
444Now_loading...774KB:2010/01/20(水) 18:02:13 ID:bsHVSaaV
startDrag()の引数をtrueにすると基準点にロックされるんだよ
falseにすればいいよ
445Now_loading...774KB:2010/01/20(水) 18:13:11 ID:mJ7PyGUz
現在ステージに表示しているシンボルと使用している変数を全て削除するにはどうすればいいでしょうか
446Now_loading...774KB:2010/01/20(水) 18:34:39 ID:KkKEfdW5
function all_delete (evt):void {
 deleteNum = stage_mask.numChildren-1;

 for (var i:Number = 1; i <= deleteNum; i++) {
   var child:* = stage_mask.getChildAt(i);

     if (child is MovieClip) {
       if (child.name.indexOf(”obj”) != -1) {
          stage_mask.removeChild (child);
          i–;
       }
     }
 }
 coNum =0;
}
447Now_loading...774KB:2010/01/20(水) 18:45:02 ID:Wl7LZX18
>>443
意味がわからない時はヘルプ等で、意味を確認しましょう。
>>444が書いてる通り、基準点のロックはその引数が決めてます。

onPressは基準点には関係ないですが、こっちを使えば、onMouseDown内の無駄な条件を省けます。
onPress=そのMCの上でマウスを押した時
onMouseDown=どこであれマウスを押した時
つまり、MCをクリックした時の動作にしたいなら、onPressを使えば?ということです。
448Now_loading...774KB:2010/01/20(水) 20:18:36 ID:kvi1//qj
現在、SA3で製作を行っています。

質問なのですが、GraphicsのデータをローカルにPDFやEPSなどの
ベクター系のデータとして保存する方法はないのでしょうか?

保存したいデータは直線と曲線で構成された単純な線のデータです。
取り合えづ、AlivePDFというライブラリを試して試していたのですが
独自のクラスに描画が必要になるようで
Graphicsをそのままコピーすることは出来きませんでした。
今、Graphicsの中の描画データの構成(点と線のデータ)を取り出す方法はないかと探してます。

煩雑な書き込みになってしまいましたが
ご指導のほど宜しくお願いします。
449Now_loading...774KB:2010/01/20(水) 21:03:43 ID:4VSxJ550
>>448
根本的な話として、AIRでもない限りローカルに保存自体が出来ません。
で、AIRであるならば、"Adobe AIR ファイル保存" 辺りでググれば、
ローカルファイルシステムへアクセスするAPIの解説があります。

保存したい内容として Gaphics 云々、PDFやEPS云々と用件が出ていますが、
多分簡易な方法など無いと思うので、ファイル構造について自分で解析し、
保存したい内容を順次バイナリで書き出す必要があるかと思います。

またAS3で言うと多分取り出したい内容は Graphics の中というより、Shapeにドローされた際のヒストリ、
ベクタ情報の事になるかと思いますが、
(Graphicsオブジェクトは手段を提供するだけであって、その中にデータがある訳ではない)
それらを外から取り出す方法はありません。

もしも、2Dドローソフトみたいな物を作ろうとしているなら、自分なら、
例えば描いてもらっている間に画面描画と同時に自前で記録し、あとでそれを元に再構成する、
などのロジックを考えます。

以上。
450Now_loading...774KB:2010/01/20(水) 21:15:43 ID:kvi1//qj
>>449

お答えありがとうございます。
おっしゃるとおりで、AIRでの開発をおこなっています。

アドバイスに従い、描画処理の履歴を残しておいて
最終的にその履歴をもとにデータを吐き出す方法を模索してみます。
451Now_loading...774KB:2010/01/20(水) 21:43:11 ID:5AvVtayl
var RssXML:XML;
private var RssxmlLoader:URLLoader;

private function init():void {
var RssUrl:String ="http://example.com/ex.xml";
RssxmlLoader = new URLLoader();
RssxmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
RssxmlLoader.addEventListener(Event.COMPLETE, RssxmlComplete);
var RssurlReq:URLRequest = new URLRequest(RssUrl);
RssxmlLoader.load(RssurlReq);
};

private function RssxmlComplete(e:Event):void {
RssXML =new XML(RssxmlLoader.data);
trace(RssXML);
};

<mx:VBox label="一般" width="100%" height="100%">
<mx:DataGrid width="777" height="339" dataProvider="{RssXML}">
<mx:columns>
<mx:DataGridColumn dataField="title" headerText="名前"/>
<mx:DataGridColumn dataField="link" headerText="値"/>
</mx:columns>
</mx:DataGrid>

これでデータバインディングでは"RssXML"への代入を検出できません。となってしまうのですが、どうしたらよいでしょうか?
452Now_loading...774KB:2010/01/20(水) 23:01:10 ID:OSH5aFbT
>>451
[Binding]タグを使う
453Now_loading...774KB:2010/01/20(水) 23:01:57 ID:OSH5aFbT
ミスった[Bindable]タグね
454Now_loading...774KB:2010/01/20(水) 23:29:01 ID:5AvVtayl
>>452
ありがとうございます。


[Bindable]
var RssXML:XML;
以下略。

でいけるということでしょうか?
エラーの内容が同じなので、詳しく教えてもらえると助かります
455Now_loading...774KB:2010/01/21(木) 00:41:35 ID:QiVRSYKP
>>444
>>447
さん達のおかげでありがとうございます。
無事解決できました。
456Now_loading...774KB:2010/01/21(木) 02:01:42 ID:WhaO4VcK
MC.addEventListener(MouseEvent.MOUSE_DOWN,mDown);
function mDown(event:MouseEvent) {
event.target.startDrag();
}

のようにイベントに使う関数をイベント割り当ての後に定義する例が多い気がします。
また、普通の関数も使う箇所より後に定義されてることが多いと思うのですが、
後に書いた方が良いなどの理由はあるのですか?
457Now_loading...774KB:2010/01/21(木) 19:34:34 ID:wYP93ZLm
Flex(mxml)でaddEventListenerのEvent.COMPLETEって正常に動作しますか?
例えばEvent.COMPLETEではなくMouseEvent.CLICKに変えると正常に動いてくれるのですが、
Event.COMPLETEだと正常に動作してくれません
458Now_loading...774KB:2010/01/21(木) 20:24:25 ID:yzCRIDfx
>>457 どれの、何の? Flexのmxml から触れる、どのオブジェクトでの COMPLETE?
459Now_loading...774KB:2010/01/21(木) 21:53:01 ID:wYP93ZLm
>>458
どれの、何の?というのが何を指すのか分かりませんが、
Flex SDKは3.2です。URLLoaderでのCOMPLETEです。
460Now_loading...774KB:2010/01/21(木) 22:01:50 ID:wYP93ZLm
>>458
すみません。話が変になっていました。MouseEvent.CLICKというのは
クリックするとリスナー関数でURLLoaderで読み込んだtxtデータを表示するということで
その部分をEvent.COMPLETEで完了になるとリスナー関数でURLLoaderで読み込んだtxtデータを表示する
にすると表示されないということです。
461Now_loading...774KB:2010/01/21(木) 22:21:32 ID:Cu6udrNK
サウンド関係の処理でキーを高くしたり低くしたりすることは出来るでしょうか
462Now_loading...774KB:2010/01/21(木) 22:29:59 ID:b19TgDYi
flex 3.2
mx.controls.Imageで透過pngを読み込んだのですが
クリックしたときに透過部分からもイベントを拾えてしまいます
透過していない部分からのみ反応するようにするにはどうしたら良いでしょうか
463Now_loading...774KB:2010/01/22(金) 00:46:59 ID:yQbVOFK8
二次元配列にまとめて文字を代入する方法はないでしょうか?
hensu[5][20]
を作成し、
hensu[0]に20個の文字列、hensu[1]に20個の文字列・・・という感じで代入したいです
1次元でしたら、
hensu = ["a", "b", "c", "d" ・・・・];
で、できると思い思いますが、二次元の場合どうやればいいかわかりません
よろしくお願いします
464Now_loading...774KB:2010/01/22(金) 01:36:20 ID:ByCRyL/b
>>459-460
>どれの、何の?というのが何を指すのか分かりませんが、

どのオブジェクトでのイベントか、という意味で どれの?と聞いた。
イベント名だけじゃ、どこで何をどうしたいが見えないので、誰も答えられないからだ。
で、当初のイベントは >>460 の処理で、って話だね。

要はクリックしたタイミングで URLLoaderを使いロードを開始した?
その後、URLLoader が完了イベント投げたタイミングで、受け取ったテキストをどこかに書き込んだ。

>>457 の記述を見ると
>例えばEvent.COMPLETEではなくMouseEvent.CLICKに変えると正常に動いてくれるのですが、
と書いてるけど、イベントの流れは理解出来てるんだろうか。両者は全然タイミングが別物のイベントなんだが。

例えば前提として、テキストファイルが別途サーバ上にあるとすると…

1.マウスクリックのタイミングで、URLLoader を使い、サーバからデータのロードを "開始" する。
2.URLLoaderロード完了のタイミングで、取得したデータをどこかに書き出す。

で、1のイベントと2のイベントはまったく無関係だと言う事。その辺は理解してるか?
465Now_loading...774KB:2010/01/22(金) 01:41:45 ID:ByCRyL/b
>>462 hit用の別のShapeを用意して行けたと思う。ボタンとかで使うアレと同じ。

>>463
var hensu:Array = [
 ["a", "b", "c"],
 ["d", "e", "f"]
};
466Now_loading...774KB:2010/01/22(金) 17:17:08 ID:AyZQGs7k
ADataGrid.unshift("{v:\""+num+"\",title:\""+title+"\"}");
initGridData=new ArrayCollection(ADataGrid);

配列に追加していき、それをコレクションにしてdataGridで読み込んでいるのですが、
dataFieldでvやtitleを指定してもどちらにも{v:\""+num+"\",title:\""+title+"\"}の形式で出力されてしまいます。
numやtitleだけを出力したいのですが、どうするべきでしょうか?
467Now_loading...774KB:2010/01/23(土) 00:32:17 ID:IeROa/wE
>>466
"{v:\""+num+"\",title:\""+title+"\"}"を文字列にしてるのはなんで?
468Now_loading...774KB:2010/01/23(土) 13:39:00 ID:E2WLu1Nd
Processingを使用している方もいると思うんですが、P5におけるrectMode、ellipseModeの様なメソッドはAS3には無いでしょうか?
要はベクター描画の際に、(0, 0)をSpriteの中心に置きたいんです。
ご回答よろしくお願いします。
469Now_loading...774KB:2010/01/23(土) 13:40:04 ID:5f4BexDR
AS3でArrayCollectionに{date:"1234567890",name:"hogehoge",data="hogehoge"}みたいな感じの
データが入っていて、dateの値(unix time)と現在の時刻と比較して、経過が一定時間(任意)ごとに
nameとdataを使った処理を行わせる関数が欲しいのですが、何を使えば作れるでしょうか?
470age:2010/01/23(土) 15:27:48 ID:L5ncQh3s
無料ソフトFlash Developでのflashゲームの開発、画像の分割読み込みの方法
(※flash csは持っていません)

画像の分割読み込みなどで、一度に複数の画像を読み込むなどの方法はないでしょうか?

現在入門書で画像を一個一個読み込み表示する手順として以下のの3つのステップを踏んでいます。

(1)public var ldr_png:Loader = new Loader();

(2)var urlReq:URLRequest = new URLRequest("画像フォルダ名/画像名.png");
this.ldr_png.load(urlReq);

(3)this.addChild(this.ldr_png);
471Now_loading...774KB:2010/01/23(土) 15:59:47 ID:gnD5WvAx
>>470 一度に複数なんて言う方法は、Flashに限らず通常ありえない。

もしも誰かが(例えば俺が)そういうライブラリを作っていたとしても、
実際には中では個別にLoaderを読んで順に取得し、例えば10件トライして10回なんらかの
結果が得られた時点で、全て完了したと報告しているに過ぎないので、
今は書かれている通りに試していって問題無い。

・・・強いて言えば非同期に取得する手段を(URLLoaderなど)取って、
複数個並列に処理するのような形にした方が全体でかかる時間も減るとは思うが、
その辺は考え方が変わって来るので、今はそのまま試して覚えた方がいい
472Now_loading...774KB:2010/01/23(土) 16:18:32 ID:L5ncQh3s
>>471回答ありがとう。
自分はflash初心者なので、今のコードで試すしかないか・・。
結構画像の数が多くなると処理が大変になりそう。
せめてコードを短くする
(例えばurlReqを使わずに直接画像を指定して読み込むとか)ことはできないものでしょうか?
473Now_loading...774KB:2010/01/23(土) 16:29:12 ID:gnD5WvAx
>>472 ん?もしかして他の言語の経験はある? それならと言うか、そうでなくても
ここは必ず追いかける事。 初心者じゃなくても良く見る物だ。

http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/index.html?package-summary.html&all-classes.html

あと、URLRequestを毎回使うのが鬱陶しいとか、同じようなコード羅列するのがわずらわしいって感覚は、
至って正常。 俺ならそのような場合、「URLの文字列だけ渡せば決まった手続きはまとめてやってくれるクラス」
でも作ってコードを整頓する。 その辺は他言語での考え方と同じ。
474Now_loading...774KB:2010/01/23(土) 16:49:47 ID:L5ncQh3s
C言語の入門レベルのプログラムを組んだことがあります。
(C言語ではDXライブラリというものがありそれをつかっていました。)1枚の画像に必要な画像をすべて並べて置いて、
座標を指定して切り取って配列として読み込んで使うという方法があるのですが(マイナーな方法かもしれません)、どうやらaction scriptにはない機能のようです。
ただし、自分でクラスを作ってプログラムした経験はないので、クラスの作成から勉強しなおしてみます。
475Now_loading...774KB:2010/01/23(土) 17:02:34 ID:gnD5WvAx
>>474 ActionScriptに無い、と言うか、標準の組み込みAPIに存在しないだけだから、
むしろそのように自分で実装すれば良いだけ。と言うか、その種の処理はお手の物だと思うぜAS&Flashなんて特に。

あと、DXライブラリはドがつく高級ラッパーなので、全部自分で書く代わりに他人に書いてもらってたような状態だと思うが、
>>474 にあるような内容は、メジャーとかマイナーというより、ただの実装方法の一つ。
特に珍しい何かって事でも無く、たまたまそれがそういう仕様だっただけって話。
そう言った考え方の切り分け含めて、頑張って勉強してくれ


476Now_loading...774KB:2010/01/23(土) 17:22:32 ID:L5ncQh3s
>>475たしかに。APIをどのくらい扱えるようになるかもプログラミングの楽しみのはずだけど、
C言語のときDXライブラリに頼り切っていたのも指摘の通りです。
とりあえず頑張る。
477Now_loading...774KB:2010/01/23(土) 17:36:26 ID:5f4BexDR
現在時刻のunixtimeを求める関数はありますか?
478Now_loading...774KB:2010/01/23(土) 22:57:28 ID:L5ncQh3s
マウスがクリックされたら「こんにちは」という文字を表示するプログラムを作成しようとしたのですが、
うまくいかず困ってます。
28行のプログラムですがおかしいのはどこかわかる人いますでしょうか?
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;

public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
this.addEventListener(MouseEvent.MOUSE_DOWN, onMousedown);
function onMousedown(e:MouseEvent):void {
var tf:TextField = new TextField();
tf.text = "こんにちは";
this.addChild(tf);
}
}
}

}
479Now_loading...774KB:2010/01/23(土) 23:37:26 ID:gnD5WvAx
>>478 むしろストレートにおかしい

  private function init(e:Event = null):void {
  〜略〜
    // entry point
    this.addEventListener(MouseEvent.MOUSE_DOWN, onMousedown);

    function onMousedown(e:MouseEvent):void {
      var tf:TextField = new TextField();
      tf.text = "こんにちは";
      this.addChild(tf);
    }
  }

onMousedown のハンドラ関数を書いた場所と、いま手元にある入門書かサイトの解説を
もう一度よく読め。 あとついでに言っておくとそこは entry point じゃないぜ… って
IDEの自動挿入文かもしれないが
480Now_loading...774KB:2010/01/23(土) 23:50:33 ID:gnD5WvAx
また跳ね返ってくると面倒なのでちょっと解説しておくと、

class
 ├ function その1    … そのクラスに定義/宣言された関数その1
 │ └ function その2 … こういう記述方法自体がエラー(※)
 └ function その3   … このクラスに定義/宣言された2番目の関数

そのクラスに定義する関数(メソッド)は、class の直下階層に書かないと意味が通じない。
その2で※と印を付けたのは無名関数の例があるからだけど、それについては今関係無いので割愛
481Now_loading...774KB:2010/01/24(日) 00:12:50 ID:uZfiNfHp
[Bindable]
public var myxml:XML = new XML(
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"xmlns:dc="http://purl.org/dc/elements/1.1/">
<list>
<title>hogetitle</title>
<link>http://hogehoge.com</link>
<description>hogehogeなんです</description>
<language>ja-JP</language>
<item>
<title>hoge1</title>
<link>hoge1.com</link>
<pubDate>Sat, 23 Jan 2010 23:05:00 +0900</pubDate>
<description>hogeだお</description>
</item>
<item>
<title>hoge2/title>
<link>hoge2.com</link>
<pubDate>Sat, 23 Jan 2010 22:33:17 +0900</pubDate>
<description>hogeだお</description>
</item>
</list>
</rss>
);

public var myxmlcol:XMLListCollection = new XMLListCollection(myxml.rss.list.item);

DataGridでitemのtitle,link,pub Date ,descriptionをリストにしたいのですが、XMLListCollectionでないと
dataProviderにできないと聞いてXMLListCollectionに入れているのですが、これであってますか?
traceしても空白なので困ってます。itemの中だけ拾いたいです

482Now_loading...774KB:2010/01/24(日) 04:09:30 ID:rvdU959p
複数あるasファイル内の文字列をまとめて一括検索:置換できるソフトってないですか?
htmlとか、txtなら、いくらでもあるんだけど、.as対応のその手のソフトが存在しないんで。
483Now_loading...774KB:2010/01/24(日) 04:17:14 ID:ismAkZsx
>>482 その要件だけならテキスト用の同じソフトでいいと思うんだけど何故ダメなのか
484Now_loading...774KB:2010/01/24(日) 04:50:32 ID:rvdU959p
拡張子が対応していないんで。拡張子をいったんtxtに一括変換する そして検索置換。拡張子をasに戻す という手順がめんどいだけです
485Now_loading...774KB:2010/01/24(日) 05:02:44 ID:4rm25ecq
>>484
そういうのいっぱいあるよ
「grep」とか「テキスト 置き換え」とかで検索すれば出てくるべ。
まぁスレ違いだけど。
486Now_loading...774KB:2010/01/24(日) 05:19:00 ID:rvdU959p
いくつもためしましたが、どれも.asは未対応です やっぱ一回は拡張子一括変換か
487Now_loading...774KB:2010/01/24(日) 06:29:48 ID:ismAkZsx
おいおいそんな理由かよ。 しかも超スレチじゃねぇか。

どれも .as は未対応ですって、普通にワイルドカードで指定とか出来るだろいくらなんでも。
出来ないソフトの方が珍しいと思うぞ。
そんな拡張子変換とか余計な事する必要まったく無い。ググれ。
そして見つけたソフトの取り説でもちゃんと嫁。 そしてスレチだ
488Now_loading...774KB:2010/01/24(日) 06:33:05 ID:ismAkZsx
ちなみにド初心者みたいだから書いとくけど、普通に考えて世の中には
テキスト形式で拡張子が違うファイルなんて星の数ほどあるんだよ。 as に限った話じゃない

それらに対応する為、ごくごく一般的な多くのそれ系ソフトは、大抵 foo.* みたいな
ワイルドカードに対応したりするもんだ。 じゃないとまるで使えないからだ。

その辺含めてググって学べ
489Now_loading...774KB:2010/01/24(日) 11:40:51 ID:tr8yMGsR
as書くに比べたら大した作業じゃねーだろw
490Now_loading...774KB:2010/01/24(日) 15:34:48 ID:wDN+uinM
画像掲示板から画像を取得するにはどうしたらいいですか
491Now_loading...774KB:2010/01/24(日) 19:19:00 ID:tr8yMGsR
その画像掲示板がクロスドメイン許可してないと
画像アドレスは取得できても画像自体は取得できない
492Now_loading...774KB:2010/01/24(日) 19:37:23 ID:wDN+uinM
>>491
おお、さば借りて画像掲示板立ててみました。
詳しく教えてください。
493Now_loading...774KB:2010/01/24(日) 20:14:03 ID:+as3+vNu
>>478
構造そのままで
this.addEventListener(MouseEvent.MOUSE_DOWN, onMousedown);

stage.addEventListener(MouseEvent.MOUSE_DOWN, onMousedown);

this.addChild(tf);

addChild(tf);
でok

package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
public class Main extends Sprite {
public function Main():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMousedown);
function onMousedown(e:MouseEvent):void {
var tf:TextField = new TextField();
tf.text = "こんにちは";
addChild(tf);
}}}}
494Now_loading...774KB:2010/01/24(日) 20:54:11 ID:vl/Eb6+q
rtmpについての日本語のリファレンスってありますか
特にrtmpで映像の送受信するサンプルコードがあったら教えてください
495Now_loading...774KB:2010/01/24(日) 21:55:34 ID:tr8yMGsR
>>492
画像掲示板の画像フォルダにアクセスすればいいだけだよ
詳しくと言われてもどの程度理解してるかわからないから答えようがない
496Now_loading...774KB:2010/01/24(日) 22:40:00 ID:wDN+uinM
>>495
えっと、perlで書かれた画像掲示板cgiがあるのですが、
この掲示板にブラウザでアクセスし、画像をクリックすると
その画像を読み込んだswfファイルが起動するようにしたいです。
497Now_loading...774KB:2010/01/24(日) 23:02:07 ID:tr8yMGsR
>>496
CGIから作る画像のリンクを同じSWFにIDクエリを付属したものにして
同時にCGIからSWFへその画像のパスとIDを変数として渡す
こんな感じじゃないかな?

それほとんどCGIでやることじゃない?
498Now_loading...774KB:2010/01/24(日) 23:47:56 ID:78zOJ4LL
>>479
>>493
ありがと!
クリック→文字表示うまくできた!!
499Now_loading...774KB:2010/01/25(月) 01:50:19 ID:fMNVPn48
1. ActionScript3.0で3枚の画像(img1, img2, img3)のデフォルトのalpha値を0とします
2. ボタン(btn)を配置し、クリックした際にimg1のalpha値が徐々に1になります
3. img1のalpha値が1ならばimg2のalpha値が徐々に1になります
4. img2のalpha値が1ならばimg3のalpha値が徐々に1になります

以下、自分の書いたコードです
----------------------------------------------------------------------------------
img1.alpha = 0;
img2.alpha = 0;
img3.alpha = 0;

btn.addEventListener(MouseEvent.CLICK, alphamode);

function alphamode(evnt:MouseEvent):void {
for (var i:int = 0; i < 10; i++) {
img1.alpha = i / 10;
}
if (img1.alpha == 1) {
for (var i = 0; i < 10; i++) {
img2.alpha = i / 10;
}
}
if (img2.alpha == 1) {
for (var i = 0; i < 10; i++) {
img3.alpha = i / 10;
}
}
}
this.stop();
----------------------------------------------------------------------------------

この様に記述してもimg1のalpha値しか変更されません。
500Now_loading...774KB:2010/01/25(月) 04:27:00 ID:CET6IAU6
それじゃ値1にならないよ
i<=10

それと変数も重複してるよ
501Now_loading...774KB:2010/01/25(月) 05:50:36 ID:fMNVPn48
失礼しました。間違ってましたw

img1.alpha = 0;
img2.alpha = 0;
img3.alpha = 0;

btn.addEventListener(MouseEvent.CLICK, alphamode);

function alphamode(evnt:MouseEvent):void {
for (var i:int = 1; i < 1000; i++) {
img1.alpha += 0.01;
}
if (img1.alpha >= 1) {
    for (var j :int = 1; j < 1000; j++) {
        img2.alpha += 0.01;
    }
}
if (img2.alpha >= 1) {
    for (var k:int = 1; k < 1000; k++) {
        img3.alpha += 0.01;
           }
}
}//end func.
this.stop();


これで走りました。しかし、一瞬で処理されてしまって、
alpha値が意味のない結果になってしまいます。

alpha値制御によって徐々にimgが現れる方法としてfor文は間違っているのでしょうか?
そこで、
502Now_loading...774KB:2010/01/25(月) 06:56:11 ID:CET6IAU6
enterframe処理のほうがそれらしい結果は出るよ
あとtimerで処理するとかかな
503Now_loading...774KB:2010/01/25(月) 12:37:05 ID:umRGkLgw
>>501
>alpha値制御によって徐々にimgが現れる方法としてfor文は間違っているのでしょうか?

間違ってる。
forなどのループ処理中は描画更新は行われないので、アニメーション処理には使わない。
>>502のいうようにするとか、Tweenクラス使うとか。
504Now_loading...774KB:2010/01/25(月) 12:51:17 ID:EPQ/X+l6
>>501 一応基本的な事として説明すると、
for の繰り返しは処理としての繰り返し、徐々に見た目が云々は、アニメーションの繰り返し
動作が全然違う

これは、例えばこんな想像をするとすぐに理解出来る。

 例) 「20個の Spriteを同時に点滅させたい」
  1.1フレーム中で、for で回して 20個分の SpriteについてAlpha値を設定
  2.セットするAlpha値を変えながら、1を繰り返す

この時、1が処理としての繰り返しで、2がアニメーションの繰り返し。
この辺の意味の分離を良く理解しておくこと
505Now_loading...774KB:2010/01/25(月) 12:53:19 ID:EPQ/X+l6
>>504 の件
×2.セットするAlpha値を変えながら、1を繰り返す
○2.フレームを進行させ、セットするAlpha値を変えながら 1を繰り返す

大事な点が抜けた。スマソ
506Now_loading...774KB:2010/01/25(月) 18:50:33 ID:mzcPD+sq
actionscript3です。
flashで入力したテキストをxmlにエレメントとして追加しそれを保存(リロードしても消えないように)
したいのですがどのようにやったらよろしいでしょうか?
507Now_loading...774KB:2010/01/25(月) 20:54:02 ID:EPQ/X+l6
>>506 XMLDOMでの操作は、ActionScript に限らずほぼ同じ
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/xml/XMLDocument.html#createTextNode()
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/xml/XMLNode.html#insertBefore()

言語や環境によって記法に若干差があったとしても、
基本的にDOMに準じているなら、JavaScript だろうが C++ だろうが Java だろうがどれも同じ
508Now_loading...774KB:2010/01/25(月) 20:56:11 ID:EPQ/X+l6
あ、あと「保存」に関して言えば、サーバに投げてCGIでも使ってなんかすればおk
PHPとかで処理すると簡単。 しかしその件についてはスレチなので自分で調べる事
509Now_loading...774KB:2010/01/25(月) 20:59:02 ID:EPQ/X+l6
あ、あと小さい内容&Playerによってバグ挙動の可能性、またユーザがおkとするならば
あまりお勧めはしないが SharedObject って手もある
http://kb2.adobe.com/jp/cps/228/228630.html

レス3連発スマソ
510Now_loading...774KB:2010/01/25(月) 21:01:16 ID:mzcPD+sq
>>509
レスありがとうございました!!
早速試してみます。
511Now_loading...774KB:2010/01/25(月) 21:14:06 ID:EPQ/X+l6
>>510 XMLDOMの操作や考え方は、一度丸ごと覚えておくと
ActionScript に限らず応用が利いて色々役に立つ場面も多いから楽しいぜ
512Now_loading...774KB:2010/01/26(火) 21:39:13 ID:HzJXi50D
すみません!教えてください!
今、以下のサイトのサンプルプログラムをAS1からAS3に書き換えたのですがエラーで動きません。
ttp://hakuhin.hp.infoseek.co.jp/main/as/xml_socket.html#XML_SOCKET_06

エラーとしては、いきなり一行目
System.security.loadPolicyFile("xmlsocket://xx.xx.xx.xx:8080");
のところで
「条件は未定義であり、プロパティがありません」
と出てしまいます。

AS1で動いたのは確認してるので、サーバ側(JAVA)には問題ないと思うのですが・・・
どうかご教授の程よろしくお願いします!
513Now_loading...774KB:2010/01/26(火) 23:26:06 ID:fhzgH6m6
>>512
javaは試してないからわからないけど

flash.system.Security.loadPolicyFile("xmlsocket://200.150.100.50:8080");
もしくは
Security.loadPolicyFile("xmlsocket://200.150.100.50:8080");
でそのエラーは無くなったよ
514Now_loading...774KB:2010/01/27(水) 10:10:27 ID:B7Ey36vT
>>513
うおおおおーっできました!
ありがとうございますっ!

ちなみにサーバ側のロジックをAIRで作る事は可能でしょうか?
ネットではJavaやC#、Perl、PHPなどのサンプルはあるのですがAIRのは見つけられなかったです。
AS3を使い慣れているので、サーバ側もAIRで作れたら最高なんですが・・・
515Now_loading...774KB:2010/01/27(水) 10:31:13 ID:bv+ec7/3
>>514 多分根本的な話だと思うんだけど、AIRの母体であるFlex自体が、
正体は J2EE (サーバサイドJava/エンタプライズJava)の 「ただの1アプリケーション」 なので、
「サーバ側をAIRで作る」 というイメージ自体が意味不明かもしれない

で、C#やその他CGI機構での説明が出るのは、もっと根本的な話として、

「今あなたが作っている物は、ただのクライアント/サーバアプリケーションだ。
 特に Flashであれば、それはどんな内容を書こうとも、ただのクライアント側の1アプリケーションだ」

という基礎的な大前提から、「それならサーバ側はなんでもいいじゃん。HTTPの仕様で受付返答出来る物ならば」
という事で、そのような話になっている、って事。

 ・クライアント側: html、JavaScript、Flash、AIRなどなど
 ・サーバ側: Perl、PHP、Java(J2EE)、C#(.net/aspx)、VB(asp)などなど ※こちら側にAIRは無い

これらは HTTP を介してデータのやりとりをする。その意味で、これら両者はどの組み合わせでも構わない。
そんな感じ。 ついでに言っておくと xml はただのデータコンテナなので、どちらにもいるし、どちらにも居ない
516Now_loading...774KB:2010/01/27(水) 20:13:54 ID:olLDZmAG
初歩的な質問ですいません。actionscript3です。
datagridの文字サイズを大きくしたいのですがどのように設定したらいいでしょうか?

var format:TextFormat=new TextFormat;
format.size=30;
com.setStyle("textFormat",format);

このように書いてみたのですがだめでした。
517Now_loading...774KB:2010/01/27(水) 22:27:50 ID:NWRWHWRp
AS3、Flash9で質問。
addChild した Bitmap の解像度を stage(NO_SCALE, TOP_LEFT) の解像度にピッタリ合わせたい。
しかし Event.RESIZE や FullScreenEvent.FULL_SCREEN の後に bitmap.width = stage.stageWidth; としても
何故か両者の解像度が合わない。

そこで、一旦 removeChild してから改めて new BitmapData/Bitmap したら合うようになったのだけど
これはこういうものという認識でOK?
もし正しい手順があるなら教えてください。
518517:2010/01/27(水) 22:33:55 ID:NWRWHWRp
WHのことで半日悩んだのに、なんだかIDにまで馬鹿にされてる気がする・・・ちくしょー
519Now_loading...774KB:2010/01/27(水) 22:52:16 ID:FVYdZHkm
>>516
dataGridColumnにsetStyle使ったりmxmlなら直接書いたりして
fontSizeを設定してやればいいんじゃね
つかリファレンス見りゃだいたい分かると思うんだけどな
520Now_loading...774KB:2010/01/27(水) 22:59:47 ID:bv+ec7/3
>>517 もしかして、stageWidth の仕様かもしれん。
RESIZE の後、1回だけ ENTER_FRAME 挟むと上手く行くかもしれない

参考: http://pc12.2ch.net/test/read.cgi/swf/1216151218/146-150
てかこれ、去年俺が書いたレスなんだが

未確認なんでハズしてるかもしれないけど、その時は簡便
521Now_loading...774KB:2010/01/27(水) 23:00:48 ID:fhtSJ8n2
質問です
as2でボタンの制御を1フレーム目で行っています。
クリックしたときにbaseにalphaをかけてからcontactに移動するというフェードアウトの動きをつけたのですがEnterFrame処理を使うとflagがずっと1の状態にありcontactから他のコンテンツに移動しようとするとcontactにすぐ戻ってしまいます。
他のコンテンツに移動するにはどうしたらいいのでしょうか?

ソースは下記です
var flag = 0;
footer.btn_contact.onRelease = function() {
base.onEnterFrame = function() {
if (this._alpha>=50) {
this._alpha -= 10;
} else {
flag = 1;
}
if (flag == 1) {
_root.gotoAndStop("contact");
flag = 0;
}
}
};
よろしくお願いします
522Now_loading...774KB:2010/01/27(水) 23:24:49 ID:ei40EwKC
>>521
どっかでdelete onEnterFrame
523Now_loading...774KB:2010/01/27(水) 23:31:14 ID:FVYdZHkm
>>521
flag = 1のとこでgotoAndStopさせればflagいらなくね?
まぁそれはともかく、飛ぶ前にbase.onEnterFrameにnullでも代入するなり
deleteするなりしたらいいんじゃないかと思うが
524Now_loading...774KB:2010/01/27(水) 23:39:47 ID:e2MpEzlW
14歳から始めるaction scriptを読んで、
オンラインのゲーム(五目並べなど)を作ろうと思ってます。
(本では、基礎的なmysqlとperl/cgiの知識も必要みたいなことが書いてあるんで、
mysqlとphpの関連の本を何冊か買ってきたのですがまだよく読んでません。。。)
flashでターン制の対戦ゲームを作る場合
データベースの中身をflashだけで呼び出すことは無理なのでしょうか?
525Now_loading...774KB:2010/01/27(水) 23:53:03 ID:fhtSJ8n2
>>522>>523
おかげ様でできました
ありがとうございした
526Now_loading...774KB:2010/01/27(水) 23:57:18 ID:+ikOeIKc
>>524
無理です。
527Now_loading...774KB:2010/01/28(木) 00:05:51 ID:66Uv/ic8
>>524
ちょうど>>515が書いてるじゃないか。
データベースの中身を呼び出すのは、サーバ側の話。
Flashは、クライアント側。
528Now_loading...774KB:2010/01/28(木) 00:07:00 ID:lOW5WYfc
>>524
どうしてもASでやりたかったらAIRにしる。
529Now_loading...774KB:2010/01/28(木) 00:46:08 ID:TdkSr1l8
>>526,527 flash(クライアント側)だけではということ無理ですね。
>>528 airは最新の技術みたいですね。今後チェックしておきたいです。

すごい勢いでのレスありがと!
530Now_loading...774KB:2010/01/28(木) 13:22:14 ID:CWGxBRYW
お尋ねします。
AS3でyoutubeのクロームレスでなくコントローラー付きのプレイヤーを使用したいのですが、可能でしょうか?
AS2ならあるようなのですが、AS3だとコントローラーは自作しないといけないのでしょうか?
531Now_loading...774KB:2010/01/28(木) 14:14:20 ID:OBz2OEac
自作すればよろしいがな
532Now_loading...774KB:2010/01/28(木) 16:28:18 ID:CWGxBRYW
// ありがとうございます。やはり自作するしかありませんでしょうか?
// AS2ならできるようなので、AS3でもあるのかと思ったのですが……。
533Now_loading...774KB:2010/01/28(木) 17:37:15 ID:w9EujVGz
あるも無いも結局誰かが(Adobe含む)作ったからあるってだけなので、無ければ自作は当たり前。
ただしCS等のパッケージ製品には自分の代わりにAdobeが作ったライブラリと言うか、
出来合いの部品が付いてるかもしれないがそれはユーザじゃないと知らない
534Now_loading...774KB:2010/01/28(木) 20:05:13 ID:OBz2OEac
俺も自作面倒だったけど
調べればすぐ出来るものだったので自作した
簡単すぎてアップするやつがいないんだと思う
535Now_loading...774KB:2010/01/28(木) 20:21:45 ID:/3O2nnOT
テキストボックスを簡単に設定して表示させるクラスはどこかにないでしょうか
自分で作った方が良いのでしょうか
536まるこ:2010/01/28(木) 20:24:18 ID:3WfHuohY
as3で、文章の中から特定の文字列を抜きだす関数が作りたいのですが、
やり方がまったくわかりません。
「明日の日にちは何日だっけ?」>「日」の数をカウント>出力:3
というようなものです。
どなたか教えていただけないでしょうか?
宜しくお願いいたします。
537Now_loading...774KB:2010/01/28(木) 21:41:06 ID:7gYz7NVI
>>535
テキストボックスって具体的にどんなの?
入力できるやつ?

>>536
ttp://gihyo.jp/dev/serial/01/as3/0028
538Now_loading...774KB:2010/01/30(土) 11:14:14 ID:0XiawuW7
AS3です、質問お願いします
png画像を読み込み、現在bitmapとしてaddChildしていますが

この画像内で描画されている領域が、歪んだ台形のようになっていて
未描画箇所は透明です
この画像データのbitmapまたはbitmapdataのデータから
描画されている領域の四隅の頂点のx,yを取得する方法はありませんでしょうか?
539Now_loading...774KB:2010/01/31(日) 10:03:30 ID:554bR9R5
var array:Array = DispalyObject3D.geometry.vertices
540Now_loading...774KB:2010/02/01(月) 14:38:52 ID:OTjvy2Mo
AS3でXMLから外国語の文章を取得し表示しているのですが、
なぜか中国語(北京)だけ太文字になってしまいます。
各国それぞれにあったゴシックのフォントを利用しています。
中国語(北京)のフォントは黒体(Simhei)を利用しています。
なぜ太くなるのでしょうか?上記フォントの仕様なのでしょうか?
541Now_loading...774KB:2010/02/01(月) 23:26:13 ID:niNEDr84
AS3です。カスタムクラスの静的メソッドで、
URLLoaderのCOMPLETEイベントのタイミングで返り値を返したいのですがどのようにすればよいのでしょうか?
static private var hoge:String
static public function fromTxt(path:String):String {
hoge=new String();
var url : URLRequest = new URLRequest(path);
var url_loader : URLLoader = new URLLoader();
url_loader.load(url);
url_loader.addEventListener(Event.COMPLETE,txtLoaderComplete);
}
static private function txtLoaderComplete(e : Event) {
hoge = e.target.data;
}
読み込んだhogeをreturnしたいのですが、txtLoaderCompleteの中に書いてもダメでしたし
fromTxtに書いてもタイミングが合いません。
542Now_loading...774KB:2010/02/01(月) 23:57:52 ID:YrTDdFwv
よろしくお願いします。

AS2、もしくはFlash Light2 の作り方で参考になるサイトや本など
教えていただけないでしょうか?

先日まで CS4 AS3 を本を読みつつ一通り勉強し終え、
当初やりたかった携帯のメニューやFlashゲーに入ろうかと思ったら
自分の携帯がFlash Lite2(AS 2相当)機でした。

近くの本屋にはAS3の本しかなく、amazonで調べても
Flash Light2をターゲットにした本というのが見当たらずで…

Flash Light1.1の本はあったのですが、これでも十分なのかも判らず質問させてもらいました。

よろしくお願いします。
543Now_loading...774KB:2010/02/02(火) 02:15:37 ID:GlawJwJN
>>542
Flash Light2はPlayer7相当、つまりAS2.0で十分に書けるよ。
実際、Player7でパブリッシュしたSWFも携帯で問題無く動く。
(ただし、fscommand2は不可)
544Now_loading...774KB:2010/02/02(火) 11:29:13 ID:sYc6Xg3i
すみませんが、Flash CS4 のフォント一覧にある
中国語専用フォントの
・K体
・Adobe K体 Std
の違いがわからないのですが、何が違うかわかる方いらっしゃいますか?
545Now_loading...774KB:2010/02/02(火) 12:42:22 ID:daZpiJiq
>>540 >>544 その辺知ってる人って、果たしているんだろうかwww
こればっかりはAdobeに聞いた方が速いんじゃね?
546Now_loading...774KB:2010/02/02(火) 12:43:08 ID:daZpiJiq
てか、フォントの話はこのスレで聞く内容なんだろうか
スレタイ的に。
547Now_loading...774KB:2010/02/02(火) 15:13:16 ID:xZofrkkr
AS3です!教えてください!

mcというMovieClipがあり、動的に赤色っぽい色にしたいのですが、
以下のコードでやったら赤のベタ塗りになってしまいます。

var c:ColorTransform = new ColorTransform();
c.color = 0xFF0000;
mc.transform.colorTransform = c;

mcの模様は残したまま、全体を赤色に染めたいのですが、
上記コードだと真っ赤なベタ塗りになってしまいます。
あと、c.alphaOffsetとやってみたら、やはり赤のベタ塗りで、mc全体に
アルファがかかっただけでした。
548Now_loading...774KB:2010/02/02(火) 15:42:11 ID:daZpiJiq
549Now_loading...774KB:2010/02/02(火) 16:04:54 ID:xZofrkkr
>548
ぐぎゅうーーんむうおおーあああああああ
難しいです。
この記事読んだら・・・できますか??
550547:2010/02/02(火) 16:18:30 ID:xZofrkkr
できました。
ありがとうございましたー
551Now_loading...774KB:2010/02/02(火) 20:10:40 ID:yYc/SLde
待ちわびクタビレ
パッション風
Win区氏てる絵振りなぃ
暮す野中のパッションビール
身詰める抱けて何リラ
アマ医目ロデオ
風邪に乗れ馬コント
卑弥呼明大
鳶らが創価でビラ供養
煮詰めるGAP逢い
麻雀プレイ伊豆暖心
宮土理囲炉裏ピカール
早時空GAP合い
本気汁イッキ伊豆暖心
次あがり阿鼻手

ウイゲッチュ!

水で椅子婆ー


誰か作ってくれ。
552Now_loading...774KB:2010/02/02(火) 20:27:31 ID:5UibrjVB
>>541
Flex Builderにコピペしたらエラーでまくりだったので修正してみた。
タブはスペースで表現してあります。

fromTxtがメソッド(returnを返さないFunction。返す場合は関数だ)の場合、型はvoidのみ。
txtLoaderComplete内で hoge への代入は完了してるから、他のメソッドや関数で hoge を参照すればよし。
ちなみにイベントを伴う処理で
var test:String = fromTxt();
みたいな使い方は出来無いので注意。

static private var hoge:String

static public function fromTxt(path:String):void
{
hoge=new String();
var url : URLRequest = new URLRequest(path);
var url_loader : URLLoader = new URLLoader();
url_loader.load(url);
url_loader.addEventListener(Event.COMPLETE,txtLoaderComplete);
}

static private function txtLoaderComplete(e:Event):void
{

hoge = e.target.data;

trace(hoge);
}

553Now_loading...774KB:2010/02/02(火) 20:32:03 ID:5UibrjVB
そっか!2ちゃんは連続スペースも消されるんだった・・・
失礼。
554Now_loading...774KB:2010/02/02(火) 23:25:12 ID:znhosa+g
Flashからlightwindowを使いたいのですが、
Flash側のボタンに

on (press)
{
getURL("javascript:test();");
}

html側に

function test(){
myLightWindow.activateWindow({

href : "sample.html"

});
}

と記述したのですが、Flashのボタンを押してもlightwindowが起動しません。
通常のaタグなどにlightwindowの記述をすれば、起動するのですが、
どうやったらできるのでしょうか?
555542:2010/02/03(水) 00:51:56 ID:89xQ4akd
>>543

なるほどです。

つまりFlash Light 2の本ではなく
AS2の(Flash 8くらい?)本を探せばいいんですね
ブックオフとか見てみようかと思います

JavaScriptやってたのでAS3のイベントリスナ型はすんなり入りましたが
AS2は「たぶんこんなんだうなぁ」程度の情報しかなかったので…
型もintとかないみたいだし、予想以上にAS3とAS2は差がありそうです。

ありがとうございました。


556Now_loading...774KB:2010/02/03(水) 01:47:46 ID:jAc9l+Dp
>>555 どっちかっていうと、AS2の方がJavaScript(と言うか、ECMAScriptと言うか)ライクだと思う。
AS3はJavaライク。
557Now_loading...774KB:2010/02/03(水) 01:59:27 ID:FswN0wyY
>>555
というか、AS2.0と3.0は別物と考えた方がいい。
例えるなら、爬虫類と哺乳類。
558Now_loading...774KB:2010/02/03(水) 12:13:32 ID:BbiNuryc
http://www.geocities.jp/rokkaku0/game/maze/maze.html
これみたいに
・swfでパスワードを出力
・同swfでパスワードを変換前に戻す
ってのはどうやるんだぜ?MD5ハッシュとかじゃ無理らしいし
559Now_loading...774KB:2010/02/03(水) 12:43:49 ID:974lmB0d
単純にパスワードの勉強しなきゃ
そんなもん作るメソッドなんて存在しないんだぜ
560Now_loading...774KB:2010/02/03(水) 12:48:25 ID:jAc9l+Dp
>>558 特にAS関係なく、どの言語でも同じ。アルゴリズムの話だと思うんだぜ
なので >>559 が正解。
561Now_loading...774KB:2010/02/04(木) 13:46:29 ID:59GN4Hha
>>558
パスワードって言うよりセーブデータ?
だったらちょうど今週似たようなことやったぜ
データをByteArrayに入れて(compressして)、Base64Encoderで文字列にしてみたぜ
逆の操作で元に戻せるぜ
562541:2010/02/04(木) 13:51:52 ID:59GN4Hha
>>552
>var test:String = fromTxt();
みたいな使い方は出来無いので注意。

まさにそんな使い方がしたかったんです。
var test:String
fromTxt(test);
のように引数に参照渡して直接書き換えることにしました。
563Now_loading...774KB:2010/02/04(木) 14:23:05 ID:vSxtdp9T
まったく興味ない質問が多すぎちゃう
564Now_loading...774KB:2010/02/04(木) 16:13:25 ID:T7U2w+he
それは報告しなくていいです
565Now_loading...774KB:2010/02/04(木) 21:26:08 ID:FrniAxzG
あるディレクトリにあるファイルの数を知るにはどうすればいいですか
566Now_loading...774KB:2010/02/04(木) 22:36:30 ID:MtfExxEm
>>565
Flashってか、SWF単体では無理。
FlexによるAirで有ればそれっぽことは可能。
下のコードは、デスクトップ上にある check フォルダーに保存されているファイルとディレクトリーの数を trace する物。
いくらAirでも、File操作ができる場所は限られているのでどこでもは無理。

public var trgDir:File = File.desktopDirectory.resolvePath("check/");

public function CreationComplete_View(e:FlexEvent):void
{

var kariAry:Array = listFile.getDirectoryListing();
trace(kariAry.length);

}
567Now_loading...774KB:2010/02/04(木) 22:39:58 ID:MtfExxEm
>>566 訂正
public var trgDir:File = File.desktopDirectory.resolvePath("check/");

public function checkFileCount():void
{

var kariAry:Array = trgDir.getDirectoryListing();
trace(kariAry.length);

}
568Now_loading...774KB:2010/02/04(木) 23:20:13 ID:5LhoENUK
>>561
ありがとうだぜ
しかしescapeとMD5の二刀流で自己解決したのだぜ

そっちも面白うだから試してみる
569Now_loading...774KB:2010/02/05(金) 10:40:26 ID:1hQ4aiPS
>>566-567
サンクストンクス兄弟
570Now_loading...774KB:2010/02/05(金) 18:51:22 ID:0zDa2KbH
普通varで宣言していない変数のアクセスはエラーになると思うんですが、
a = 1; //error
with(this){ a = 1; } //ok
になるのは何故なのか理由を知りたいです。
571Now_loading...774KB:2010/02/05(金) 19:19:47 ID:c9n3lWmc
>>570
試してないけど、そのthisはたぶんMovieClipかなんらかのダイナミッククラスだから自由にプロパティを設定できるのではなかろうか
572Now_loading...774KB:2010/02/05(金) 19:30:11 ID:lU8S5NnQ
>>570 AS3 の話で、かつその一文が書かれている箇所がクラスの中で、かつ
クラスのメンバとして a が定義されているなら、普通にそのインスタンスのメンバを指しているだけ。

…なんだけど、AS3 で withステートメントなんて使えたっけか。AS2の話か
573570:2010/02/05(金) 19:37:40 ID:0zDa2KbH
package{
import flash.display.*;
public class C extends Sprite {
public function C() {
with(this) {
a=1;
}}}}
574Now_loading...774KB:2010/02/05(金) 20:53:37 ID:yi9YcdxC
>>570
おお!確かに謎だ!

>>571
traceかけてみたけど、そんなプロパティ無いって言われた・・・どうやら違うようだ

>>572
ビルダーのbreakでメンバ洗ってみたけど、いないんだよ、a。AS3でも with は普通に使えるよ

package ori_as
{
import flash.display.Sprite;
public class Test_as extends Sprite
{
public function Test_as()
{
//ここで先ずbreakチェックかけて
trace("before");
with(this)
{
a = 1;
}
//こいつはビルド時にはエラーにならんが、実行時にエラーになる
trace(this["a"]);
//ここでもbreakでチェック
trace("after");
}
}
}
575Now_loading...774KB:2010/02/06(土) 00:58:13 ID:jCOVxDoH
>>574
with ({hoge:a = "a"}) {
trace(hoge); // output:a
}

っていう風に疑似ブロックローカル変数を作れたりするけど、
それと関係があったりして。
576Now_loading...774KB:2010/02/07(日) 00:53:06 ID:r9iPnp5x
>>530
あれ? あるじゃん
577Now_loading...774KB:2010/02/07(日) 13:17:47 ID:9aHaRUsq
あるなら せめてどこにあるかくらい書いてあげれば?
578Now_loading...774KB:2010/02/08(月) 07:34:25 ID:911rbynt
XPathAPIでxmlからデータを抽出する際、属性の値に/(スラッシュ)があると駄目なんですか?
ttp://www.drk7.jp/weather/xml/13.xml
上の、
/weatherforecast/pref[@id='東京都']/area[@id='東京地方']/
から、今日(info date="2010/02/09")以下のディレクトリから色々データを抽出したいのですが・・・

よろしくお願い致します。
579flash作業員:2010/02/08(月) 11:17:07 ID:t9X/MYyP
ブラウザ起動時に、ウインドウサイズ一杯にFlashを表示したい
AS3です。ブラウザ起動時に、ウインドウサイズ一杯にFlashを表示したいのですが、上手くいかずに困っています。。

IE、FireFox、Safari、Opera
上記の4ブラウザ全てに対応したいのですが、
現在私がやっている手法では、FireFoxにしか対応できておりません。

今のやり方は、Flashサイズを縦横100%でパブリッシュして、スクリプトでは

--------------------------------------------------------
var w:Number // ブラウザ起動時の横幅
var h:Number // ブラウザ起動時の高さ

stage.addEventListener(Event.RESIZE, wr);
function wr(e:Event):void{
 w = stage.stageWidth;
 h = stage.stageHeight;
 stage.removeEventListener(Event.RESIZE, wr);
}
--------------------------------------------------------
FireFoxでは、Flashサイズを縦横100%でパブリッシュされていた場合、ブラウザ起動時のウインドウサイズに一度Flashサイズがリサイズされるので、その時に自動的にEvent.RESIZEが実行されるようなのでそこで初期サイズを取得できています。
しかし、他のブラウザでは、「ユーザーがウインウをリサイズする」というアクションを起こさないとEvent.RESIZEが実行されないようですので、ブラウザ起動時にウインドウサイズ一杯にFlashを表示できません。

どうかよろしくお願いいたします。
580Now_loading...774KB:2010/02/08(月) 13:40:43 ID:B6QkGSal
テキストインプットで書いた文字をキャンバス上にラベルで出力しているんですが、
その出力したものの一部ををドラッグで反転させて右クリックで色やフォントを
教えていただけないでしょうか?

あるいは、イメージをドラッグしてきて、それがラベルにぶつかるとフォントが変わるという
ようなものでもいいんですが。

なにかうまいやりかたはないでしょうか?

(右クリックやドラッグ&ドロップ自体はわかります)
581Now_loading...774KB:2010/02/08(月) 13:55:59 ID:ifnO7UHR
>>579
http://okwave.jp/qa/q5658634.html
>>580
TextField.selectionBeginIndex
582Now_loading...774KB:2010/02/08(月) 16:52:31 ID:vARqHDKO
>>579
おれはいつも

stage.addEventListener(Event.RESIZE, wr);
wr();

ってやって手動で一回実行
583Now_loading...774KB:2010/02/08(月) 17:52:59 ID:B6QkGSal
581 ありがとうございます。
584flash作業員:2010/02/08(月) 18:41:36 ID:t9X/MYyP
>582
ありがとうございます!!
やってみました。他のブラウザは作動するようになりましたが
なぜか、逆にfirefoxだけ動かなくなりました。。
なんでかな。。
585Now_loading...774KB:2010/02/08(月) 18:58:05 ID:CcjZ3wWF
キャリア拾って分岐でいいんじゃね?
586Now_loading...774KB:2010/02/08(月) 19:56:42 ID:1ooMPWBq
そのリサイズをremoveEventListenerする必要あんのか
587Now_loading...774KB:2010/02/08(月) 19:57:32 ID:cZO2FqNc
AS2で教えてください
例えば座標A(X:10,Y:25)と座標B(X:55,Y:132)のような
2つの座標間の距離を調べるにはどういう計算をしたらいいのでしょうか
よろしくお願いします
588Now_loading...774KB:2010/02/08(月) 23:14:01 ID:+TnR6Org
>>587
距離って知ってるか?
589Now_loading...774KB:2010/02/08(月) 23:18:21 ID:kOcCV3CV
>>587
(X1>X2)?X1-X2:X2-X1 Xの距離
(Y1>Y2)?Y1-Y2:Y2-Y1 Yの距離
590Now_loading...774KB:2010/02/08(月) 23:39:09 ID:cZO2FqNc
自己解決しました
距離 = Math.sqrt((Bx-Ax)*(Bx-Ax)+(By-Ay)*(By-Ay));
591Now_loading...774KB:2010/02/09(火) 00:03:24 ID:5pHLSlj5
日本はマジで教育が崩壊してんだな。
592Now_loading...774KB:2010/02/10(水) 20:18:47 ID:Jq9LaW8i
http://cute.urecco.jp

このサイトの様にLADIESの写真の上にマウスを置くとフワッと動く感じにしたいのですが
どうしたらよいのでしょうか?
CS3 AS2.0 AS3.0どちらでもよいので、誰かお願いします。
593Now_loading...774KB:2010/02/10(水) 23:03:41 ID:/TuZRwfb
>>592
どのエフェクト?

明るくなるのはColorMatrixFilterを使うか、簡単な方法としては画像の上に半透明の黒いベタ塗りを置いて、マウスオーバーで非表示にするとか

花が舞うやつはそういうムービーを頑張って作って、マウスオーバーで再生
594Now_loading...774KB:2010/02/10(水) 23:10:19 ID:D+XcmX93
>>592
花が散るやつってランダムじゃないなこれ
1つ1つアニメーション作っていったのかww
こんなレベルでも仕事になるの?
595Now_loading...774KB:2010/02/10(水) 23:17:38 ID:isgt06t/
逆に力技過ぎて頭が下がるぜw
596Now_loading...774KB:2010/02/10(水) 23:27:29 ID:2Gd4pOyE
パーティクル作れるソフトから書き出すだけなら
力業ってほどでもないと思う
597Now_loading...774KB:2010/02/11(木) 16:16:38 ID:igK0dX7y
すみません、AS3、クラス内で

private var _groups;

public function set groups(items:Array):void {
_groups = items;
for each (var item in _groups) { // var item in _items としても同じでした。
処理....
}
}

とsetterが指示されてる際に、
groups.push(obj);
としても、処理がなされません。
groups = [obj1,obj2,obj3,obj4];
は処理がなされるのですが、pushでも処理がされるようにするにはどうしたら良いのでしょうか。。
AS2の時は動いたような気がするのですが。。。
598Now_loading...774KB:2010/02/11(木) 16:52:47 ID:XdkU6vjE
AS始めたてだから外してるかもしれんが
それArrayを返すgetterを作るべきなんじゃねえの
groups.push(obj); のpushが要求してるのはArrayだべ?
599Now_loading...774KB:2010/02/11(木) 16:59:34 ID:TczaW38M
アンスコが付いてたり付いてなかったりするのはただの転記ミスで、
実際はちゃんと名前揃ってるんだよね?

メンバの _groups の宣言時に型が無いが、これ通ったっけ?
もしもこれで通るなら、_groups の型が不明なので当たり前だと思う。

AS2 の時はむしろ JavaScript に似て動的型付(ダックタイピング)の色が強かったから出来たんじゃね?
AS3 はむしろJava。 全然別物になったと思ったほうがいい
600Now_loading...774KB:2010/02/11(木) 17:12:00 ID:TczaW38M
一応補足しておくと、
AS2の時はJavaScriptに似て型宣言が無い言語だったから、代入されたオブジェクトいかんでその振る舞いも変わる、って状態だった。
※ダック(アヒル)タイピング=「それがアヒルのように鳴き、アヒルのように歩き、アヒルのように振舞うならそれはアヒルだ」

でも AS3 からは宣言時に型を静的に解決するJavaのような作りになったので、
多分 private var _groups; は、暗黙のうちに _groups:Object として宣言されていて、
_groups = items; とされた場合、_groups からキャスト無しで参照しようとすると、Object として動こうとする。だからエラー

多分、 (_groups as Array).push(obj); みたいにすればいけるんじゃね?
601Now_loading...774KB:2010/02/11(木) 17:17:08 ID:igK0dX7y
興味を持っていただいてありがとうございます。。

>>598
getterは準備しています。。。
public function get groups():Array {
return _groups;
}

>>599
転機し忘れですが
private var _groups:Array;
となっています。

> AS2 の時はむしろ JavaScript に似て動的型付(ダックタイピング)の色が強かったから出来たんじゃね?
かもですね。。。。
Arrayそのものの拡張クラスを作るしかないのなら、ちょと実装、考え直さねば。。。
602Now_loading...774KB:2010/02/11(木) 17:23:29 ID:TczaW38M
>>601 え、宣言時にも Array としていて、それをArrayとして使ってるのにエラー?
だとしたら全然関係ない理由じゃない? ただの自分のバグ的な
603Now_loading...774KB:2010/02/11(木) 17:38:09 ID:igK0dX7y
>>602
いえ、エラーというか、処理をなにもしないのです。
具体的には
for each (var item in _groups) { // var item in _items としても同じでした。
container.addChild(new MovieClip());
}
みたいなことしてます。
デバッガでsetterにブレークポイントを設定しても、かすりもしない、setterを利用していない感じです。
_groupsには、引数と同じものが入ります。
604Now_loading...774KB:2010/02/11(木) 17:50:00 ID:XdkU6vjE
push()が利用しているのはgetterで返されたArrayそのものだから、
その外にあるsetterが呼ばれないのは当然だと思うけど。

Arrayを拡張するのが嫌なら、クラスにpush()メソッドを作って、その中で
setterと同じ動作をさせればよいと思う。
605Now_loading...774KB:2010/02/11(木) 17:57:56 ID:igK0dX7y
>>604
> push()が利用しているのはgetterで返されたArrayそのものだから、
>その外にあるsetterが呼ばれないのは当然だと思うけど。


そう言われてみれば納得です。
ありがとうございました。
606Now_loading...774KB:2010/02/13(土) 20:27:48 ID:T6Ytlfmu
画像を表示する仕組みを考えています。
「マウスが画像の上に乗ったときだけ、違う画像に差し替える」という
簡単なプログラムなのですが、画像の切り替えにタイムラグがあります。

マウスが画像の上で完全に静止しないとイベントが発生しないように見えるので、
そのせいではないかと思います。

・マウスが画像の上に乗った状態を「MOUSE_OVER」で表現するのは正しいか
・MOUSE_OVERは、マウスが静止しなければ発動しないのか

について、どなたかご存知でないでしょうか?
MOUSE_OVER、MOUSE_OUTのときに実行される内容は以下です。

imgLoader.unload();

req.url = newUrl;
imgLoader.load(req);
607Now_loading...774KB:2010/02/13(土) 21:06:43 ID:HMdtl85u
そりゃラグ出るわ
必要な画像はあらかじめ読んでおいて、必要な間ずっと保持しとけよ

Loaderは読み込み(非同期)、変換(非同期)と時間のかかる処理だから
リアルタイム処理に挟んじゃ駄目
608Now_loading...774KB:2010/02/13(土) 21:09:46 ID:mqJKxAC9
>>606
その作りではマウスが乗ってからロードが始まるからタイムラグが有るんじゃないの?
タイミングを確認するならOVERでちょっと移動するとかtraceするとか簡単なアクションで試した方がいい
609Now_loading...774KB:2010/02/13(土) 21:16:55 ID:4qDFrH6Y
タコすぎワロタ
610Now_loading...774KB:2010/02/14(日) 04:16:20 ID:YtY0B5/b
入門の次に読む本について質問させてください。

以前このスレですすめていただいた
・「基本からしっかりわかるAS3」
・ 「Papervision3d入門」
を終えたので、本紹介されていたwonderflへ行きソースをいくつか見させてもらいました。

で、
色んな人のソースをみてると上記本では書かれていなかった記述をそこかしこで見かけ、
(as 演算子や with、packeg外への記述、crossdomain.xml、SWFメタタグ etc)
まだまだ知識が足りないのではないかと少し不安になり質問させていただきました。
(…コードや他言語の経験からなんとなく推察はできますが)

言語仕様を完全把握したい!というわけでは無いのですが、
個人的に基本知識だと思えたas演算子やpackage内外のスコープについても
上記本では触れられていなかったので、もう1冊くらい踏み込んだのを
読んだ方がいいのか…と思いまして。
611Now_loading...774KB:2010/02/14(日) 04:22:34 ID:RQeoXBLO
>>610
詳説 ActionScript 3.0
612Now_loading...774KB:2010/02/14(日) 12:43:28 ID:nCzW2HY4
MCの色が徐々に変わるだけの単純なスクリプトを書いたんですが
ループしてるのかなんなのかCPUの使用率が上がる気がします。どこが悪いのか教えてください(flash8 as2です)

import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
ColorShortcuts.init();
Stage.scaleMode = "exactFit";
myArr = ["cc4c00", "e5cf73", "667f59", "264c4c",];//色を選択

bgColor = Math.floor(Math.random()*(myArr.length));
bgColorChk = myArr[bgColor];//選択中の色をbgColorChkにしまっておく
Tweener.addTween(myMc,{_color:"0x"+myArr[bgColor], time:0, transition:"linear", onComplete:nextAction});//初回はmcに色をつけるだけ。

function nextAction() {
do {
bgColor = Math.floor(Math.random()*(myArr.length));
if (bgColorChk == myArr[bgColor]) {//重複チェック
overlap = true;//重複してたらやり直し
}
} while (overlap);//trueならdoからやり直し
overlap = false;//重複解除
bgColorChk = myArr[bgColor];//選択中の色をbgColorChkにしまっておく
Tweener.addTween(myMc,{_color:"0x"+myArr[bgColor], time:10, transition:"linear", onComplete:nextAction});
}
613Now_loading...774KB:2010/02/14(日) 19:38:44 ID:pfU7fvXD
>>612
重複していなかった場合にoverlapをfalseに設定してあげないとだめかも
614Now_loading...774KB:2010/02/14(日) 20:26:47 ID:z8dJYg1p
選択した色は配列の最後部と入れ替えてから
配列の数-1をランダムに選べば重複チェックが不要になるかと
615Now_loading...774KB:2010/02/14(日) 22:00:14 ID:mnYGhe2/
Flash CS4です。
FLVPlaybackでキャッシュに読み込み完了すると、
バッファリングバー?(床屋のマークみたいなの)が
出っぱなしになってしまいまうんですが、
何かお作法あるのでしょうか?

特別なことは何もせず、
タイムラインの1フレ目に下記のようにソースを指定しているだけです。
player.source = "movie01.f4v"; //playerはFLVPlaybackインスタンス
616612:2010/02/14(日) 22:38:02 ID:nCzW2HY4
>>613
falseを設定してたんですが置く場所がいけないのかスクリプトが止まってしまっていました。
do whileがよくわからない。。

>>614
目から鱗です。そんな方法があるとは。
試したところ無事にスクリプトの止まらないものができました!
勉強になりました。ありがとうございます。

function nextAction() {
bgColorChk = myArr[bgColor];//選択中の色をbgColorChkにしまっておく
myArr.splice(bgColor,1);//選択されている色を配列から削除
myArr.push(bgColorChk);//選択されている色を配列の最後に追加
bgColor = Math.floor(Math.random()*(myArr.length-1));
Tweener.addTween(myMc,{_color:"0x"+myArr[bgColor], time:10, transition:"linear", onComplete:nextAction});
}
617Now_loading...774KB:2010/02/14(日) 22:47:28 ID:MEaS1IOi
>>616
do してからwhileを実行って意味じゃなかったかな、違ったっけ
618Now_loading...774KB:2010/02/14(日) 23:13:10 ID:pLr/SZO+
//trueならdoからやり直し
で合ってる。
619612:2010/02/14(日) 23:44:46 ID:nCzW2HY4
そうか。do whileでやるならoverlap = false;の位置を変えて
do {
overlap = false;//重複解除
bgColor = Math.floor(Math.random()*(myArr.length));
if (bgColorChk == myArr[bgColor]) {
overlap = true;
}} while (overlap);
こうしないといけなかったのか。あほだ。。。
620Now_loading...774KB:2010/02/14(日) 23:53:56 ID:qXstWKLL
ドゥーンしてホエー
621Now_loading...774KB:2010/02/15(月) 01:09:10 ID:VAsmiAbR
試してないけど
do {
bgColor = Math.floor(Math.random()*(myArr.length));
} while (bgColorChk == myArr[bgColor]);
でいいんじゃ
622Now_loading...774KB:2010/02/15(月) 01:20:37 ID:fm6ywASM
AS3.0で、変数を連番で宣言したいんですけど

for(i=0;i<4;i++){
var root["sample"+i]:Number = 0;
}

といった感じでは
leftbracket の前にセミコロンが必要です。
というエラーを吐き出されます。
この方法では宣言はできないのでしょうか?
またできない場合はどのようにすればいいですか?
623612:2010/02/15(月) 01:22:54 ID:ib+M9zUB
>>621
ほんとだ。whileでチェックすればよかったのか。一番単純だし。
ちょっと頭が固すぎたようです。みなさんほんとありがとうございました。
624Now_loading...774KB:2010/02/15(月) 01:23:48 ID:tmxt/74p
配列を使う
625Now_loading...774KB:2010/02/15(月) 02:13:58 ID:6HgXioOa
>>622
for(i=0;i<4;i++){
this["sample"+i] = 0;
}

か、それでだめなら

var obj:Object = {};
for(i=0;i<4;i++){
obj["sample"+i] = 0;
}
626622:2010/02/15(月) 03:07:31 ID:fm6ywASM
例示が的確でなく申し訳ないです。
実際は

for(i=0;i<4;i++){
var root["sample"+i]:URLRequest = new URLRequest("sample_s" + i + ".jpg");
}

です。
一応625の両方試したんですが、エラーはかない代わりに
動作のときに参照できないとでてきました。。。

[Fault]null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
627622:2010/02/15(月) 03:46:29 ID:fm6ywASM
追記

試した結果

var smp:Loader = new Loader();

for(i=0;i<4;i++){
this["sample"+i]:URLRequest = new URLRequest("sample_s" + i + ".jpg");
}

smp.load(sample0);
addChild(smp);

で、未定義のプロパティ i_pctrq0 へのアクセスです。とでてきます。
628Now_loading...774KB:2010/02/15(月) 04:08:03 ID:JeeUQdpE
俺がまだASの仕様を完全に理解してないだけかもしれんが、
>>627って色々おかしい気がする(おかしくなかったらすまん。俺が無知なだけだ)

var smp:Loader = new Loader();
var samples:Array = new Array();

for(var i=0;i<4;i++){
samples[i] = new URLRequest("sample_s"+String(i)+".jpg");

smp.load(samples[0]);
addChild(smp);

こうじゃね?
629Now_loading...774KB:2010/02/15(月) 04:10:48 ID:JeeUQdpE
すまん

smp.load(samples[0]);の上に }  足しといてくれ
630Now_loading...774KB:2010/02/15(月) 04:12:47 ID:VAsmiAbR
>>626
var root:Object = new Object();
for(i=0;i<4;i++){
var root["sample"+i] = new URLRequest("sample_s" + i + ".jpg");
}
連想配列つくるnewとURLRequestオブジェクトつくるnewは別物だからこんな感じじゃないかな

631Now_loading...774KB:2010/02/15(月) 04:19:39 ID:kzcf6ODO
>>627って

var sample0:URLRequest = new URLRequest("sample_s0.jpg");
var sample1:URLRequest = new URLRequest("sample_s1.jpg");
var sample2:URLRequest = new URLRequest("sample_s2.jpg");
var sample3:URLRequest = new URLRequest("sample_s3.jpg");

って記述した状態と同じにしたいってことなんじゃないの?
そうでなければ>>628>>630でいけると思うけど。
632Now_loading...774KB:2010/02/15(月) 05:52:37 ID:6HgXioOa
var loaders:Array = [];

for (var i = 0; i < 4; i++)
{
loaders[i] = new Loader();
loaders[i].name = "loader" + i;
loaders[i].load(new URLRequest("sample_s" + i + ".jpg"));
addChild(loaders[i]);
}
633Now_loading...774KB:2010/02/15(月) 12:00:04 ID:V80x6CDk
型を保証した配列が必要なら、FP10以降ならVector
634622:2010/02/15(月) 12:53:01 ID:fm6ywASM
たくさんの回答ありがとうございます!
>>628>>630でしっかり動作しました。
>>632
強制型変換に失敗しました。
flash.display::Loader@1503101 を flash.net.URLRequest に変換できません。
とでてしまいました。)

ただ、少し疑問が残っているのですが
元々の想定としては>>631にあげられているような形にしようと思っていたのですが
それはできない(間違っている?)のでしょうか?

まだ理解が浅い自分ですがご指南のほどよろしくお願いします。
>>633のこともよくわかりませんでした・・・orz Vector?)
635Now_loading...774KB:2010/02/15(月) 17:05:14 ID:6XsbKtW5
http://okwave.jp/qa/q5451788.html

上記の質問者と同じこと(FLVplayback)に時間表示を付け足したい
のですが、回答者のスクリプトを自分のflvコンポーネントに組み込んでも
FLVは再生されますが、時間が表示されません。

flvplaybackコンポーネントをrootのステージに置いて
インスタンス名をmcに、ダイナミックテキストを作成し、インスタンス名をt_txtにしました。

フレーム1のアクション
import mx.video.*;
var mc:FLVPlayback;//インスタンス宣言
var Duration:Number;//ビデオの長さ
var Time:Number;//ビデオ経過時間
var playheadListener:Object = new Object();//headの進行をwatchするリスナーの設置

function Duration(evt:Object):Void {//metadataの中のビデオの長さの情報を取得し、小数点以下を切り捨て、Durationに代入
var meta:Object = mc.metadata;
Duration = Math.floor(meta.duration);
}
playheadListener.playheadUpdate = function(evt:Object) {//headの進行に伴いupdateを行い、mcの経過時間を取得し、
Time = Math.floor(mc.playheadTime);//小数点切捨てし、Timeに代入
t_txt.text = Time+" 秒経過中"+"/"+Duration+"秒中";
};

何がいけないのでしょうか。
636Now_loading...774KB:2010/02/15(月) 21:08:34 ID:D2DkRkNE
mc.t_txt.textになるじゃないの?
637Now_loading...774KB:2010/02/15(月) 21:37:51 ID:c47liPqq
>>635
ほい。

import mx.video.*;
mc.addEventListener(VideoEvent.PLAYHEAD_UPDATE, function(eventObject:VideoEvent):void
{
var duration = Math.floor(mc.metadata.duration); //長さ
var time = Math.floor(mc.playheadTime); //現在時間
t_txt.text = time+" 秒経過中"+"/"+duration+"秒中"; //テキスト表示
} );
638Now_loading...774KB:2010/02/15(月) 22:06:31 ID:c47liPqq
>>634
プロパティのデータ型を指定したい場合はクラス定義が必要。
んで >>633 が言ってるのは、
型指定した配列を使いたいなら Vectorクラス使えってこと。
STLっぽいね。

var sample:Vector.<URLRequest> = new Vector.<URLRequest>();
for( var i=0; i<3; i++ )
{
sample.push(new URLRequest("./sample_s"+i+".jpg"));
}
//0番表示
var loader:Loader = new Loader();
loader.load( sample[0] );
this.addChild( loader );
639Now_loading...774KB:2010/02/15(月) 23:57:37 ID:eB3rHf6O
亀レスですが、
>>607
>>608
>>609

どうもです。loaderを複数用意してalpha値を変える方法でやると
快適に動くようになりました!
640Now_loading...774KB:2010/02/16(火) 00:13:54 ID:8wA7Mlo3
こんにちは、妹尾です

非常に初歩的な質問だと思うのですが、
loaderで読み込んだswfファイルの再生と停止は、どのようにするのでしょうか?
641Now_loading...774KB:2010/02/16(火) 00:27:27 ID:Jc8RVTBR
Flex3.2(mxml+ActionScript)で学んでいる初心者です。
ttp://livedocs.adobe.com/flex/3_jp/html/skinning_5.html#38789
を参考に作成したプログラムスキンを読み込もうとしているのですが、なかなか上手くいきません。

たとえば作成したプログラムスキンはC:\Apache\htdocs\swfs\skins保存してあり、
プログラムスキンを参照する側のmxmlファイルはC:\Apache\htdocs\swfsに保存してある場合、
コンパイルに関して、mxmlファイル内の<mx:Style>タグ内でのClassReferenceの引数には何を指定すればいいんでしょうか。
これまで色々試したのですが、いつも「定義〜が見つかりません」とエラーメッセージが出てしまいます
642Now_loading...774KB:2010/02/16(火) 00:33:09 ID:zWXelIaj
こんにちは。
作成したムービークリップをステージの左から右に流すというのを
作りたいのです。右に行けばムービークリップをremoveChildで削除
するようにしたいのですが、エラーが出てしまいます。
ムービークリップにはリンケージでmcというクラス名をつけました。
解決するにはどのようにすればよろしいのでしょうか?
お願いします。

var MOVE = 10;
var enx = 500;
var stx = 0;
var clip:mc = new mc();
this.addChild(clip);
clip.x =20;
clip.y = 100;

addEventListener(Event.ENTER_FRAME, MovieX);

function MovieX(e:Event):void{

if(this.x <= enx){
this.x += MOVE;
}else if(this.x >= enx){

this.removeChild(clip);
}

}
643Now_loading...774KB:2010/02/16(火) 00:52:31 ID:QJEiXTf/
>>642

clipをremoveChildしたあとも、MovieXは実行し続けるよね
そのENTER_FRAMEイベントも削除してみてはどうか?
644Now_loading...774KB:2010/02/16(火) 01:33:26 ID:jWdGNi81
>>642

var MOVE = 10;
var enx = 500;
var stx = 0;
var clip:mc = new mc();
this.addChild(clip);
clip.x =20;
clip.y = 100;

addEventListener(Event.ENTER_FRAME, MovieX);

function MovieX(e:Event):void{

if(this.x <= enx){
this.x += MOVE;
}else if(this.x >= enx){

// ここでリスナーを削除して関数の実行を終了
removeEventLsitener(Event.ENTER_FRAME, MovieX);
// でないとすでにremoveChildしたclipを再度removeChildしようとする
this.removeChild(clip);
}

}
645622:2010/02/16(火) 02:14:51 ID:mEi+wZtk
>>638
詳細な解説ありがとうございます!
なんとなくそのあたりの扱いが判った気がします。
また自分でいろいろと実験してみます。
回答してくださった方々、本当にありがとうございました!

・・・と、凄い細かい質問なんですが
配列に代入するとき[i]じゃなくてpushでしているのは
Vector型だから安全(?)のためにしているのか
pushのほうが相対的に早いのか
慣習なのか、またいずれでもないのか
よろしければ教えてください。
646Now_loading...774KB:2010/02/16(火) 02:46:09 ID:jWdGNi81
>>645
どっちでも結果は同じだよ。
pushは最後尾に追加ってことで、この場合[i]=にしても同じ結果が得られる。
好きなやり方でいいと思うけどこの場合空の配列に順番に追加していってるってことで
pushが書き方としてはキレイなんじゃないかな?
647622:2010/02/16(火) 03:00:15 ID:mEi+wZtk
>>646
回答ありがとうございます!

くだらない質問につき合わせてしまってすみません。。。
たしかにpushのほうが綺麗な書き方ですね。
おかげさまで疑問が解けてすっきりしました。
648Now_loading...774KB:2010/02/16(火) 12:11:10 ID:V1hmv/cJ
>>645
[i]でもpushでもどっちでもOKですがいくつか違いが。

Vector型はインデックスを非連続にできません。
var vec:Vector.<Number> = new Vector.<Number>();
vec.push( 0 ); //OK
vec[1] = 1; //OK
vec[5] = 2; //インデックス範囲外ランタイムエラー

ランタイムエラーはいろいろ面倒なのでpushの方が楽です。
が、アクセス演算子だと利点もあります
・コンパイル時に型チェック
・処理速度が早い

はじめから数がきまってるか、とても多いならアクセス演算子、
いくつかわからないならpush()/unshift()って感じでしょうか。
649622:2010/02/16(火) 15:30:13 ID:mEi+wZtk
>>648
なるほど。
お得な情報ありがとうございます!
処理速度はやっぱりできるだけ(型など)指定したほうが速いんですね。
ご丁寧にありがとうございました。
650642:2010/02/16(火) 23:06:50 ID:zWXelIaj
>>643 さん
>>644 さん

コピペしてみたらエラーがなくなり通りました。
ありがとうございます。
651Now_loading...774KB:2010/02/17(水) 02:54:04 ID:FAc/CqLP
test
という名前のフレームがあります。そこにジャンプする、actionscriptを作りたいと考えています。
this.gotoAndStop("test");
という形ではなく、以下のように、
飛び先のフレーム名を関数に納めたい、と考えています。

ID="test"
this.gotoAndStop(ID);

しかし、この形だと、 "  の部分が認識されないため、フレーム名testに飛びません。
"  の部分も認識されるように記述するにはどうすれば良いでしょうか。
652Now_loading...774KB:2010/02/17(水) 03:20:22 ID:wj+jYpeK
>>651
それで飛ぶはずだが。
IDに入ってるのは文字列なんだから、ダブルクォーテーションの認識とか考える必要ないよ。
移動しないとしたら、なにか別のところに原因がある。
653Now_loading...774KB:2010/02/17(水) 04:59:41 ID:FAc/CqLP
>>652
ありがとうございます。
" は認識されるんですね… traceを行ったとき、 " が入っていなかったので
「認識されていないのか?!」と思ってしまいました。

とりあえず、根本的に
this.gotoAndStop("test");
で、test というフレームに移動自体が行われていない事が判りました…
原因は確かに他の何かにありそうです。
ありがとうございました。
654Now_loading...774KB:2010/02/18(木) 12:23:29 ID:TxK6VKlT
AS3.0です
生成してaddChildしている複数のSpriteを、一時的に表示上消して、また後で表示するようにしたいのですが
visibleのtrue,falseを変更して切り替えるのがセオリーなのでしょうか?

Spriteが巨大で、BitmapがaddChildされていたりで、visible変更で消しただけでは
動作が重たいままのような感じがします。

そこで、removeChildで外して消して、表示する時にaddChildという方法も考えていたのですが
外している間ガベージコレクションの対象になり、消される恐れがある?という話も見かけて悩んでいます
どういった方法がベストなのでしょうか?
655Now_loading...774KB:2010/02/18(木) 13:14:23 ID:vQ2lXb3U
>>654
visible=falseで十分でごわす
656Now_loading...774KB:2010/02/18(木) 13:48:15 ID:PoQ3kueV
お力お借りしたいのですが、
AS3.0でjpegEncoderを使って、キャプチャをとりたいと思います。

キャプチャする範囲を、MCのドラッグドロップした時の位置にして、MCはvisible =false;をして表示させずに後の背景だけのキャプチャをとりたいのですが、何故かキャプチャ部分が白く塗りつぶされてしまいます。良い解決方法ありませんか?
657Now_loading...774KB:2010/02/18(木) 14:26:54 ID:H6u8FYFQ
>>656
ソースが悪い
658Now_loading...774KB:2010/02/18(木) 15:11:25 ID:zwjPZnqY
ActionScript2.0です。使っているFlashはcs2です。

4つ、ムービークリップがあります。それらは空間的に、今、現在は「ばらばら」です。
平行としては、位置は同じですが、そのばらばらなポジションがそこで問題になります。
各個点在している、というべきでしょうか。いわゆる不一致です。
大きさもバラバラの物があるとします。
このFlashを展開したとき、開きます。それはブラウザでもその単体でのファイルでも
両方に適しているのですが、彼らが「独自」に射程(?)接触(?)領域のような
ものを判断し、各々の判断で動きます。ただし、動いている過程は見せません。
求められている物は結果のみです。空間に対して同じピクセルです。
きちんと並んでいます。同じ間隔で作ります。
さて、そこで問題なのですが、これらには別々に名前(インスタンス名)があります。
それでも実行させる場合には、どうすればいいですか?
659Now_loading...774KB:2010/02/18(木) 15:15:28 ID:te5Uwf7S
エキサイト翻訳で頼む
660656:2010/02/18(木) 15:30:28 ID:PoQ3kueV
ソースはこんな感じです。MCの非表示のタイミングがおかしいのでしょうか…

import flash.display.BitmapData;
import flash.display.Bitmap;
import com.adobe.images.JPGEncoder;
import flash.utils.ByteArray;

var matrix : Matrix = new Matrix(1,0,0,1,0,0);
var color : ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0);
var rect : Rectangle = new Rectangle(mc.x,mc.y,300,300);
var bmp_data : BitmapData = new BitmapData( 300 , 300 , true);
var phpPath:String = "add.php";

up_btn.addEventListener(MouseEvent.CLICK,cap2jpg);
capBtn.addEventListener(MouseEvent.CLICK, cap);
up_btn.enabled = false

//キャプチャbtn
function cap(event:MouseEvent) {
//mc非表示
mc.visible = false;

bmp_data.draw(stage, matrix, color, BlendMode.NORMAL, rect, true);
var bmp_obj : Bitmap = new Bitmap( bmp_data , PixelSnapping.AUTO , true);
stage.addChild(bmp_obj);
bmp_obj.x = mc.x; bmp_obj.y = mc.y;
capBtn.enabled = false;
up_btn.enabled = true;

}
661Now_loading...774KB:2010/02/18(木) 15:33:43 ID:9+dJMSYT
>>658
まじで何かの翻訳?それともコピペ?
662Now_loading...774KB:2010/02/18(木) 16:16:55 ID:ZOCpLLFS
そのコピペ誰得
663Now_loading...774KB:2010/02/18(木) 19:28:03 ID:vQ2lXb3U
>>660
試してないけど
matrix.ty = -mc.y;
matrix.tx = -mc.x;
rect = null;
かな
drawする対象(stage)の位置指定がmatrixで、ビットマップデータ上のどこに写すかをrect指定だった気がする
あとmcを非表示にしなくてもdraw(background_mc)みたいにして直接背景だけを写すことも出来る
664Now_loading...774KB:2010/02/18(木) 20:45:33 ID:PoQ3kueV
>>663
上の三行追加でうまく動くようになりました。本当にありがとうございました。
665Now_loading...774KB:2010/02/18(木) 20:45:35 ID:oU7Ol6rZ
>>658-659
まじでふいたw
666Now_loading...774KB:2010/02/18(木) 20:55:52 ID:oU7Ol6rZ
667654:2010/02/19(金) 11:10:06 ID:y4FUwLTs
>>655
ありがとうございます

visible=falseを設定してみても、全体的な動作が重いままというのは
他の部分の作り方に問題があるって事ですかね・・・
全体的に見直してみます
668Now_loading...774KB:2010/02/19(金) 23:31:45 ID:Hh/g0xSs
格闘ゲームをflashで作ろうとしているのですが、敵の挙動をASで再現する為には
一体どうすればいいですか?

構造はキャラのMCに弱攻強攻とかラベルつけてgotoさせてます

明らかにスレ違いなんですけど、参考HPとか知ってたらよろしくお願いします
669Now_loading...774KB:2010/02/20(土) 00:12:27 ID:r6zUxQho
ガイルで説明すると
立っている状態:
 相手が離れている→しゃがみ状態に移行
 相手が近い→近づいてみる
 相手がすごく近い→しゃがみキック
しゃがんでいる状態:
 相手がジャンプ中→サマソ
 相手が遠い→ソニック→立ち状態に移行

このように、状態と状況によって行動を決定するAIを組めばいい
検索ワードは状態遷移とかオートマトンとか
670Now_loading...774KB:2010/02/20(土) 00:48:01 ID:wAgAS8Gn
>>669
なんか全部ifで済みそうですね・・・・
有難うございます
671Now_loading...774KB:2010/02/20(土) 01:17:52 ID:knyU0sX9
>>667
ステージ外に移動させるとか
672Now_loading...774KB:2010/02/20(土) 03:34:41 ID:/7w4eQ4Z
>>670
さらに高度になると、学習と適応とかゆらぎとかいくらでも話題は発展するんだけど、
その辺の話なら、書籍だけど「ゲーム開発者のためのAI入門」とか読んでみたほうが良いかもね。
673Now_loading...774KB:2010/02/22(月) 19:09:13 ID:pOEW/HJN
sharedobjectについて詳しく教えてください
674Now_loading...774KB:2010/02/22(月) 19:40:10 ID:SVQ5TMgf
ぐぐれ
675Now_loading...774KB:2010/02/22(月) 20:50:00 ID:pOEW/HJN
全部ぐぐれ
676Now_loading...774KB:2010/02/24(水) 02:49:04 ID:ZzOLNSu8
すいません。かなり文法チックですが。

カスタムクラスを作るさいの、静的プロパティの利点がよくわからないのです。
似たような定数の利点はわかりますよ。でも静的プロパティの利点がよくわかりません。
普通のプロパティ(変数)と比べて何が利点なのか、判る方教えてください。
677Now_loading...774KB:2010/02/24(水) 06:06:51 ID:lS/O11BU
>>676
静的な関数で使えるのは静的な変数だけだからそういう使い方でないの?
678Now_loading...774KB:2010/02/24(水) 08:00:36 ID:TM5Q+txy
例えばコンストラクタ内でtrueに書き換える静的プロパティを作れば
そのインスタンスが一度生成されたかどうか分かる。
それを応用すればSingletonが可能になる。
679Now_loading...774KB:2010/02/24(水) 13:06:46 ID:ZzOLNSu8
ありがとうございます。
本の例題をみても、インスタンスが何回生成されたとか。
そういう使い方あるんですが、それぐらいしか使い道ないのですかね。
(インスタンス数えるんだったら、配列につっこんでlengthで数えたほうが。)

静的な変数でなければ、使えないというような使い道ありますでしょうか?
680Now_loading...774KB:2010/02/24(水) 13:42:30 ID:fr6DLBjM
>>679
・いちいちインスタンスを作りたくないとき
・インスタンス同士で値を共有したいとき
・常にひとつしか存在して欲しくないとき
・パッケージ内のグローバル変数のお供に

とかかな
681Now_loading...774KB:2010/02/24(水) 14:13:28 ID:iarsoHpi
>>679
・クラス固有の定数として使う
・インスタンスを生成しなくても使える
Math.PI とか MouseEvent.MOUSE_ DOWN とか使ったこと無いですか?
またインスタンスが不要ですから、コンストラクターの引数や静的関数内なんかでも使えますよね
・省メモリ
インスタンスごとに確保されないのでメモリを食いません
変換テーブル(リニアでない、たとえばローマ字→かなとか)なんかは静的にするべきかと
・最適化される
正直Flashで最適化されるかはわかりませんが、多くのコンパイラでは最適化されます

>インスタンス数えるんだったら、配列につっこんでlengthで数えたほうが。
その配列を静的プロパティで持つのが頭いいですよね

>静的な変数でなければ、使えないというような使い道ありますでしょうか?
・インスタンス自身が自身のクラスのインスタンス数や参照カウントを知ること
・内部イテレータ的なものを実装するとき
……など、インスタンスが複数存在し、
それを自身で管理するクラスなら必須じゃないでしょうか
682Now_loading...774KB:2010/02/24(水) 23:08:43 ID:ZzOLNSu8
>677〜>681
ありがとうございます。
定数として、利用以外に静的プロパティは、結構重要な役割あるんですね。
今まで仕事でもぐりぐりとクラスから作成して作ることあんまりないので、
そこまでやれるまで、もう少し勉強と応用に励みたいと思います。
683ちゃん:2010/02/24(水) 23:29:24 ID:W50H5sHF
はじめまして

質問がございます。

FlashとActionScriptをつかってサイトをデザインする際、
今 主流で使われているのは ActionScript 2.0とActionScript 3.0のどちらですか?
684Now_loading...774KB:2010/02/25(木) 02:12:55 ID:yxeXl8/G
余裕で3
685Now_loading...774KB:2010/02/25(木) 03:37:39 ID:bsvvdwbv
(Papervision3dで大量のBitmapAssetMaterialを
リンケージから読み込もうとしています)

リンケージするクラスの総数が100個を越えるあたりから
パブリッシュができなくなってしまいました。
5005エラーという原因不明エラーです。
ググッて色々検索しましたが、
パブリッシュ時にメモリが足りなくなっているみたいです。

解決策として以下の方法ぐらいしか思いつきません・・・

・画像を外部読み込みにする方法
 →すでに試していますがswfに画像を最初からはめこんでおくリンケージに比べると、
  ローディング時間の長さが比べ物にならないぐらい遅くなります。
  すばやい外部ファイル読み込みをする方法と言うのはあるのでしょうか。

・100種類の画像を100個の個別のリンケージのクラスに出すというのは
 考え方間違ってますでしょうか??
 パブリッシュの時間が異常にながくなって作業にならないぐらいです
686Now_loading...774KB:2010/02/25(木) 03:50:49 ID:bsvvdwbv
685です
色々ググッてみると、
BulkLoaderライブラリみたいに大量の外部ファイルを簡単に読み込める
ライブラリがあることがわかったんですが、
これって自分でLoaderで自作した複数外部ファイル読み込みと比べて
高速化が期待できるのでしょうか。

自分でやってる場合は、
一つの外部ファイルを読み込むごとにLoaderをnewして読み込んでいくという方法で
やってるので、複数同時という仕様にはなっていません。
Loaderの複数同時に並列読み込みって可能なんでしょうか
687Now_loading...774KB:2010/02/25(木) 07:17:39 ID:M0o3T16N
HTTPリクエストは全てブラウザ経由
あとは分かるな?
688Now_loading...774KB:2010/02/25(木) 07:19:58 ID:yxeXl8/G
ローカルの場合どうなるの?
689Now_loading...774KB:2010/02/25(木) 07:36:52 ID:n1+YtD+A
>>685

1.複数の画像を1枚にまとめリンクし、
 ランタイムで分割、BitmapMaterialを使用する

2.画像だけのswfを最適化無しでビルドし、
 ランタイムでそのswfを読み込む
 (最適化無しだったら5005でないかも)

3.たくさんのファイルを読み込むとオーバーヘッドが大きいので
 アーカイブしたものを読み込み、ランタイムで解凍する

思いつくのはこれくらいかなあ
690Now_loading...774KB:2010/02/25(木) 10:41:24 ID:FIR2y1Wv
685です

>>687
どういうことでしょうか?
ブラウザ経由だから重いってことですか

>>688
ローカルだとサクサクで、
外部画像でも一瞬で読み込まれます

>>689
目から鱗でした
1番の方法はすごくありだと思いました!
前に1枚物の画像をバラバラにうごかしたことあるので、
それをBitmapMaterialにしてみようと思います。

2番は、
swfをテクスチャで貼り付けれましたっけ・・・?
ト思ったらありました。
http://mtl.recruit.co.jp/blog/2008/04/papervision3d_swf.html
つまり、swf内に50枚分の画像の50個のリンケージ登録済みのswfを
読み込んでそれらを個別に読み出して貼りつけて行くということでしょうか?

3番
as3 zip libraryというのがあったんですね。
これだと1ファイルを読み込むノリでいけそうですね!!!

非常にアドバイスになりました!
ありがとうございました!!

691Now_loading...774KB:2010/02/25(木) 15:35:37 ID:Od52RLec
lite 1.1 使いのへッポコな俺が2.0に挑戦中なんですが
複数のmcをforとeval使って同時に動かしていたスクリプトの
翻訳につまってます。
どなたかご教授くださいm(_ _)m

lite 1.1だと・・・
for (i = 1; i < 9; i++) {
eval("/s/l" add i)._x += a;
}

2.0だと・・・???
692Now_loading...774KB:2010/02/25(木) 17:35:41 ID:4+Dd4Tpz
質問ですが、テキストフィールドに強制的にフォーカスを当てたりすることは
asでできますか?
同じswf内のほかのオブジェクト(ボタン等)をクリックすると当然フォーカスは外れると思うのですが、
そういう場合も強制的にテキストフィールドへフォーカスを戻したいのです。
何か方法があればご教示願いたいです。
693Now_loading...774KB:2010/02/25(木) 18:12:01 ID:2D1v4/Uc
外部FLVの再生後、別のキーフレームに移動するスクリプトについて質問です。
現在以下のようにスクリプトを組んでいるのですが、
「**Error** Scene=シーン 1, layer=actions, frame=1:Line 21: Syntax error.
Total ActionScript Errors: 2 Reported Errors: 2」
というエラーが出て、FLVを再生せずに指定したフレーム20まで飛んでいってしまいます。

-------------------------------------------
stop();

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);

netStream.onStatus = function (info) {
if (infoObject.code == "NetStream.Play.Stop") {
gotoAndPlay(20);
}


video.attachVideo(ns);
ns.play("1_1.flv");
-------------------------------------------

記述に足りない部分、また間違いなどありましたらご教授いただければ助かります。
よろしくお願いいたします。

作成環境はFLASH8 AC2です。

694Now_loading...774KB:2010/02/25(木) 19:18:37 ID:2D1v4/Uc
693です
スクリプトのサンプルをいくつか調べ組み合わせているうちに自己解決しました。
695Now_loading...774KB:2010/02/25(木) 19:18:43 ID:n1+YtD+A
>>690
>つまり、swf内に50枚分の画像の50個のリンケージ登録済みのswfを
>読み込んでそれらを個別に読み出して貼りつけて行くということでしょうか?
外部swfにリンケージとそれを返す関数だけ用意しておき、
本体からリンケージを呼び出し、外部swfにあるリンケージを取得、
なんてのを考えてました。swfだとコスト高そうですね。

>>693
this.s["l

>>692
stage.focus = textField;
696Now_loading...774KB:2010/02/25(木) 19:20:38 ID:n1+YtD+A
>>691
ごめん早漏しちた。
this.s["l"+i]._x += a;
かな? ちょっと自信ない。
ドットシンタックス でググってみてはどうでしょう。
697Now_loading...774KB:2010/02/25(木) 19:24:27 ID:n1+YtD+A
>>693
しかもレス番ちがいごめん。
21行目みてみようよ。
netStream.onStatus = function (info) {

netStream.onStatus = function (infoObject) {
ここじゃね?
698Now_loading...774KB:2010/02/25(木) 20:26:44 ID:Od52RLec
>>696
回答ありがとうございますm(_ _)m
その記述でもやってみたのですが、うまくいかなかったので無理に翻訳せず最初から書き直してみました・・・。
まだ2.0の基本も理解して無い上体でのつまづきだったので、
なにがどう間違っていたのかもわかりませんが
(変数を1文字だったものを2文字以上にしたら意図どおりにうごいたり・・・)
もう少し基礎をきちんと学ぼうとおもいました(泣
699Now_loading...774KB:2010/02/26(金) 11:44:29 ID:zVRitFKI
700Now_loading...774KB:2010/02/26(金) 17:50:34 ID:pYWGJ0mw
「ActionScript 3.0 : デザインパターン」って本良い?
今は「オブジェクト指向のこころ」と結城本で学習しているんだけど
ASに特化した本も必要かどうかと。
高いし尼のレビューだと誤字脱字がひどいらしいので悩んでる。
701Now_loading...774KB:2010/02/26(金) 18:28:09 ID:a7poYsus
>>699
音量がデカイし頭おかしいの?あんた?
702Now_loading...774KB:2010/02/27(土) 09:17:21 ID:XrCdu/wz
>>700
とりあえずGoF本をオススメしておきます。
http://www.amazon.co.jp/o/ISBN=4797311126
703700:2010/02/27(土) 14:01:44 ID:6EV0Mcnm
>>702
今の2冊がGoF本の解説本みたいなものなので、AS用のはどうかと
思っているんだよね。デザインパターン以外にASの学習としても役に
立つならいいかなと。
今のはJavaサンプルばかりだけど、クラスで違うのは抽象クラスが無いぐらい
だからAS用デザインパターン本にこだわる必要はないかなあ。。。
704Now_loading...774KB:2010/02/27(土) 15:27:37 ID:fsR/lcla
すんません質問です

mapっていう大きめのmcがあって、
map内にchar1とchar2というmcが配置されていて、
char1とchar2の距離に比例してmapを拡大縮小させるには
どうしたらいいですか?
705Now_loading...774KB:2010/02/27(土) 15:54:13 ID:gsrZfmHD
>>704
それぞれのcharのrectを合体させたrect(そんな機能があったはず)と
mapのrectとの大きさを比較して倍率を決めたらいかがか
706Now_loading...774KB:2010/02/27(土) 17:48:33 ID:+z9IgjdM
flashをスタンドアロンで吐き出します。
そのexeファイルは合計で40Mほどある複数の外部swfを読み込みます。
ローカル環境では外部swfを読み込むのにさほど時間がかからないのですが、
今回CDのため読み込むのにとても時間がかかります。
CDから一気に読み込むために、画面が停止していまい、見ているとPCが固まったのではないかと混乱してしまうようです。

そのため、起動時にパソコン画面のままのように見せて、読み込みの待ち時間をごまかそうかと考えています。
1.スタンドアロン起動時1×1で立ち上げ、外部swfを読み込み終了後フルスクリーンにする。
2.スタンドアロン起動時パソコンの画面外で外部swfを読み込み、終了後swfの位置をパソコン画面内に移動してフルスクリーンにする。

どちらの方法の方が現実的でしょうか?



自分で気がついている問題点として、
1の場合、「esc」を押すと1×1に戻るため、ステージサイズが小さくなってしまいます。ステージのサイズは変更できないですよね。
2の場合、そもそもスタンドアロンの立ち上げる位置を変更できるのか?
があります。
707Now_loading...774KB:2010/02/27(土) 17:59:30 ID:gsrZfmHD
>>706
exeってフラッシュのプロジェクタのことでしょ?
だとしたら2は無理だと思うよ。
708Now_loading...774KB:2010/02/27(土) 22:38:34 ID:RMF0M78K
誰かこのこにフラッシュ教えてあげて
時々乳首出すから
http://www.stickam.jp/profile/noguchiemi
709Now_loading...774KB:2010/02/28(日) 00:13:12 ID:9uLkHiDo
as 3.0を勉強しだしたばかりなので、変な質問かも知れませんが、アドバイス下さい。

やりたい事
7種類のmcからランダムに3つのmcを連続で再生したい

リンゲージでhoge1〜hoge7という連番のインスタンス名を付けてmcをライブラリに読み込むことが出来ました。

また、1〜7の数字から重複のない3つの数字の配列を作る事も出来ました。

つまづいているのはここからで、ランダムに生成した数字の含まれるmcを連続はおろか、再生させる事ができません。

どなたか検索ワードだけでも教えてもらえれば助かります。

よろしくお願いします。
710Now_loading...774KB:2010/02/28(日) 02:32:34 ID:NMJMxZvv
>>708
えみに教えても虚しいだけ
711Now_loading...774KB:2010/02/28(日) 23:41:07 ID:IM58j6Bq
AS2.0で二次配列のソートってできますか?
array = [
["ラムザ",10];
["デイリータ",5];
["アルガス",20]
];
みたいな配列だとしてLvの低い順にarrayを並べ替えたいんですが、どうすればいいか
わかりません
712Now_loading...774KB:2010/03/01(月) 00:47:47 ID:QBkqvXI4
>>711
_array=new Array();
_array.push({charaname:"ラムザ", charalevel:10});
_array.push({charaname:"デイリータ", charalevel:5});
_array.push({charaname:"アルガス", charalevel:20});
_array.sortOn("charalevel", Array.NUMERIC);

のようにしたほうがいい。
Array.NUMERICは16と書いてもオケ。
713Now_loading...774KB:2010/03/01(月) 00:55:04 ID:VgScawWo
ダブルクォーテーションつくの?
714Now_loading...774KB:2010/03/01(月) 00:59:02 ID:XAFAJAe5
>>709
リンケージでってことはクラス名につけたのかな。
動的にクラス名の付いたライブラリのアイテムをインスタンス化したいってことなら
ttp://f-site.org/articles/2008/01/17051234.html

>>711
こんなんどうだろう
var oldArray:Array = new Array(["ラムザ", 10], ["デイリータ", 5], ["アルガス", 20]);
var newArray:Array = new Array();
var tempArray:Array = new Array();
var count = oldArray.length;
for (i = 0; i < count; i++) {
tempArray.push({idx:i, val:oldArray[i][1]});
}
tempArray.sortOn("val",Array.NUMERIC);
for (i = 0; i < count; i++) {
newArray[i] = oldArray[tempArray[i].idx];
}
for (i = 0; i < count; i++) {
trace(newArray[i]);
}
715Now_loading...774KB:2010/03/01(月) 03:52:56 ID:KgBOWZpu
>>711
ほい、これだけでOK。
array.sortOn( 1, 16 );
716Now_loading...774KB:2010/03/03(水) 07:03:38 ID:DN/C/iAo
すいません。質問です。
CS4 AS2 win7を使って製作しています。
写真データーを読み込み表示するところまでは
できたのですが、消し方が解りません。
var f03:MovieClip=_root.createEmptyMovieClip("photoFrame03", 4);
f03._x=f02._x=190;
f03._y=f02._y=190;
var MCLoader:MovieClipLoader = new MovieClipLoader();
MCLoader.loadClip("photo02.jpg", f03);
ご指導おねがいします
717Now_loading...774KB:2010/03/03(水) 07:15:28 ID:B9M2atN7
違うオブジェクトの入った二次配列ってslice操作出来ないですか?
718Now_loading...774KB:2010/03/03(水) 07:29:52 ID:M4vsV4Vd
中身がなんでも関係無いと思う
正しくsliceしているならば
719Now_loading...774KB:2010/03/03(水) 08:14:57 ID:DN/C/iAo
>>716
無事解決出来ました。
720Now_loading...774KB:2010/03/03(水) 10:31:03 ID:F7dRjBDK
すみません!AS3で教えてください。
あるMovieClipの中に配置されているMovieClipに
順番にアクセスしたいのですができません。

var p:mcParent = new mcParent();

for each (var mcChild:MovieClip in p) {
trace(mcChild.name);
}

p(mcParent)を静的にステージなどに配置していると
foreachでアクセスできるのですが、上コードのように
動的に生成するとアクセスできないのです。。。
721720:2010/03/03(水) 10:43:04 ID:F7dRjBDK
すみません、若干訂正です!
mcParentをリンケージ設定していると、foreachで子要素にアクセスできません!
リンケージ設定していないとアクセスできます・・・
何故でしょう・・・
722Now_loading...774KB:2010/03/03(水) 13:25:58 ID:jPVvdTeK
723Now_loading...774KB:2010/03/03(水) 13:28:45 ID:vdybNwJQ
>>720
子オブジェクトは getChildAt で取得するんじゃないの?
for...in はいろいろと罠が多いから、
よくわからないなら、使わない方がいいよ。
724Now_loading...774KB:2010/03/03(水) 16:25:15 ID:B9M2atN7
for inって取得順番がめちゃくちゃだったりするよな
725Now_loading...774KB:2010/03/03(水) 17:29:26 ID:K3qNZYDd
flashでGoogleサイト内検索を利用したサイト検索機能を作りたいのですが、
ボタンにどのようなActionscriptを書けばよいのでしょうか
単純に下のようにフラッシュを作ったのですが、

[ここに文字    ][検索]

検索ボタンを押した後に、検索結果が乗ったGoogle検索のホームページに飛べればよいだけです
ちなみに、アクションスクリプトはド素人です・・・・
726Now_loading...774KB:2010/03/03(水) 17:42:58 ID:IiuvovAd
var search_text:String = テキストフィールドの文字を取得;
var search_url:URLRequest = new URLRequest("http://www.google.co.jp/search?hl=ja&q=" + search_text);
navigateToURL(search_url, "_self");
こんな感じ?
727Now_loading...774KB:2010/03/03(水) 18:15:55 ID:K3qNZYDd
>>726
var search_text:String... をテキストフィールドのフラッシュに、
var search_url:URLRequest... を検索ボタンに導入してみたのですが、まったく動きません
また、いい忘れていたのですが、恐らくASは1か2です。それが原因でしょうか?
728Now_loading...774KB:2010/03/03(水) 18:23:06 ID:w3xP7yo3
as3.0での質問
BitmapDataにlock()メソッドを使った場合、unlock()メソッドを使わない
限り描画された表示内容が反映されないと思ってたのですが違うのでしょうか?
実際にlock()だけしてBitmapDataに描画処理をしても表示内容が反映されてしまいます。
729Now_loading...774KB:2010/03/03(水) 18:57:29 ID:R4G2zD90
詳しく確認してないけど、lock()中は、
「BitmapDataを参照しているオブジェクトに、中身の変更が通知されない」
ものだと自分は理解してます。

毎フレーム更新時に行われる再描画を、
(BitmapData変更時のイベントの通知の影響で)
1フレーム中に何度もやり直すという無駄を省いているだけで、
次のフレームに移ったら、
そこで普通に再描画されるので変更は反映されると。
730Now_loading...774KB:2010/03/03(水) 19:07:53 ID:w3xP7yo3
>>729
なるほど、そういう仕様でしたか。
情報ありがとうございました。
731Now_loading...774KB:2010/03/03(水) 22:10:52 ID:T8iaTONz
test
732Now_loading...774KB:2010/03/04(木) 06:13:45 ID:GZmg9EdR
AS2にて4つのフラッシュボタンを作成し、それぞれにリンクを貼ろうとしています

onClipEvent (load) {
num = 1;
this.title1.gotoAndStop(num);
this.title2.gotoAndStop(num);
this.title3.gotoAndStop(num);
this.title4.gotoAndStop(num);
this.title5.gotoAndStop(num);
this.title6.gotoAndStop(num);
}
onClipEvent (mouseDown) {
getURL("***.html", "blank");
}

というスクリプトを各ボタンに張っているのですが、一つをクリックしただけですべてのボタンのリンクが発動してしまいます
(mouseDown)の部分を(release)に変更すれば、その問題は解決するのですが、カーソルを重ねた時のアニメーションが発動しません
どこが悪いのでしょうか・・・・・
733Now_loading...774KB:2010/03/04(木) 06:53:16 ID:UpEp+ts1
>>732
on(press) じゃなかったっけ?
AS2懐かしすぎる。
734Now_loading...774KB:2010/03/04(木) 08:29:30 ID:XO9ij4Wb
あるいはヒットテストを行う。
onClipEvent (mouseDown) {
 if (this.hitTest(_root._xmouse, _root._ymouse)) {
  getURL("***.html", "blank");
 }
}

onClipEvent(mouseDown)はマウスが押下されたとき、そのイベントハンドラを持つ全てのムービークリップがイベントを受け取る。
なので>>732だとボタン以外の領域をクリックしてもリンクが発動する(はず)。
対して、on(press)は指定されたインスタンス(この場合はボタン)が「押されたぞ」というイベントが、そのインスタンスだけに送られる。
735Now_loading...774KB:2010/03/04(木) 11:27:55 ID:5LGUjJtK
質問失礼します。
Box2Dを使用してみたく、ttp://sourceforge.net/projects/box2dflash/から最新のものをダウンロードしました
展開してHelloWorld.flaをパブリッシュすると以下のエラーが出ます。

b2World.as、行 871:
1046: 型が見つからないか、コンパイル時定数ではありません : Vector。
736Now_loading...774KB:2010/03/04(木) 11:33:26 ID:5LGUjJtK
質問失礼します。
Box2Dを使用してみたく、ttp://sourceforge.net/projects/box2dflash/から最新のものをダウンロードしました
展開してHelloWorld.flaをパブリッシュすると以下のエラーが出ます。

b2World.as、行 871:
1046: 型が見つからないか、コンパイル時定数ではありません : Vector。
public function RayCastAll(point1:b2Vec2, point2:b2Vec2):Vector.<b2Fixture>

b2World.as、行 917:
Warning: 3590: ブール値が必要ですが、void が使用されています。ブール式に型強制されます。
public function IsLocked():Boolean
return (m_flags & e_locked) > 0;
}
737Now_loading...774KB:2010/03/04(木) 11:33:44 ID:tq47Ju/N
>>735 自分の環境(Flashの何を使ってる、だとか FlashDevelopです、だとか)と、その使用バージョン、
他に何かやらなかったかなどを明記しないと
738Now_loading...774KB:2010/03/04(木) 11:33:50 ID:vVuWqrvK
flashplayer10ようのものとおもわれますのでcs4もしくはflexsdkをごりようください
739Now_loading...774KB:2010/03/04(木) 11:34:36 ID:5LGUjJtK
あーほんと重複すいません。。。
740Now_loading...774KB:2010/03/04(木) 11:38:37 ID:5LGUjJtK
ん、、なんか上手く書き込みできてないようです、すみません...。
環境は
Mac OSX 10.5.8
Flash CS4 Professional 10.0.2
ダウンロードしたファイルはひとまず/Users/user/Downloadsに展開しており、
これは特に問題ないと思います。
宜しくお願いいたしますー。
741Now_loading...774KB:2010/03/04(木) 12:13:12 ID:JzBqTAFq
twitterscriptでの認証は出来ないんですかね?
知ってる方教えてください
出来ればOauth認証がいいんですが
Basic認証でも構いません
サイトに飛ばずflashだけで処理したいんですが
742720:2010/03/04(木) 14:23:24 ID:ypkIGwTO
>>723
numChildrenとgetChildAtを使ってできました!
ありがとうございました。
743Now_loading...774KB:2010/03/04(木) 15:35:48 ID:XO9ij4Wb
744Now_loading...774KB:2010/03/04(木) 20:34:18 ID:88f/Rm4+
actionscript 2.0

ムービークリップ 「mc_1」があります。
数ピクセルほど離れて、隣にムービークリップ 「mc_2」があります。
「mc_1」と「mc_2」の間の「距離」を求めるActionScriptを組みたいと考えています。
どのような記述を行えば良いでしょうか?
745Now_loading...774KB:2010/03/04(木) 20:48:38 ID:x7syx67T
>>744
三角関数
746Now_loading...774KB:2010/03/04(木) 20:57:00 ID:88f/Rm4+
>>745
actionscript 三角関数  
で検索して、それらしいコンテンツをいくつか見つけました。

中学生から習うような、難しい解説がいろいろ…(汗
でも、1から10までご丁寧に解説してくれてるので、きちんと熟読すればなんとかなりそうかも。
とりあえず、頑張ってみたいと思います。
アドバイスありがとうございました。
747Now_loading...774KB:2010/03/04(木) 21:15:23 ID:JzBqTAFq
三角関数は高校からだろ?
748Now_loading...774KB:2010/03/04(木) 22:37:43 ID:x7syx67T
>>746
小学生なのか?
749Now_loading...774KB:2010/03/05(金) 01:28:25 ID:qGoXjnyh
750Now_loading...774KB:2010/03/05(金) 11:09:18 ID:rQU0ATQr
つーか距離を求めるのに三角関数と答える方もどうかと思うけどな
751Now_loading...774KB:2010/03/05(金) 13:34:50 ID:Wl/5T5rG
調べたのですがちょっと解決できなかったのでお願いします。

AS2です。
attachSoundで割り当てたサウンドオブジェクトの内容を参照するにはどうしたらいいのでしょうか?
752Now_loading...774KB:2010/03/05(金) 14:00:43 ID:kQLeEZHU
内容ってなに?
753Now_loading...774KB:2010/03/05(金) 14:29:30 ID:Wl/5T5rG
分かりづらくてすみません

例えば
_root.a01.attachSound("test01");
とした場合
_root.a01にattachされてる"test01"です。

複数の場所からattachSoundをかけているので、現在の割り当てを参照したいということです。
754Now_loading...774KB:2010/03/05(金) 15:05:08 ID:yqVsntKk
フラグでももたせたら?
755Now_loading...774KB:2010/03/05(金) 16:23:54 ID:2utDFadp
>>753
その設計見直したら?
756Now_loading...774KB:2010/03/05(金) 18:45:22 ID:Wl/5T5rG
そうですかぁ。やり直した方がよさそうですね。
直接参照は出来ないみたいですね。
757Now_loading...774KB:2010/03/05(金) 22:46:32 ID:qGoXjnyh
0〜1の乱数で1になるにつれて確率が増してく分布の乱数はどのようにしたらできますか。
x軸に出る値、y軸に出現頻度をとったとき
Math.random()をy=1(ってか定数)の式とするとy=xの式みたいなやつです
758Now_loading...774KB:2010/03/05(金) 23:03:13 ID:ikDRkKEs
var n=Math.random();
trace(1-n*n);

って、どうよ。
のみすぎちゃったかな。
759Now_loading...774KB:2010/03/06(土) 02:34:31 ID:uOR67IiV
Math.sqrt(Math.random());
760Now_loading...774KB:2010/03/06(土) 23:11:14 ID:ALlzH0hY
AcitonScriptを書くツールってFlexがいちばん人気あるの?
761Now_loading...774KB:2010/03/06(土) 23:20:33 ID:kOYD3mPu
developerちゃんも忘れないで!
762Now_loading...774KB:2010/03/06(土) 23:20:41 ID:yHvsxxEG
>>760
無料ならFlashDevelopもいいよ
763Now_loading...774KB:2010/03/06(土) 23:47:02 ID:ALlzH0hY
おお、ここでいろんな人があげてるやつか
ttp://level0.kayac.com/2009/10/flash3tool_band.php
764Now_loading...774KB:2010/03/07(日) 16:14:01 ID:1BSv3yAM
ActionScriptの質問とはちょっと違うんですけど、
勉強にFlashに最初から入ってるクラスファイルを覗いてみたいと思ったんですが、
flash.display.DisplayObjectとかのクラスファイルはパソコンのどこにインスコされてるんでしょう?
というかそもそも覗けるんでしょうか。
765Now_loading...774KB:2010/03/07(日) 16:14:56 ID:1BSv3yAM
>>764
言い忘れました。
Mac OSX、Flash CS3、ActionScript3のクラスファイルを見たいと思ってます。
766Now_loading...774KB:2010/03/07(日) 22:02:33 ID:N3JF15pK
検索すりゃわかるんじゃね
767Now_loading...774KB:2010/03/08(月) 14:46:09 ID:Hm4GT9EW
>>764です。
>>766
検索しても出てこないんです。
それっぽいのはいくつかあったんですが、中身見ると全然違うものでした。
大もとがあると思うんですが、それは見つからないんです。
768Now_loading...774KB:2010/03/08(月) 14:48:15 ID:NMJSoDvw
ActionScript3.0でNumber型より大きい数を扱うにはどうしたらいいでしょうか
Number型は53bitですが64bitまで使いたいのです
var x:Array = new Array(199,2939,299,232,234,2234,234,243,222);
var y:Number = 0;
for( var i:int = 0 ; i < 8 ; i++ ) {
y = ( y << 8 ) | ( 2 * (x[i] & 255 )) ;
// 最後で溢れてyが0になってしまう
}
769Now_loading...774KB:2010/03/08(月) 15:51:13 ID:tIqpRvuA
>>768
自分でbigIntとかbigFloatとか作るしか無いんじゃねーの
770Now_loading...774KB:2010/03/08(月) 16:21:32 ID:ePPZlWf6
com.hurlant.math.BigInteger
771Now_loading...774KB:2010/03/08(月) 17:32:40 ID:lq7GGBFx
>>768
ASでデカイ浮動小数点計算をやって大丈夫かいな?
まあ、変数とか解法次第だけど。
772Now_loading...774KB:2010/03/08(月) 18:50:06 ID:fRxFAxGs
http://solanin-movie.jp/このようなプロモーションサイトのように、swfファイルをブラウザ内で最大化して表示するためには
どのような記述をすればいいのでしょうか?

Adobe CS3,AS3.0です。
773Now_loading...774KB:2010/03/08(月) 19:43:50 ID:yPKKgavW
HTMLのタグでwidthとheightを100%
774Now_loading...774KB:2010/03/08(月) 21:29:43 ID:R5hAW3Rq
>>767
環境設定のクラスパスからしてたぶん
/Applications/Adobe Flash CS3/Configuration/ActionScript 3.0/Classes/
の中のどれかじゃね
.as形式であるのかはわからん
775Now_loading...774KB:2010/03/08(月) 23:26:40 ID:rgRwD5v4
Cairngorm について質問なのですが、
Flexのサンプルで使われていたのと、使うときれいにできそうに見えたので、
探してみたのですが、あまり見つかりませんでした。
実際には、あまり使われていないのでしょうか?


776Now_loading...774KB:2010/03/09(火) 18:17:09 ID:TGtEjoed
flvをavi等に変換するasなんてないよね?
777Now_loading...774KB:2010/03/09(火) 18:29:34 ID:1nsYG3x/
そもそもFlashでやるものなのか?
778Now_loading...774KB:2010/03/09(火) 22:00:10 ID:eLwxOmgW
ASでやる意味が全く内
普通はffmpegや、それにガワを被せたものを使う
779Now_loading...774KB:2010/03/09(火) 22:03:27 ID:zTOVe/3Z
普通で満足するような男にはなりたくないな
780Now_loading...774KB:2010/03/09(火) 22:11:02 ID:uiAMMXmq
バイナリ扱えるようになったから頑張れば出来そうな気もする
781Now_loading...774KB:2010/03/09(火) 23:01:06 ID:vcDRAHMy
質問です、
setIntervalを使って5秒ごとにフレームを変えるスクリプトを
入れてみましたが、最初は5秒で問題ないのですが。だんだん加速して終いには
Flashが重くなりフリーズします。

どうすればいいのでしょうか?
782Now_loading...774KB:2010/03/09(火) 23:05:29 ID:zTOVe/3Z
setIntervalは一回指定すると繰り返し実行される
setTimeoutが一回のみ実行される
783Now_loading...774KB:2010/03/09(火) 23:22:23 ID:KeBWrDR/
>>781
setIntervalが重複して定義されてたりするんじゃないの?
問題の部分と思われる箇所のASさらしてみたら?
784Now_loading...774KB:2010/03/09(火) 23:33:55 ID:7LtDnb1S
setIntervalを使ってる関数をsetIntervalで呼び出してる、って感じかな
785757:2010/03/09(火) 23:59:10 ID:dgLxgYRI
>>758-759
ありがとうございます。
>>758さんのは残念ながら期待した結果にはなりませんでしたが
>>759さんのは期待通りのができました。
あとランダム二個作って足し合わせるのも期待通りになりました。
いろんな確率分布を出せる式をまとめたものはないのかなー
786Now_loading...774KB:2010/03/10(水) 00:55:18 ID:EfrrjbRr
787Now_loading...774KB:2010/03/10(水) 14:22:11 ID:sEZOYvzO
ActionScript3.0でPerlやPHPのcrypt関数と同じ暗号化するモジュールってないですか
788Now_loading...774KB:2010/03/10(水) 14:46:29 ID:rcyJN2VJ
as3 crypt
789Now_loading...774KB:2010/03/10(水) 20:42:55 ID:pc0M30nA
インターフェイスって具体的にどんな時に使うのでしょうか?
クラスが何か分からない時にメソッド名を指定する状況…?
790Now_loading...774KB:2010/03/10(水) 21:29:19 ID:rcyJN2VJ
>>789
使い方は色々あると思うけど、
多重継承が出来ないから、親子関係にないクラスで共通の機能(メソッド)を持ちたい時とか。
同じ機能を持っているけど、中の実装が全然違う時とか

あんまりいい例が思いつかなかった・・
function destroyObject(obj:IDestroyable)
{
obj.destroy();
}

まぁ、続きはデザインパターン本でどうぞ
791Now_loading...774KB:2010/03/10(水) 22:08:41 ID:FAezWQnD
>>789 もっと平たい言い方で追記すると、例えばオブジェクト同士のやりとりの中で、
ある約束だけを取り決めたい時に使う。

「こういう引数を受けて、こういう結果を返す、こういうメソッドですよ」 という約束
そういう、やりとりの約束、つまりインターフェースを取り決めるものなので、
まんま interface として宣言する。

これは、あくまでやりとりの約束だけなので、実際に中でどういう処理がされているかは問わない。
例えば、「URLを受け取って、文字列を返すメソッド」 を決めたとする。

実際の実装では、メソッドの中で本当にネットワークに接続するかもしれないし、
あるいは接続したふりをしてどこかから文字列を取り出してるかもしれない。
でもそんな中の事情は、そのメソッドを 「使う側」 からしたらどっちでも構わない。
ただそこに、やりとりの約束だけあればよく、 その約束を守っているオブジェクトであるなら、
どのクラスであっても構わない。

そういう時に使う。
792Now_loading...774KB:2010/03/10(水) 22:14:01 ID:FAezWQnD
>>791 の例
※ゴメン、Javaでの表記になるけど許して。AS3でも読み替えれば考え方は同じ

public interface IStringGetter {
 public String iStringReader(URL url);
}

public class NetworkStringGetter implements IStringGetter {
 public String iStringReader(URL url) {
  // ネットワークから取得して返す
 }
}

public class DummyStringGetter implements IStringGetter {
 public String iStringReader(URL url) {
  // 適当な文字列を生成して返す
 }
}

利用側は、

IStringGetter obj1 = new NetworkStringGetter();
IStringGetter obj2 = new DummyStringGetter();

obj1 も、obj2 も、 IStringGetter として同じように "扱える"
793Now_loading...774KB:2010/03/10(水) 22:37:31 ID:5Fcu/oXt
質問です。
入力テキストフィールドが、FireFoxで開くと文字化けします。
例えば「あ」が「0B」となります。

環境はwinXP、CS4、AS3.0、FireFox3.6です。
HTML内のwmodeは空欄にしてみましたが直りません。

どうしたらよいでしょうか?
794Now_loading...774KB:2010/03/10(水) 22:46:53 ID:rcyJN2VJ
>>793
input textにデフォルトで日本語入れてみたけど、再現出来なかった
テキストはどこから取得?
あとフォントとかは指定してる?
795Now_loading...774KB:2010/03/10(水) 23:30:16 ID:fmqZk90i
>>794
テキストは取得するのではなく、ブラウザからの入力です。
日本語を入力してエンターキーで確定すると、化けます。
フォントの指定はActionScriptではしていません。
HTMLのフォントはシフトJIS、UTF-8両方試しましたが、同じ結果でした。
796793=795:2010/03/10(水) 23:34:50 ID:fmqZk90i
同じ環境の他のFireFoxでは化けないことが分かりました。
私のFireFox固有の問題かもしれません…。
797Now_loading...774KB:2010/03/11(木) 00:36:41 ID:8d5QecIW
>>796
wmode=transparentで文字化けは確認出来た
調べたら普通はwmodeを無指定かwindowで大丈夫なはず
flashプレーヤーのバージョンが関係するのかも
798793:2010/03/11(木) 22:56:27 ID:XdBrsXMu
>>797
ありがとうございます。
wmodeの修正で文字化けが直るFirefoxと、直らないFirefoxがありました。
引き続き模索してみます。
799Now_loading...774KB:2010/03/12(金) 20:13:33 ID:adXZwlCb
ローカルの画像をサーバーへアップロードするプログラムを書いています。
選択したファイルのローカル上の絶対パスを取得するにはどうすれば良いでしょうか?
一通り調べてみたのですがわかりませんでした。
ご教示お願いします。

環境:
Mac OSX 10.5.8、Flash CS4
800Now_loading...774KB:2010/03/12(金) 20:16:25 ID:Yl8dmOyr
できまへん
801Now_loading...774KB:2010/03/12(金) 20:43:37 ID:adXZwlCb
>>800
ありがとうございます。
やっぱりそうなんですか〜。。
802Now_loading...774KB:2010/03/12(金) 23:24:48 ID:nDANSJsD
TextFieldでembedFonts=true指定して、埋め込みフォントで表示した場合
TextFieldのではなく、フィールドの中に描画された文字の左上始点(描画文字一文字目の左上の座標)
を取得する方法はありますでしょうか?
描画文字された文字のwidth・heightはtextWidth・textHeightで取得できたようですが・・・
803Now_loading...774KB:2010/03/12(金) 23:48:59 ID:Yl8dmOyr
やったことないけど
textField.getBounds()
でどうかな
804Now_loading...774KB:2010/03/13(土) 00:24:02 ID:43RGaTbu
PHPのページへ、変数をPOSTしながらそのページに転送(ジャンプ)することはできるでしょうか?
805Now_loading...774KB:2010/03/13(土) 00:28:13 ID:JlRIZel6
できまへん

でもJavaScriptを駆使すればいける
806Now_loading...774KB:2010/03/13(土) 00:29:43 ID:43RGaTbu
>>805
ありがとうございます。
GETで我慢します。
807Now_loading...774KB:2010/03/13(土) 05:25:49 ID:myXX98Dk
配列を結合するみたいに

obj1 = {data1:hoge, data2:hoge}
obj2 = {data3:hoge}

上のような2つのオブジェクトを結合して下のようにすることはできますか?

obj3 = {data1:hoge, data2:hoge, data3:hoge}
808Now_loading...774KB:2010/03/13(土) 06:34:40 ID:C0CPFLpY
AS2でattachMovieの際に、インスタンス名にリンケージ名と同じ名前をつけていいんですかね?

test_mc.attachMovie("TEST01", "TEST01", 4);
みたいな。何か問題が起こるんでしょうか?
809Now_loading...774KB:2010/03/13(土) 08:32:29 ID:4yYEyZOJ
>>808
気をつければだいじょうぶだよ。
できれば違う名前がおすすめ。
同じ名前のやつがいるとめんどくさいでしょ。
810Now_loading...774KB:2010/03/13(土) 09:25:57 ID:C0CPFLpY
>>809
ありがとうございます。助かりました。

> できれば違う名前がおすすめ。
> 同じ名前のやつがいるとめんどくさいでしょ。
なるべくそうしているつもりなんですが、増えてくると面倒くさくなってしまってw。
811Now_loading...774KB:2010/03/13(土) 13:30:30 ID:JlRIZel6
>>807
そういう機能ないから
自分で関数作るしかないかな
812Now_loading...774KB:2010/03/13(土) 20:04:57 ID:2jEpkgb/
コーポレートサイトのトップページによくあるFLASHで、
画像がスライドしながら切り替わっていったりするのがありますが、
そういうのもActionScriptで書けるんでしょうか?
たとえばこういうのとか。
ttp://www.e-levi.jp/
813Now_loading...774KB:2010/03/13(土) 20:08:21 ID:Ja3jej+B
ポートレートちゃいまんのん
814Now_loading...774KB:2010/03/13(土) 20:20:32 ID:LwNervVG
>>812
このぐらいなら10日ぐらい頑張って勉強すれば
タイムライン使わず全部ASだけで書くぐらいできるようになるよ
815Now_loading...774KB:2010/03/14(日) 13:51:31 ID:OPH+1MRu
どなたかお知恵を貸してください。

HTTPServiceを使用して任意のサーバにパラーメータをPOSTで送って
その結果をもとに処理を行うというプログラムを書きました。
↓こんな感じのプログラムです。

<mx:HTTPService id="service"
url="http://hoge.jsp" result="hoge2(event)" method="POST" />

function hoge2(event:ResultEvent):void{
//何がしかの処理
}

通常は正常にhoge2が実行されるのですが、たまにエラーが出ます。

エラーの内容は
「ReferenceError: Error #1069: String にプロパティ ○○ が見つからず、
デフォルト値もありません。」
といった内容です。

なぜこのようなエラーが出るのでしょうか。
エラーが出ないようにうまく処理するにはどのようにすればよろしいでしょうか。

どうかよろしくお願いします。
816Now_loading...774KB:2010/03/14(日) 14:06:37 ID:DuI1IYzy
Firefoxのみでの現象なのですがAS2.0でSendAndLoadを行う事にどんどん重くなって言ってしまいます
これは何が原因なのでしょうか回答宜しくお願いします
817Now_loading...774KB:2010/03/15(月) 03:57:52 ID:s8RK7REP

flvPlayBackを利用してflvビデオを5本ほど読もうとしています。
ムービーウィンドウは一つだけで、
その中の動画が5つのボタンそれぞれを押すことで、切り替わる仕様です。

問題になっているのは、一つの動画をローディングしだした際に、
別の動画再生ボタンを押すと、音だけが残ってしまう現象がおきてしまいます。

ローカル上だと、その現象は起きません。
なにやら、ウェブ上だと、最初の読み込み時に一瞬、固まっている?ような
読み込みをがんばっている状況があるようで、そのタイミングで別の動画に切り替えると、後発で一つ前の動画の音だけが再生されてしまうようです。

ローカルの場合は、すでにflvが読み込まれているから、
その隙間のタイミングが発生しないので、そのエラーが起きないみたいです。

flvPlayBackオブジェクトに、nullを代入しても効果がないようです
また、そのflvPlayBackオブジェクトをremoveChildしても、見た目は消えますが、
音だけは残ります。
確実にロードを中止して、
ガベージコレクションに拾われる方法はないでしょうか??
818Now_loading...774KB:2010/03/15(月) 04:08:54 ID:zU3SaoBj
>>817
flvPlayBackは使った事ないけど、ネットストリームをcloseすれば大丈夫だと思う
そしてこれで出来ると思われる
ttp://www.onmyownlife.com/blog/2008/03/flvplayback-netstream.html
819Now_loading...774KB:2010/03/15(月) 16:05:36 ID:5tihimEy
>>818
817です
完璧です 完全にシャットダウンできました!
ありがとうございました
820Now_loading...774KB:2010/03/15(月) 17:29:08 ID:EXkQZog0
質問させてください。
パスワードをPHP側へPOSTして認証を得るユーティリティクラスを作成しています。
認証するところまでは良いんですが、PHPからの戻り値を呼び出し側のクラスで「即座に」取得する方法が分かりません。
以下主要部分だけ抜粋です。

//パスワードとパスを受け取って送信するメソッド
public function authenticate(password:String, url:String):void {
if(_pass) { //クラス内のstatic変数
trace("認証済み");
return;
}

var _value:URLVariables = new URLVariables();
_value.pass = password;

var _urlReq:URLRequest = new URLRequest(url);
_urlReq.method = URLRequestMethod.POST;
_urlReq.data = _value;

var _ldr:URLLoader = new URLLoader();
_ldr.dataFormat = URLLoaderDataFormat.VARIABLES;
_ldr.addEventListener(Event.COMPLETE, completeHandler, false, 0, true);
_ldr.load(_urlReq);
}

//PHPからの戻り値を受け取る
private function sendCompleteHandler(event:Event):void {
var _returnedValue:URLVariables = new URLVariables(event.target.data);
trace(_returnedValue.returned);
event.target.removeEventListener(Event.COMPLETE, completeHandler);
}
こういう場合の常套手段などありましたらご教示ください。
821820:2010/03/15(月) 17:31:04 ID:EXkQZog0
最後のsendCompleteHandlerはcompleteHandlerの間違いです...
よろしくお願いします。
822Now_loading...774KB:2010/03/16(火) 11:05:05 ID:y39AscWm
Tweener.addTween(mc5, {x:mcx[0], y:mcy[0],scaleX:2,scaleY:2,time:1,transition:"liner",delay:0.5});
で2倍に拡大するのはできるんだけど中心の位置から拡大はできないのかな?
これだと左上からしかできないだけど
だれか教えて
823Now_loading...774KB:2010/03/16(火) 11:29:14 ID:ST52YJN/
824Now_loading...774KB:2010/03/16(火) 11:31:06 ID:VxbSCOM4
as2でボタンの関数作っています。
それで困っていることがonReleaseのときのiが全部8になってしまいます。
1〜7の値が欲しいのですがどうすればいいでしょうか?

function btnSet():Void {
for (var i = 1; i<=7; i++) {
_root.gnav["btn_"+i].onRelease = function() {
_root.gotoAndStop(10*i)
};
}
}
825Now_loading...774KB:2010/03/16(火) 12:24:36 ID:DDrSjKT2
>>824
iの値は保持されていないので、別途_root.gnav["btn_"+i]に変数として持たせるか
ボタンの名前から数字を判断させるかなどする。
826Now_loading...774KB:2010/03/16(火) 13:35:18 ID:ST52YJN/
>>824
これは、i のスコープが for 内でなく関数 btnSet() スコープだから。
というわけで for 内スコープを with で作ってやれば OK。
for (var i = 1; i<=7; i++) {
 with({ i:i }) {
  _root.gnav["btn_"+i].onRelease = function() {
   _root.gotoAndStop(10*i)
  }
 }
}
もっと素直に、with の中身を別関数にしてやるのでも OK。
C とかやってる人ははまりやすいよね。

# AS2 って無名関数使えないんだっけ?
827Now_loading...774KB:2010/03/16(火) 20:31:45 ID:9uDmDpwV
なんでそんな仕様なんだろ
スコープ広くとっても良い事ないのに
828Now_loading...774KB:2010/03/16(火) 21:06:52 ID:ST52YJN/
>>827
関数もオブジェクトだからじゃない?
829Now_loading...774KB:2010/03/16(火) 21:48:17 ID:VxbSCOM4
>>825 >>826
変数持たせてできました。
理屈は理解できたのですがwithだとうまくいきませんでした。
ありがとうございました。


830Now_loading...774KB:2010/03/17(水) 00:21:34 ID:6kFB/ghR
As3でパブリッシュに1分半ぐらいかかるとんでもない状況になってます。

なにが原因なのか考えていますが、普通なにがパブリッシュの時間を長引かせる原因となるのでしょう?
以下の二つぐらいでしょうか?

・importしてるクラスの数が多すぎる
・Flashのライブラリのリンケージから作ってるオブジェクトが多すぎる

特に、papervision3dなどのライブラリはやっぱり、読み込んでいくと
重たくなっちゃうんでしょうか





831Now_loading...774KB:2010/03/17(水) 00:26:00 ID:gjacGQiM
フォントの埋め込みと動画が一番時間かかるかな
画像とかも毎回圧縮してると思うから、画像が多くても遅いかも
832Now_loading...774KB:2010/03/17(水) 00:37:48 ID:FRvrApid
AcitonScriptってなにを見て勉強すればいいの?
833Now_loading...774KB:2010/03/17(水) 00:45:17 ID:gjacGQiM
ttp://hakuhin.jp/as3.html
ttp://codezine.jp/article/detail/627

「as3 ゲーム」で検索すると結構でる
プログラミング初心者なら本買ったほうがいいのかもしれんが。
834Now_loading...774KB:2010/03/17(水) 01:43:50 ID:7pedOzq4
他のOOな言語知ってりゃ違うところだけ押さえればいいけど
最初からだったらやっぱ入門書買うべきだろうよ
835Now_loading...774KB:2010/03/17(水) 01:57:23 ID:0w5G9L7J
久しぶりにレスする

>>830
papervision3d込みのパブリッシュは確実に重くなる



>>832
お薦めの本
「基本からしっかりわかるActionScript 3.0」(森 巧尚 著) 毎日コミュニケーションズ
「一週間でマスターする ActionScript 3.0」(クジラ飛行机 著)毎日コミュニケーションズ

毎日コミュニケーションズは良書が多い。
836Now_loading...774KB:2010/03/17(水) 02:17:57 ID:GuUdXyo3
>>820ですが、
今のところPOST用クラスに戻り値をBooleanで返すメソッドを設けて、
それをメインのクラスからTimerで監視し、trueが返って来た時点でTimer.stop()する
という感じでやり過ごしてます。
もの凄く不細工な実装だと思うんですが、こんなもんでしょうかね。。
837Now_loading...774KB:2010/03/17(水) 02:32:34 ID:gjacGQiM
>>836
よくわからないんだけど、たとえば
var isLogin:Boolean = authenticate(password, url);
if (isLogin) {
//認証後の処理
}
みたいにしたいってこと?

ASは基本的にそういうのできないから、そういうクラスを実装するとしたら

public function authenticate(password:String, url:String, callback:Function):void {//コールバック関数を追加
//省略
private function sendCompleteHandler(event:Event):void {
var _returnedValue:URLVariables = new URLVariables(event.target.data);
event.target.removeEventListener(Event.COMPLETE, completeHandler);
callback(_returnedValue.returned);//コールバック関数に結果を渡して呼び出し
}

//呼び出し側
AuthClass.authenticate(password, url, onComplete);
function onComplete(result:String)
{
//その後の処理
}

な感じかな
838820:2010/03/17(水) 02:40:19 ID:GuUdXyo3
>>835
2冊目の方は避けたいとこだなあ。
中途半端で逆に混乱しそうな印象を受けた。
ちゃんと身につけるならやっぱりColin氏のオラ本は読んでおきたい。

>>832
というわけで、全くの初心者なら
・Adobe Flash CS4 詳細!ActionScript3.0入門ノート(ソーテック) - 大重美幸
・ActionScript3.0 プロフェッショナルガイド(マイコミ) - 中野文雄

ある程度OOPの概念が分かっていれば
・詳説 ActionScript 3.0(オライリー) - Cilin Moock
・Javaのデザパタ本やphpに手を出してみる
・国内外のFlasherブログを隈なくチェック

など、個人的にお薦め。
でもまあ、結局は自分のチョイスです。

それにしてもFlashCamp感動的だったなー
839Now_loading...774KB:2010/03/17(水) 02:41:05 ID:GuUdXyo3
うわ、名前入ったままだった。。
840Now_loading...774KB:2010/03/17(水) 03:00:28 ID:GuUdXyo3
>>837
ありがとうございます!
そのものズバリ、でした。
コールバック関数、、何で思い付かなかったのか。。
全然修行が足りないですね、精進します。
とにかく感謝です!
841Now_loading...774KB:2010/03/17(水) 04:28:51 ID:FKBOoSmT
今までタイムライン派だったのですが、
シーン数が多くなりそうなので、
配置したボタン内のアクションにシーン名を読み込んで
ムービークリップ制御しようと四苦八苦中です。
AS3は初めてなのでだいぶ適当だと思いますが、
「i001」というクリップの中のインスタンス「p001」を動かすよてい。

on (release) {
tellTarget ( "/i"+ {
public function get name() :String
return _name;}
+ "/p001"){
nextFrame();
  }
}
public function get name() :Stringに ':' が必要です。
+ "/p001"){ にシンタックスエラー
が出てしまいます。
いろいろやっているものの進みません。
そもそも構造が…ということかもしれませんが、どこが間違っているのでしょうか。
物凄い勢いでお導きください。。この時間に。。
842Now_loading...774KB:2010/03/17(水) 04:40:03 ID:EB7ITWkW
基本から勉強しましょう
843Now_loading...774KB:2010/03/17(水) 04:49:06 ID:GuUdXyo3
すんません、>>838訂正。ひどい間違い。

× 中野文雄
○ 野中文雄

× Cilin
○ Colin

基本からやり直します。
844Now_loading...774KB:2010/03/17(水) 10:26:33 ID:ksmvA4CZ
>>841
なんか もうAS2でもよくね
845Now_loading...774KB:2010/03/17(水) 11:51:42 ID:gjacGQiM
>>841
なんか答えようとしたら頭が痛くなったw
これはもう勉強しなおせとしか言えないな
846Now_loading...774KB:2010/03/17(水) 12:05:14 ID:8CwpGW3i
>>841
なんで今更TellTargetとかなってるのかわからんが、
たいしたことやらんなら、そのままAS1だかAS2でいいんじゃね?
つか、どっちにしてもまずシーンやめろ。

現状、数字の読み方もわからない人が中学の数学やろうとしてる感じなので
まずは基本から勉強したほうがいーです。
AS3とそれ以前は別物なので、勉強するならどちらかに絞らないと混乱するよ。
847Now_loading...774KB:2010/03/17(水) 12:17:33 ID:00CJgeZH
>>838
FlashCampってTwitterの中での話題のこと?
848Now_loading...774KB:2010/03/17(水) 14:36:16 ID:FKBOoSmT
やべー、AS3てスクリプトを別ファイルで作るんかいな。
今までAS1からAS2って機能追加程度だったのに
AS3からはまったく別もんじゃん。
ASバージョン変えたら全編早送りになってビビったw ほとんど作り直しだー。
無理な質問してた様ですんませんw
849Now_loading...774KB:2010/03/17(水) 15:22:02 ID:qI+WGhUQ
バージョンごとの定義がややこしいがAS2からクラス使える。
Flash4 ( タイムライン ) →AS1 ( prototype )→AS2( クラス )→AS3 (クラス)
となってきてるからAS2とAS3は違いは大きいが開発手法はかなり近い。
AS1やFlash4のスクリプト込みでAS2と言う人が多いけど混ぜない方が分かり易いと思う。
850Now_loading...774KB:2010/03/17(水) 16:50:05 ID:RYMgceoE
ここが適切なスレかどうか分かりませんが。
Adobe Flash CS~とAdobe Flexの違いを教えてください。
851Now_loading...774KB:2010/03/17(水) 16:55:36 ID:sNYdcj0C
FLASHはデザイナ向けで直感的に操作できるFlexはプログラマ向けでほとんど全てプログラムで作成する
852Now_loading...774KB:2010/03/17(水) 17:02:44 ID:yZ4/JUXY
http://labs.adobe.com/technologies/textlayout/
にあるサイトのしくみをわかる人いません?
Tweenerを使ってと思うのですがどうも6つの窓が1つにあつまって元の大きさになるところが
よくわからないのですが?(右下のボタンを押すとなる)
なにか3次元ぽい拡大してそうだし
(単に窓が拡大してるとは思えないのですが)
作ってみたけどいまいちしっくりときません
わかる人いますか?
853Now_loading...774KB:2010/03/17(水) 17:05:33 ID:RYMgceoE
>>851
なるほど。大変分かりやすい回答どうもありがとうございます。
C言語に飽きてきて新しいことを始めてみようと思っていたところなのでFlexを使ってみようと思います。
854Now_loading...774KB:2010/03/17(水) 17:07:07 ID:sNYdcj0C
>>852
右クリックして拡大押してみ
ただの画像で集まってるように見せかけてるだけ
855Now_loading...774KB:2010/03/17(水) 17:11:37 ID:gjacGQiM
>>852
各ウィンドウを画像として、
画像のscaleを0.1か0.2くらいにして並べる
クリックした画像の位置にTweenerを使って集合させる
集合アニメが完了したら今度は一番上の画像のscaleを1までアニメーションさせる
多少の位置調整も必要かな

856Now_loading...774KB:2010/03/18(木) 09:45:37 ID:qlAu9pKB
852のサイトだけど右下のボタンを押したときは
1箇所に集まるのはMovieClipじゃない?
画像(JPG)じゃないと思う。
Tweenerを使って拡大するのが
少し難しい。真ん中なら中心から拡大しなければ
ならないし右下端なら右隅を中心に拡大しなければならない。
Tweenerなら左上から下に向かってしか拡大できない。
857Now_loading...774KB:2010/03/18(木) 09:55:44 ID:qEWqrMOx
んなこたぁない
858Now_loading...774KB:2010/03/18(木) 10:03:03 ID:kwi5JsH1
拡大するとともに座標変えれば
859Now_loading...774KB:2010/03/18(木) 10:39:06 ID:qlAu9pKB
Tweenerは左はしからscaleX,scaleYでしか
拡大できないはずだが
860Now_loading...774KB:2010/03/18(木) 10:58:59 ID:Oy0I/MkT
>>859
スケールと同時にxとyのプロパティを0へ変化させればいいだけ
861Now_loading...774KB:2010/03/18(木) 17:37:10 ID:qlAu9pKB
flash Cs4のエディタは使いにくい。
なによりも文字が小さすぎ。
変更できないのか?
それともメモ帳でコピペを推奨しているのか。
セミコロンとコロンが区別できないw
862Now_loading...774KB:2010/03/18(木) 17:49:16 ID:qEWqrMOx
お前の頭が残念すぎるだけだろ
863Now_loading...774KB:2010/03/18(木) 17:59:40 ID:RX1/xeNt
>>861 Flash内のエディタは昔から、そんなに使いやすいもんじゃないので、
俺はずっと他のフリーのテキストエディタなどで書いてからコピペしてた
そのままテキストで保存しといて後で見たりも出来るから、何気に便利。

それ以外だと、FlashDevelop のエディタは文句の無い仕上がり。
#全然まったく無いって事は無いが、Flash製品のエディタに比べたら雲泥の差

864Now_loading...774KB:2010/03/18(木) 18:37:50 ID:r9IuE227
CS4のエディタ使ってコード書いてる人は恐らくほとんどいない。
865Now_loading...774KB:2010/03/18(木) 18:46:59 ID:qlAu9pKB
だからなんで修正しなんだろう?
もうバージョンアップ何回もしているのに?
そんなに手間がかかるのか?それとも技術力がないのか?
adobe に聞きたい
866Now_loading...774KB:2010/03/18(木) 18:51:32 ID:Oy0I/MkT
聞く努力はしたのかよ
867Now_loading...774KB:2010/03/18(木) 18:52:43 ID:6kDYJQoS
2010-03-18T17:00:00.00 という時間を、よけいな記号をとり
2010031817000000 という数字だけで表示するにはどのようにすれば
よろしいでしょうか?
substrで地道に抜き出したりするしかないですか?
replaceは使い方がわかりませんでした泣
868Now_loading...774KB:2010/03/18(木) 19:12:39 ID:qlAu9pKB
性器表現だとおもう
869Now_loading...774KB:2010/03/18(木) 19:17:04 ID:TOtYCIN7
>>867
正規表現で数字以外を空文字で置き換えるとか
"2010-03-18T17:00:00.00".replace(/\D/g, "");
870Now_loading...774KB:2010/03/18(木) 20:07:11 ID:lDS+JUl6
CS4のエディタでコード書いてますがなにか?
871Now_loading...774KB:2010/03/18(木) 20:10:27 ID:Oy0I/MkT
なにか?
872Now_loading...774KB:2010/03/18(木) 23:52:16 ID:aCZbdFB3
すみません、JSFL関係のスレって無いんでしょうか?
一番近いのはここですか?
873Now_loading...774KB:2010/03/18(木) 23:54:08 ID:d25eS0RG
Flex Builderのことで質問させていただきます。
現在、http://www.adobe.com/jp/devnet/flex/videotraining/8.htmlのビデオを観ています
ここで、「Eventクラスのリファレンスを開くと全Eventサブクラスが〜」(画像1)との記述がありますが私の環境では(画像2)のように先頭にパブリックプロパティの一覧が表示されてしまいます。
皆様のところではどうでしょうか?また、このビデオのようにサブクラスなどを表示するにはどうすれば良いでしょうか?
画像1: http://kissho.xii.jp/1/src/1jyou108407.png
画像2: http://kissho.xii.jp/1/src/1jyou108408.png
よろしくお願い致します。
874Now_loading...774KB:2010/03/19(金) 02:25:04 ID:LknQqqR0
http://livedocs.adobe.com/flex/3_jp/langref/flash/events/Event.html
原因の追究は他の回答者に任せるとして、とりあえずこっちで代用しとき。
875Now_loading...774KB:2010/03/19(金) 03:45:24 ID:94uQTXGF
>>861
サイズもカラーもフォントも変更出来る。文句は使い倒してから言いなよ。
気に食わなければFlash DevelopeなりFDTなりAXDTなりあるんだから。
Flashユーザとしてデベロッパーチームには敬意を払うべきだと思う。
ちなみにCS5でかなり改善される予定だとさ。
876Now_loading...774KB:2010/03/19(金) 03:52:04 ID:w/tcV2v6
papervision3d で描画した100本ほどの線を毎フレーム、
再描画して、オブジェクトに追従させたいんだけど、
通常のas3のclearのようなpapervision3d版のメソッドとして、
removeAllLines()というのを使おうとすると、
エラーになります。
removeLinesというのもダメで、、、どうやって線を毎フレーム、
レンダリングしたらいいでしょうか。
877Now_loading...774KB:2010/03/19(金) 04:32:25 ID:w/tcV2v6
876です
Line3dで、v0(始点)と、v1(終点)というpublicなプロパティがあることがわかったのですが、
この点を毎フレーム変更してやれば再描画できるかと思いやってみると、
ReferenceError: Error #1056: org.papervision3d.core.geom.Lines3D のプロパティ v0 を作成できません。
みたいなエラーがでます。
v0とv1に毎フレーム正しくアクセスして書き換えるにはどうしたらいいのでしょうか。
878Now_loading...774KB:2010/03/19(金) 05:05:30 ID:w/tcV2v6
876です

海外のフォーラムで同じような質問を投げてる人みつけました

http://forum.papervision3d.org/viewtopic.php?f=14&t=264

具体的にやろうとしているのは、

var lineMaterial:LineMaterial = new LineMaterial(lineColor);//色味の決定
var line:Lines3D = new Lines3D(lineMaterial);
line.addNewLine(1, main.x, main.y, main.z, photo.x, photo.y, photo.z);
scene.addChild(line);

みたいに線を最初に表示しておいて、あとは毎フレーム、
mainと、photoがどんなに動いても線がくっついてくるみたいな処理をしたいのですが。。。
photoが無数にある感じで、それぞれ終点がmainの座標という感じです。
879Now_loading...774KB:2010/03/19(金) 06:53:08 ID:OcjtIfN2
エラーを出すソースをくださいな
880Now_loading...774KB:2010/03/19(金) 07:24:58 ID:Y72LpRw3
>>874
分かりました。どうもありがとうございました。
881Now_loading...774KB:2010/03/19(金) 08:21:49 ID:J4ml6kw5
pv3dのソースはwonderflにいっぱいあるから探すといいよ
882Now_loading...774KB:2010/03/19(金) 16:47:56 ID:FQmMKt2C
>>875
861じゃないのですが参考になりました。

でも、ぐぐっても見つからないのね。「エディタ」とかモーションエディタが引っかかるし。
ヘルプ検索で見つけたよ。

>[編集]-[環境設定] (Windows) または [Flash]-[環境設定] (Macintosh) を選択し、
>[カテゴリ] リストの [ActionScript] をクリックします。

うおお、便利!wwww
883Now_loading...774KB:2010/03/20(土) 00:12:52 ID:tqxS3LuR
べつに882を茶化すつもりないけど敬意は払えない
ユーザインタフェースが悪すぎる。VBなみにとは言わないが
改良するべし。初期設定に10ptてなんだそれ。
(記号が見えない)しかも処理に手順が多すぎる。
まあ、勉強不足だというんだろうが前にVBユーザも使ってほしいと
言っていたが努力の成果が見られない。
AS3になって優れたフリーソフトが出始めてあせっている
気がする。CS5に期待する。
884Now_loading...774KB:2010/03/20(土) 01:33:21 ID:b9fNzyIh
CS4 パブリッシュ10 Winです。

■mc1
└■mc2

■mc3

という感じで、mc1とmc3_rootにあり、mc2はmc1の中にあります。
そして、mc1は回転したり移動したり、画面の中を飛び跳ねていて、
座標は不規則です。

mc3をmc2の位置に合わせたいのですが、
(mc1が回転していようとも、mc3は回転させたくないので、mc1の中には入れられない)

mc3に
_x = _root.mc1.mc2._x;

とやっても見当違いな場所に移動してしまいます。
mc2を_rootから見た絶対座標にすることは出来ないのでしょうか?
(絶対座標もしくは、mc1の座標)
885Now_loading...774KB:2010/03/20(土) 01:40:30 ID:AM2VjiE3
>>884
localToGlobal() を調べてみればいいと思うよ。
886Now_loading...774KB:2010/03/20(土) 01:52:17 ID:b9fNzyIh
それがですね、

mc3に

this._x = localToGlobal(_root.mc1.mc2._x);

と書いても変なところに表示されるし、mc1の中のmc2は
mc1が回転することによって位置が変わるはずなのに
まったく動きません。もちろんmc3はonEnterFrameです。
887Now_loading...774KB:2010/03/20(土) 01:58:27 ID:bHIqGlkD
ちゃいまんねん
ドキュメントよく読むねん
888Now_loading...774KB:2010/03/20(土) 02:28:47 ID:AM2VjiE3
>>886
AS2の表記は間違ってるかもしれないけど、
localToGlobal は 呼び出したオブジェクトのローカル座標 → グローバル座標だから
mc3の座標をmc2にあわせたいのなら……

var pt:point = { x:0, y:0 }; //mc2のローカル座標、ここでは仮に(0,0)
mc2.localToGlobal( pt ); //mc2のローカル座標ptをグローバル座標に変換
mc3._x = pt.x;

ってしなくちゃダメなんじゃないかな。
いやあ、ヒドイAPIだよね!
889Now_loading...774KB:2010/03/20(土) 02:30:10 ID:b9fNzyIh
さっぱり分かりません。
首吊ってきます。
890Now_loading...774KB:2010/03/20(土) 02:38:29 ID:bHIqGlkD
>>889
var point:Object = new Object();
point.x = _root.mc1.mc2._x;
point.y = _root.mc1.mc2._y;

_root.mc1.localToGlobal(point);
trace(point);

そもそもなんでAS2でやろうと思ったの?
891Now_loading...774KB:2010/03/20(土) 02:43:14 ID:b9fNzyIh
mc3に書くのですよね?
だとしたら

var pt:point = { x:0, y:0 }; //mc2のローカル座標、ここでは仮に(0,0)
_root.mc1.mc2.localToGlobal( pt ); //mc2のローカル座標ptをグローバル座標に変換
_root.mc3._x = pt.x;

って_rootから参照するでないですか?
まだ動きません。
892Now_loading...774KB:2010/03/20(土) 02:46:18 ID:QzvWhU4K
>>891
> _root.mc1.mc2.localToGlobal( pt ); //mc2のローカル座標ptをグローバル座標に変換

_root.mc1.localToGlobal( pt );//上で出てるけど、こうじゃね?

893Now_loading...774KB:2010/03/20(土) 03:06:29 ID:AM2VjiE3
>>891
記述的にはあってるから、ほかの所を疑うべきかも。
trace( _root.mc1.mc2._x );
trace( _root.3._x );
として、ほんとうにムービークリップに参照できているか確かめてみては。
インスタンス名はあっていますか?
タイムラインは途切れていませんか?
894Now_loading...774KB:2010/03/20(土) 03:07:11 ID:b9fNzyIh
いろいろパスいじっても変わりませんなぁ。
tarceにも反映されてない・・・。
895Now_loading...774KB:2010/03/20(土) 03:12:58 ID:AM2VjiE3
>>894
Flaファイル用意してみました。
これ参考にしてみて。
http://www.dotup.org/uploda/www.dotup.org740679.zip.html
896Now_loading...774KB:2010/03/20(土) 03:25:46 ID:b9fNzyIh
mc3に書いたAS(AS2でパブるとpointをロードできません、と出るのでAS1で。

onClipEvent (enterFrame) {
var pt:point = {x:72, y:138};//mc2のローカル座標、ここでは仮に(0,0)
_root.mc1.mc2.localToGlobal(pt);//mc2のローカル座標ptをグローバル座標に変換
this._x = pt.x;
trace(pt.x);
}

traceの結果は undefind 。
なんだろう????
897Now_loading...774KB:2010/03/20(土) 03:35:31 ID:AM2VjiE3
>>896
ごめん、Point忘れて。
「var pt:Point = {……}」 → 「var pt = {……}」
さっきアップしたの動くから、
それ参考にしてみてよ。
898Now_loading...774KB:2010/03/20(土) 03:37:23 ID:b9fNzyIh
アップしてくれたやつ動きました!
_rootにスクリプト書かんといけないんですね。

_rootに書くと、goToAndPlay(1個前)とかってやらなきゃいけなくて
なんかオールドなテクニックな感じしません?
mc3にonEnterFrameで書けないのかしら。
899Now_loading...774KB:2010/03/20(土) 03:41:22 ID:b9fNzyIh
mc3にenterFrameでイケました。

onClipEvent (enterFrame) {
var pt = {x:14, y:14};
_root.mc1.mc2.localToGlobal(pt);
_root.mc3._x = pt.x;
_root.mc3._y = pt.y;
}
900Now_loading...774KB:2010/03/20(土) 06:49:09 ID:dQStmgbU
そっちの方が古いと思うが
901Now_loading...774KB:2010/03/20(土) 10:16:00 ID:NQm6LEQ/
ご指導よろしくお願いします。
win7 AS2.0 CS4です。
1ページに100枚ぐらいある写真を1フレームごとに1枚ずつ表示しています。
枚数がおおいので外部からファイルを読み込んでページのおもさを分散しています。
写真の読み込みが始まったらプログレスバーを表示しているのですが、
一度読み込まれるとキャシュされて次からは一瞬だけプログレスバーが表示されます。
キャシュがある時はプログレスバーを表示しないようにするにはどのようにすればいいのでしょうか?

var mcLoader:MovieClipLoader = new MovieClipLoader();
var listenerObject:Object = new Object();
listenerObject.onLoadProgress = function(mc, lb, tb) {
num.text=Math.floor(lb/tb*100);
}

よろしくお願いします。
902Now_loading...774KB:2010/03/20(土) 10:52:29 ID:hlHtXT6I
ローカルにあるXMLファイルを読み込むFlashをローカルでデバッグしている時、セキュリティ Sandbox 違反とエラーが出ます。この現象はFirefoxで開いたときのみ発生し、chromeで開くとこの現象は発生しません。これは何かFirefoxでキャッシュ?されているからでしょうか?
ご教示頂ければ幸いです。
903902:2010/03/20(土) 11:17:54 ID:hlHtXT6I
連投すみません。今確かめたらchromeでも読み込めませんでした。
http://www.adobe.com/devnet/flex/videotraining/xml/vid10.html
では何もしなくても読み込めているようなのにどういうことでしょうか?
904Now_loading...774KB:2010/03/20(土) 13:54:53 ID:AM2VjiE3
>>901
読み込み開始から、たとえば1秒ほど待って、
それでも完了してなければプログレスバーを表示するってのは?

>>903
日本語でおK。おちついて。
ASバージョンとOS、マストだと思うよ。
で、FlashPlayerTrust はしらべてみた?
905Now_loading...774KB:2010/03/20(土) 15:23:59 ID:NQm6LEQ/
>>904
回答ありがとうございます。
1秒ほど待つとはどのようなスクリプトになるのでしょうか?
勉強不足ですがよろしくお願いします。
906Now_loading...774KB:2010/03/20(土) 17:12:47 ID:HaGhe6nF
>>905
Timer関数回すかタイムラインでどうにかすればOK
907Now_loading...774KB:2010/03/20(土) 17:32:11 ID:NQm6LEQ/
>>906
ありがとうございます。
挑戦してみます。
908Now_loading...774KB:2010/03/20(土) 18:24:36 ID:4SOuBl4M
/pic1のアクション/;
mister_top.btn_1.addEventListener(MouseEvent.ROLL_OVER,photo_alpha1);
function photo_alpha1(eventObject:MouseEvent):void {
mister_top.pic1.alpha=100;
}
/pic2のアクション/;
mister_top.btn_2.addEventListener(MouseEvent.ROLL_OVER,photo_alpha2);
function photo_alpha2(eventObject:MouseEvent):void {
mister_top.pic2.alpha=100;
}
〜(略)〜

mister_top.btn_5.addEventListener(MouseEvent.ROLL_OVER,photo_alpha5);
function photo_alpha5(eventObject:MouseEvent):void {
mister_top.pic5.alpha=100;
}
AS3.0です。
このコードをfor文を使ってまとめたいんです。
自分なりに調べてやってみたのですが、上手くいかず…。
ぜひお知恵を拝借したいです。お願いします。
909Now_loading...774KB:2010/03/20(土) 18:32:19 ID:bHIqGlkD
>>908
試してなくて、あんま自信ないけど

for (var i:int = 1; i < 10; i++)
{
  mister_top['btn_1'].addEventListener(MouseEvent.ROLL_OVER, createphotoAlphaFunc(i));
}
function createphotoAlphaFunc(photoNum:int):Function
{
  return function(eventObject:MouseEvent):void {
    mister_top['pic' + i].alpha=100;
  }
}
910902:2010/03/20(土) 18:32:49 ID:hlHtXT6I
>>904
Note: If you experience a Flash Security Sandbox Violation error when running this exercise please refer to the following link in order to adjust your Flex Builder compiler settings.
http://blogs.adobe.com/flexdoc/2008/06/the_security_sandbox_in_flex_b.html
と書かれているのを見つけ、解決いたしました。
どうもお騒がせして申し訳ありませんでした。
911Now_loading...774KB:2010/03/20(土) 18:33:20 ID:bHIqGlkD
すまん
mister_top['btn_1']

mister_top['btn_' + i]
912Now_loading...774KB:2010/03/20(土) 18:39:24 ID:Kqnsw80p
>>908
for文っていうか、まず似たような関数は一個でよくね?

function photo_alpha(eventObject:MouseEvent):void
{
 (eventObject.target as *).alpha=100;//*はbtn_○のクラス
}

んで、>>908と意味的にほぼ同じだけどfor使う例

for (var i:int = 0;i < 5; ++i)
{
 mister_top.getChildAtName("btn_" + i).addEventListener(MouseEvent.ROLL_OVER, photo_alpha);
}
913Now_loading...774KB:2010/03/20(土) 18:40:27 ID:Kqnsw80p
>>912ミスった
×んで、>>908
○んで、>>909
914初心者:2010/03/20(土) 22:06:44 ID:66XaxOY1
どなたかActionScriptの指導を
していただけませんか?
915Now_loading...774KB:2010/03/20(土) 23:15:03 ID:9h5Tax/H
いいよ
916初心者:2010/03/20(土) 23:34:24 ID:66XaxOY1
まずどんなことからはじめたらいいですか?
917Now_loading...774KB:2010/03/20(土) 23:41:04 ID:uGZ6S5tK
まずパンツを脱ぎます
918Now_loading...774KB:2010/03/20(土) 23:42:10 ID:sWXshIKV
次にラーメンを食べます。とんこつです。
919Now_loading...774KB:2010/03/21(日) 00:48:38 ID:Cw9YMnKm
初歩的な質問ですがご指導おねがいします。下記のようなコードを短く書くにはどうしたら良いでしょうか?(Mac CS4 AS3)
1.外部ボタン画像を読み込みたい
2.1の画像幅はバラバラだけど同間隔で並べたい
3.拡張性を考えて_Numと_btに追加するだけで、4つ、5つにも対応したい

var _Num:Number=3;
var _bt:Array = ["bt01.png","bt02.png","bt03.png"];

var bt1:MovieClip = new MovieClip();
addChild(bt1);
bt1.name="bt1";
var btN1:MovieClip = MovieClip(getChildByName("bt1"));
var btLoader1:Loader = new Loader();
var btUrl1:URLRequest=new URLRequest(_bt[0]);
btLoader1.load(btUrl1);
bt1.addChild(btLoader1);

var bt2:MovieClip = new MovieClip();
addChild(bt2);
bt2.name="bt2";
var btN2:MovieClip = MovieClip(getChildByName("bt2"));
var btLoader2:Loader = new Loader();
var btUrl2:URLRequest=new URLRequest(_bt[1]);
btLoader2.load(btUrl2);
bt2.addChild(btLoader2);

var bt3:MovieClip = new MovieClip();
(省略)

btN1.x=5;
btN2.x=5+btN1.width+5;
btN3.x=5+btN1.width+5+btN2.width+5;
920Now_loading...774KB:2010/03/21(日) 06:33:49 ID:bFkSwu31
>>919
動作確認してないからタイポとかあったらごめんね。
あと、インデント、全角スペースだから気をつけて。

var _bt:Array = ["bt01.png","bt02.png","bt03.png"];
var BTN_PITCH_W:Number = 5; //ボタン間隔

var bts:Array = []; //ボタンローダー配列*/
var lodedBtNum:uint = 0; //読み込み完了したボタンの数*/

for( var i:String in _bt ) loadBt(i);
function loadBt( i:String ):void {
 var ldr:Loader = new Loader();
 ldr.load( new URLRequest( _bt[i] ) );
 ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void {
  bts[i] = e.target.content;
  if ( ++lodedBtNum == _bt.length ) {
   var x:Number = 0;
   for each( var bt:DisplayObject in bts ) {
    bt.x = x;
    x += bt.width + BTN_PITCH_W;
   }
  }
 });
 addChild( ldr );
}
921919:2010/03/21(日) 13:42:56 ID:Cw9YMnKm
>>920
ありがとうございます!!
ちゃんと動作しました!
こんなに短くなるんですね。感動です。
1行ずつ何が書いてあるか勉強させていただきます。
922Now_loading...774KB:2010/03/21(日) 15:06:12 ID:eyt/6/cz
Action Script 3.0を勉強中なんですが、C言語で書くところの

bool DateArray[10][10] = {0} ;

みたいな宣言って、多次元配列の動的生成みたいに、

var k:int = 10;
var DateArray:Array;
   DateArray = new Array(k);

for(var i:int = 0; i < k; i++){
    DateArray[i] = new Array(k);
   for(var j:int = 0; j < k; j++){
      DateArray[i][j] = new Boolean(false);
};
};

って書くしかないんでしょうか?
最初から要素数が決まってる二次元配列の生成にしては煩雑なんですが、
もっと別のシンプルな方法ってのはないんでしょうか・・・。
923Now_loading...774KB:2010/03/21(日) 15:15:49 ID:YpsJh10l
>>922 C/C++のように型厳密でないから、宣言時初期化(静的に初期化)のような事はそもそも出来ません。
・・・てか、C言語理解してるなら、Arrayみたいな要素型が自由なメモリ領域再確保処理で、静的初期化なんて
出来ないのは想像出来るような気がするが。

まとめると、Cでのソレは二次元配列を用意してるんじゃなくて、型(の、メモリサイズ)を厳密に指定した宣言時に、
動的でない内容で初期化するから出来る事。

大して AS(などの)Arrayは動的配列(というか、コンテナ)クラスで、内包する要素は自由に取れる事から、
それはそもそも出来ない。 なので、そのサンプルのように処理してください。

簡単に言えば、Cのソレとは全然動きが違います。
924919:2010/03/21(日) 15:16:50 ID:Cw9YMnKm
すみません。
もう少しおつきあい願いたいのですが、
>>920のコードで
配置したボタンにそれぞれ違うイベントリスナーを設定するにはどうしたら良いでしょうか?
いろいろやってみたのですが、アクセスの仕方が分かりませんでした。。。
925Now_loading...774KB:2010/03/21(日) 15:20:28 ID:YpsJh10l
あ、C/C++ から来た人向けにもっと簡単に言えば、
boost の array って思えばおk。 まんま、アレイ
926Now_loading...774KB:2010/03/21(日) 15:32:01 ID:eyt/6/cz
>>923
var DateArray:Array みたいな宣言が独立して出来る時点で、
C/C++のクラスかストラクチャみたいなもんなんだろうなぁと想像はしてたんですが、
多次元配列なんて基本的なもんだし内部的には一緒でもショートカット的な宣言方法があんじゃないだろうかと、
ちょっと期待してたんです。怠け者ですみません。

とにかくありがとうございます。怠けずにちゃんと書きます。
927Now_loading...774KB:2010/03/21(日) 17:08:39 ID:bFkSwu31
>>924
(略)
   for each( var bt:DisplayObject in bts ) {
    bt.x = x;
    x += bt.width + BTN_PITCH_W;
    bt.parent.addEventListener( MouseEvent.CLICK, function():void { trace("CLICK#"+i); } );
   }
(略)

実はコメントが間違ってたんだけど、bts[] ってのが読み込んだオブジェクトの配列。
だから bts[n].parent が Loader になります。
だもんで、それにイベントリスナーを登録してやれば OK。
928Now_loading...774KB:2010/03/21(日) 17:17:25 ID:z5dEYLAh
>>927
これ任意のタイミングでremoveEventListenerできるの?
929Now_loading...774KB:2010/03/21(日) 17:53:44 ID:bFkSwu31
>>928
無名関数は removeEventListener できないよ。
930Now_loading...774KB:2010/03/21(日) 18:04:27 ID:QegXSD3H
メンバに var oFunc:Function; を持っておいて、

oFunc = function():void { trace("CLICK#"+i);
bt.parent.addEventListener( MouseEvent.CLICK, oFunc } );

とかして置けば、関数として無名でも後で自由自在

931919:2010/03/21(日) 18:36:40 ID:Cw9YMnKm
>>927
「parent」が必要なんですね。
bt.addEventListener・・・でトライして挫折してました。
頑張って勉強します。
何度もありがとうございました!
932Now_loading...774KB:2010/03/21(日) 18:37:47 ID:z5dEYLAh
>>930
最強すわー
933Now_loading...774KB:2010/03/22(月) 00:24:45 ID:wYnn3uZk
Flex(AS3)でButtonに対し、強制的にクリックイベント等を送ることは可能でしょうか?
Buttonをクリックした時に、ラベルが色々と変化しているように見せかけるために
Buttonの上にTextを重ねています(Button自体のラベルは空にしてます)。
Textのクリック時とButtonのクリック時に、同じイベントハンドラを
呼び出すようにしているので、処理自体はうまく動作しています。
どちらをクリックしても処理が行われ、かつ、その結果の状態によって、
Textの文字列を変化させることで、Buttonのラベル表示が変化しているように見えます。
(Textは複数行で、色やカラーや文字列が変化する)

でも残念なことに、Textにロールオーバーしたり、クリックしたときに
Buttonの見た目が反応しないので困っています。
Textがクリックされたときに、Buttonに対して強制的に
クリックイベントを発生させることって可能でしょうか?

どうぞよろしくお願いします。
934Now_loading...774KB:2010/03/22(月) 00:50:57 ID:WdvTSgrI
>>933
EventDispatcher クラス調べてみては。
935Now_loading...774KB:2010/03/22(月) 01:03:07 ID:utt7WHnW
ローカルでパブリッシュしてみると全然快適なのに、
HTTPでアップして、ブラウザ上で見ると
遅くなるのはどういう場合でしょうか
30fpsが、20fpsぐらいになっちゃいます。
同じマシンで見ているのですが・・
うまい回避策というのはないのでしょうか?

936Now_loading...774KB:2010/03/22(月) 01:11:11 ID:WdvTSgrI
>>935
ブラウザのせいじゃない?
Chrome で試してみては。
937Now_loading...774KB:2010/03/22(月) 01:21:18 ID:klxy082P
>>935
ブラウザによってはwmodeのバグ。
一応、再生に特化したプレビューの方が、ブラウザのプラグイン経由より処理が速く
高速に再生されるということもある。
938933:2010/03/22(月) 01:35:23 ID:wYnn3uZk
>934さん どうもありがとうございます。
自分でもあれから色々やってみていたのですが、解決しました。
仰るとおり、Textで発生したマウス関連のイベントを、Buttonに対して
EventDispatchするだけで事足りました。

一応、コードを次に乗せておきます。
939933:2010/03/22(月) 01:36:52 ID:wYnn3uZk
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script><![CDATA[
private function onClick(event:MouseEvent):void{
trace( "clicked!" );
count++;
myTextText = "clicked!\n" + count;
}

[Bindable]
private var myTextText:String;
private var count:int = 0;

]]>
</mx:Script>

<!--テキストが真上に重ねられるボタン-->
<mx:Button id="myBtn" width="100" height="100" x="20" y="20" click="onClick(event)" />

<!--ボタンの真上に重ねられるテキスト-->
<mx:Text id="myText" text="{myTextText}" selectable="false" buttonMode="false"
width="100" height="100" x="20" y="20"
click="myBtn.dispatchEvent(event)"
mouseDown="myBtn.dispatchEvent(event)" mouseOver="myBtn.dispatchEvent(event)"
mouseOut="myBtn.dispatchEvent(event)" mouseUp="myBtn.dispatchEvent(event)"
mouseDownOutside="myBtn.dispatchEvent(event)"
rollOver="myBtn.dispatchEvent(event)" rollOut="myBtn.dispatchEvent(event)"/>

<!-- 比較するためのダミーボタン-->
<mx:Button id="myBtn2" width="100" height="100" x="20" y="140" />
</mx:Application>
940Now_loading...774KB:2010/03/22(月) 01:39:17 ID:rX3EncHq
うざwww
941Now_loading...774KB:2010/03/22(月) 01:45:20 ID:C7eHBXbM
無名関数内で条件もうけてarguments.calleeで出来るっしょ?
942Now_loading...774KB:2010/03/22(月) 04:41:54 ID:utt7WHnW
ボタンに音を仕込もうとしてますが、
Soundオブジェクトを外部のmp3から生成しておいて、
マウスオーバーの際に、
Soundオブジェクト.play()
とすると、音はなるのですが半秒ぐらい遅れてから音がなります
しっかりとユーザーのマウスオーバーと同時に音をならしたいのですが、
これは外部読み込みのやり方だと実装不可能なんでしょうか
943Now_loading...774KB:2010/03/22(月) 17:10:28 ID:VQRZ+aqu
初めまして、Flash初心者です。
マスクにグラデーションをかける方法を模索しています。
Mask.cacheAsBitmap = true;
Image.cacheAsBitmap = true;
Image.setMask(Mask);

以上の記述で合っているはずなのですが、CS4のせいか以下のようがエラーが出ます。Warning: 1060: 移行の問題 : メソッド setMask はサポートされないようになりました。代わりに、MovieClip.mask プロパティを使用してください。。

この場合はどのようなソースを打てば解決するのでしょうか?
944Now_loading...774KB:2010/03/22(月) 17:43:48 ID:yCOcJesQ
>>943
エラーの通りにいくと
Image.mask = Mask;
かな
945Now_loading...774KB:2010/03/22(月) 18:20:56 ID:VQRZ+aqu
>>944
見事に解決しました。本当にありがとうございましたm(_ _)m
946Now_loading...774KB:2010/03/22(月) 18:50:36 ID:WdvTSgrI
>>942
音を Embed すれば、音の遅れはなくなるの?
947Now_loading...774KB:2010/03/22(月) 20:22:17 ID:DoJ7wMBq
Actionscript3です

flashとhtmlの連携で
swfobjectを使ってhtmlからflashへ変数を渡すという記事は見かけるのですが
htmlの一部
<div id="contents"><p>文章</p></div>
このid="contents"のdivタグ内の文章を、flashへ丸々渡すような事はできるのでしょうか?

948Now_loading...774KB:2010/03/22(月) 20:28:47 ID:8b69FO1M
無理ぽ
949Now_loading...774KB:2010/03/22(月) 20:34:56 ID:WrWmn1X2
>>947
直接できるような機能は無いな。
どのタイミングでそれを渡したいのか分からないけど、
swf を表示するタイミングで渡すなら、どうせ swfobject で埋め込んでいるんだし、
addVariable で document.getElementById("contents") を渡すって言うのはどうだろう。
swf 実行中に渡すなら、LocalConnection で通信して渡すしかない。
950947:2010/03/22(月) 21:28:43 ID:DoJ7wMBq
>>948-949
ありがとうございます。

因みに読み込みたいタイミングは、メインのswfを読み込むプリロードを行う時、一番最初です
できるのなら、そのdiv内データの文字列?をプリロードswfで受け取り、読み込んだメインswfへ渡そうかと思っていました
javascriptは殆ど知らないので、addVariableについてなど調べてみます

951Now_loading...774KB:2010/03/23(火) 00:28:14 ID:lW5uJTJZ
HTML自体をxmlとして読み込んでe4xでパースしちゃうっていう
裏技もある。
952Now_loading...774KB:2010/03/23(火) 10:08:18 ID:WX4pdmaU
SWFからJavaScript側のメソッド呼び出して戻り値えればええやん
953Now_loading...774KB:2010/03/23(火) 10:11:50 ID:dpDWJDKN
わからないから、そのやり方を聞いてるんじゃないの?
954Now_loading...774KB:2010/03/23(火) 11:07:57 ID:WX4pdmaU
AS3 JAVASCRIPT でググればわかるだろ?
ExternalInterface.cal を使えばいい
HTMLの要素内容を簡単に取りたいならJQuery使え
これだけわかれば答えにはいきつくだろ
955Now_loading...774KB:2010/03/23(火) 11:39:27 ID:uhBDMNmQ
addEventlintenerについて、
「ある処理を終えたあとでなければ実行できない関数」を作る方法
ってありますか?

いまのところは、「ある処理」の行われる関数の末尾に
目的の関数の呼び出し文(?)を書いているのですが、
コードが汚くなっていくので。
956Now_loading...774KB:2010/03/23(火) 13:37:13 ID:lkUDavNG
初心者の質問で申し訳ないがactionscriptのエディタで
上に部分に任意に式を評価というボックスがでて(式)そこを通じてしか
書き込みができなくなってしまったんだけど元に戻すやりかた
を教えて!
957Now_loading...774KB:2010/03/23(火) 13:45:08 ID:+m57qcsm
どのエディタ
958Now_loading...774KB:2010/03/23(火) 14:07:42 ID:lkUDavNG
右上のスクリプトアシスタントを押すことで解決しました。
もういらんだろ。ノーマルモードなんて。
余計に混乱するだけ
959Now_loading...774KB:2010/03/23(火) 16:54:16 ID:lkUDavNG
TransitionManager.start(img2_mc, {type:Zoom, direction:3, duration:1, easing: Bounce.easeOut});
いったん表示してそのあとに
Tweener.addTween(img4_mc, {time:1.0,alpha:0,delay:0.5, transition:"linear"});
でアルファ値を変えてデザインをしてるんだどimg2_mcの処理を終えてから
すぐにimg4_Mcの処理をしたいんだけどTweenは順番に処理できないの?
なにかタイミングでうまくいかない。
(要するにはじめの処理を確実に終えてから次の処理をしたい。)
これはTweenでは不可能?タイムラインをつかわなければだめ?
だれか教えて

960Now_loading...774KB:2010/03/23(火) 17:37:13 ID:Bwr4nOUO
Flash8 as2

hoge="a=1&b=2&c=3";
というデータがあったとします。

たとえばaの値を取りたいときどうしたらよいでしょうか?

aの値=hoge.a

みたいに取れないでしょうか?
961Now_loading...774KB:2010/03/23(火) 17:50:49 ID:dpDWJDKN
>>959
onCompleteっていうオプションがあったと思う、そこに関数渡しで。

>>960
自分で分割して配列なりに入れるしかない
「as2 parse query string」とかで検索すればよろし
962Now_loading...774KB:2010/03/23(火) 21:13:46 ID:+m57qcsm
>>960
"&"でスプリットして得られた配列をループして、"="でスプリットすればキーと値が取り出せるジャン
言語無関係な基本の文字列処理の一つ。もちろんスプリットの部分を、正規表現とかに変えてもいい
963Now_loading...774KB:2010/03/23(火) 22:40:44 ID:/Dwo5TUJ
>>960
そんなあなたには、これ
http://actionsnippet.com/?p=2798
964Now_loading...774KB:2010/03/24(水) 02:08:53 ID:b0V3kUhz
>>955
その「ある処理」でdispatchEventしてそれを監視するとか。
それでも結局書く量は同じか下手すりゃ増える気がするけど。

private function init():void {
addEventListner("complete", sonogonoShori);
}

private function aruShori():void {
// ある処理の処理
dispatchEvent(new Event("complete"))
}

private function sonogonoShori(e:Event) {
removeEventListner("complete", sonogonoShori);
// その後の処理
}

965Now_loading...774KB:2010/03/24(水) 10:17:38 ID:gockrkYn
961さん
そうですね。ありましたね。ありがとうございます。
やってみます。
966Now_loading...774KB:2010/03/24(水) 15:32:05 ID:gockrkYn
movieクリップを拡大したとき枠の線まで拡大されてしまうの
なんとかならないかな。縮小は問題なんんだけど(当たり前だが)
枠は一定の太さにしたいんだけど・・・・
よわったな
967Now_loading...774KB:2010/03/24(水) 15:34:38 ID:4J7ntY00
線だけ別にすればいいじゃん
968Now_loading...774KB:2010/03/24(水) 18:50:23 ID:8KhVlCiS
FlashCS4 AS3
ステージ上にmcとmaskMCがあります。
mcにはぼかしフィルタがかかっています。maskMCにはかかっていません。
オーサリングでmcをmaskMCでマスクすると、ぼかしがかかるのはマスク内だけで、マスクのエッジはスパッと切れてます。

ところがオーサリングでマスクせずに(本来やりたいことはコレ)
mc.mask = maskMC;
とすると、マスクはかかりますが、マスクのエッジ部分もぼかしがかかってしまいます。
スパッと切りたいのですが、どのようにすればいいんでしょうか?
969Now_loading...774KB:2010/03/24(水) 19:08:25 ID:X90qheT4
線だけ別にすればいいじゃん
970Now_loading...774KB:2010/03/24(水) 19:44:02 ID:U8HMFXIn
>>966>>969
確認してないけど線を塗りに変換すればいいんじゃないの?

てかスレ違いじゃなくね?
971Now_loading...774KB:2010/03/24(水) 19:50:05 ID:b7kExmSm
>>968
フィルターのかかったmcを別の親MCに入れて
親MCにマスクをかければ大丈夫かな
container_mc.addChild(mc);
container_mc.mask = maskMC;
972Now_loading...774KB:2010/03/24(水) 19:59:52 ID:8KhVlCiS
>> 971
おおおお!ありがとーございます!!!!!!!
973Now_loading...774KB:2010/03/24(水) 22:25:11 ID:Ljo9ozJ6
すみません!AS2.0で質問です。FlashCS3使ってます。
xmlを使って別サーバーの画像をロードして、attachMovieしてるのですが
読み込んだ画像をすべて指定のサイズにリサイズしたいと考えてます。

読み込んだ後、
MC._width = 50;
などとすると、サイズが100だったものは50になりますが
450のものは、225になってしまうなど、縮小率で適用されてしまいます。

絶対的にリサイズするにはどうすればよいのでしょうか?
974Now_loading...774KB:2010/03/24(水) 22:35:13 ID:NxcX2GVQ
>>973
表示されてから_width = 50をセットしてみては?
975Now_loading...774KB:2010/03/24(水) 22:50:24 ID:GSBbnnia
数学を勉強しろ
976Now_loading...774KB:2010/03/24(水) 22:58:36 ID:dWid1Qqz
>>973
MC._width = 50の手前で、MC._widthの値をtraceしてみるとどうなってる?
977973:2010/03/24(水) 23:14:05 ID:Ljo9ozJ6
皆さんありがとうございます。
onLoadInitを使う事で自己解決しました。
というか、onLoadInitの使い方をいまいち間違ってたみたいなのです…。

>>976その時点では0でした。

ありがとうございました。
978Now_loading...774KB:2010/03/25(木) 01:08:45 ID:g7eJIqiK
>>977 MovieClip の width や height の値は特殊で、
そもそも MovieClip や AS3 で言う Sprite は、領域としての幅と高さって概念を持っていない。

幅と高さは、中に描画される内容によって決まるから、もっていないんだ。
(特に基本はピクセルでなく、抽象単位で座標を持つベクタ情報だし)

なので、幅と高さを書き込む場合には割合にしかならない。 これ大事な概念なので覚えとくといいぜ
979Now_loading...774KB:2010/03/25(木) 04:46:48 ID:lGu69WFk
ASオンリーで自己サイト作ってる人にしつもん。
メインのドキュメントクラス何行くらいになってる?
知ってどうこうという訳ではないし行数なんて基準にならんけど参考までに教えてくだされ。
ちなみに俺は700行弱っす。
980Now_loading...774KB:2010/03/25(木) 13:46:40 ID:QzujLBUI
AS3でカスタムカーソルを表示させる方法について質問です。
Mouse.hide()したあとカーソル用のオブジェクトをMouseEvent.MOUSE_MOVEイベントでマウスに追従させているのですが、
カーソル用のオブジェクトに邪魔されてクリックなどのマウスイベントが効きません。
現在はオブジェクトをマウス位置から微妙にずらす、マウスイベントをステージに設定するなどで回避していますが、
カーソル用のオブジェクトがマウスの下にあっても無視できるような方法はないでしょうか?
981Now_loading...774KB:2010/03/25(木) 13:57:04 ID:i3eR/ONZ
mouseEnabled
982Now_loading...774KB:2010/03/25(木) 18:21:03 ID:CW7UMwp7
マウスの位置をゲットして、自分より右なら右に5ピクセルだけ
ゆっくりと移動するシンボルを作りたいのですが

onClipEvent (enterFrame) {
_root.x = _root._xmouse;
_root.y = _root._ymouse;
}

このあとどう書くのが一番コンパクトでしょうか?
お教え下さい
983Now_loading...774KB:2010/03/25(木) 18:55:24 ID:6Srtileg
カスタムクラスのクラスパスについて

flaファイルと同じディレクトリ内にカスタムクラスを置いて問題なく生成できていたのですが、
「環境設定」の「ActionScript3.0設定」のクラスパスを弄っているうちに、エラーが出て生成できなくなりました。
エラーの内容は、「playgroval.swcが見つかりませんでした。」
どうしたら元通りになりますか?先に書いてある通り、カスタムクラスはflaと同じディレクトリ内です。
そもそもplaygroval.swcってなんですかね。
984Now_loading...774KB:2010/03/25(木) 19:11:40 ID:+L0w2S1c
何故弄ったし
985Now_loading...774KB:2010/03/25(木) 19:20:46 ID:beB3wcpD
そもそも綴り間違ってそうだし
986983:2010/03/25(木) 19:46:07 ID:6Srtileg
ああ、すいません。
「ActionScript3.0設定」のクラスパスの初期値を教えてください。
987Now_loading...774KB:2010/03/25(木) 19:55:53 ID:C3qxFn6T
>>986
パブリッシュ設定じゃなくてグローバル設定いじったの?
一応CS3で下の2つだった
.
$(AppConfig)/ActionScript 3.0/Classes
988983:2010/03/25(木) 21:43:37 ID:6Srtileg
>987
ありがとお。動くようになりました。
パブリッシュ設定でなくて、環境設定をいじってしまいました。
環境設定のデフォルトに戻すボタンを押しても、ここだけは
戻らなかったのでやばかったです。

ありがとうございました。
個別flaの設定はパブリッシュ設定から変更すればいいんですね。

989Now_loading...774KB:2010/03/26(金) 16:02:21 ID:CKos4OiT
すでに完成している.swfファイルが6つあります。
これを指定されたサイズ(1920px×1080px)で次々と続けて再生する
プロジェクターを作りたいのですが、アクションスクリプトを使えばできるのでしょうか?
6つ普通にタイムラインに並べたところ、
ステージを指定サイズで作ったら左上に小さく表示されてしまい、
複数フレーム一緒に拡大しようとしたらFLASH強制終了になりましたorz

FLASHではパタパタアニメしかつくれません。
アクションスクリプトが何もわからない状態です。
なんともお恥ずかしいのですが、
できることでしたら参考になりそうな本やサイトを教えてください。
(グーグル先生に聞いてはみたけど、どこをどう拝見していいのかすらわからなかったよ・・・TT)
990Now_loading...774KB:2010/03/26(金) 16:07:35 ID:CKos4OiT
すいません 989です
書き忘れてましたが、使ってるFLASHはCS4です
991Now_loading...774KB:2010/03/26(金) 16:37:50 ID:LzkvqvZM
クラスやオブジェクトにプロパティが存在するかどうか調べる方法を探しています。
下の場合、プロパティdがないですが、dが存在しない場合は抜けるという書き方を教えて下さい。

var obj = {a:A, b:B, c:C}
992Now_loading...774KB:2010/03/26(金) 16:42:29 ID:LpIko4Mw
if(obj.d==undefined){
return; //とかヌケる処理
}
993Now_loading...774KB
>>991
http://livedocs.adobe.com/flex/3_jp/langref/index.html
こことかでObjectクラスとか見たら一発なんだが
全部とは言わないがよく使うクラスくらい目を通しておくと便利だよ
あとは必要なときに確認すれば

面倒だってんならin演算子とかhasOwnProperty()とかググれ