ActionScript 誰かが物凄い勢いで解答するスレ29
1 :
Now_loading...774KB :
2011/06/29(水) 21:17:07.66 ID:0r4aqu6L
昨日の画像読み込みたがってた者です
var Name = "homhom_bot";
var loader = new MovieClipLoader();
var load_obj = new Object();
load_obj.onLoadError = function() {
msg = "エラー";
loader.unloadClip();
};
loader.addListener(load_obj);
msg_txt.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
loader.loadClip("
http://api.twitter.com/1/users/profile_image/ "+Name+".json", _root.mc);
_root.mc._width = 48;
_root.mc._height = 48;
}
};
これで画像読み込みは大成功したのですが、一回でも実在しないアカウントを入力したり
スペルミス等をすると、それ以降画像が読み込まれなくなります。なんでですかー
挙動からして原因はloader.unloadClip();意外にあるまい ローダーのコンプリートイベントとloadClipの直後にでもtraceいれてそこ通ってるか見てみては?
AS3で、関数もコンストラクタの中身もない変数宣言だけの空のクラスを作って、 全てのクラスをそのクラスから派生させるってやり方はやめたほうがいいですか? グローバル変数みたいな感じで、変数や他のクラスのインスタンスへのアクセスが 容易になるのでとても便利に思えるのですが・・・
>全てのクラスをそのクラスから派生させる すいません。そのクラスから継承させるの間違いです
プリミティブ値だと書き換えできないから期待の動作はしないと思う A→O B→O Oにprotected var num:int=0; A.numとB.numは別物
>>3 load_obj.onLoadInit = function() で調べてみたら
一応読み込み完了でアクセスはできるらしい
9 :
Now_loading...774KB :2011/06/30(木) 13:16:33.05 ID:WKrYT5hF
>>8 ミスったあともinitイベントは拾えてるってこと?
だと思う いまいちメソッドの使い方がわからん
もうflaあげちゃえよ…
>>12 外部ファイルをホイホイ読めちゃうとセキュリティ的にヤバイって仕様
AS3の質問です。 swf内でマウスオーバーなどに効果音を使っています。 使っている効果音は1種類なのですが、 外部編集ソフトで音を調整 ↓ 新しいmp3ファイルをライブラリに読み込み ↓ りんゲージでクラス名を指定 ↓ スクリプトの方で生成するクラス名を書き換え ↓ パブリッシュ で、パブリッシュするたびに.swfファイルがどんどん大きくなっていってしまいます。 入れ替えた音源ファイルのサイズは変わっていないはずなのに、です。 ライブラリにあるものは使っていなくても全て.swfに突っ込まれるのでしょうか?
ライブラリから削除してみたらわかるだろう…
例えばゲームのセーブ・ロードなどファイルを総合的に管理するクラス(FileManager)など、 プログラム内でインスタンスが一つだけ存在すればいいクラスを作った場合、 インスタンスを作る必要ってあるのですか? 例えば、上記のクラスの場合、クラス内の関数や変数を全てstaticで宣言して クラス関数としてFileManager.saveData()などを呼び出せば、 インスタンスを作る必要がないと思うのですが。
一体誰にインスタンス化を要求されたんだ? 思い込み?
WEBに公開されてたAS3のゲームのサンプルを見たら描写のクラスやセーブロードのクラスなど、 複数のインスタンスが必要ないクラスでもインスタンス化してから関数を呼んでいたので それが作法か正しいやり方なのかと疑問に思いました。
アイテムなんかのデータベースはどうやって取り扱ってるんだろうね
flashlite1.1に最適なエディターってのがあったら教えて欲しいです FlashDevelop使ってみたけど、あれLite1.1ってのないよね?
>>19 >複数のインスタンスが必要ないクラスでもインスタンス化してから関数を呼んでいたので
そのソースを見てないから断言はできんが、
インスタンス化する必要はないで良いと思う。
例えば、constとか。
MouseEvent.MOUSE_DOWNとかインスタンス化してるやつは居ないはず。
何で切れてんのw ひとつしかないから全部静的でいいって人もいれば、 データ構造持つならシングルトンにするって人もいるんじゃないの? 好きにすればいい
そのへんOOP宗教戦争みたいなとこあるから、まあいろいろあるって事知っておけばいいよ。 絡まれるとうるさいから気を付けてねw
なるほど・・単純にこういうルールだっていうのはないんですね。ありがとうございます。
Javaならコンパイラがワーニング出すから インスタンスからの呼び出しはしないほうが良いってわかるけどなぁ。
AS3で、表示リストの子に対してdispatchEventを使うとその親たちも同じイベントを受け取ることができますが 同じ階層にあるオブジェクトや親子関係にないものの場合はどうすれば同じイベントを受け取らせることができますか? 個別に参照してdispatchEventを使うのは効率が悪いので一度に全てのリスナーに受け取らせられると良いんですけど・・
無理でしょ イベント投げられたら通知したいオブジェクト全部にイベント送りつけるっていうメソッドのあるオブジェクトを作ってそれに投げるか 共通のイベントレシーバ持たせてそれぞれそれを監視するか
マジもう・・・先にデザインと仕様をFIXしてくれよマジで。。。 後から思いつきでやっぱこうがいいとかどんどん変更指示だしてきて、 ソースがどんどん汚く、そして分かりにくくなる。 作り方もなんか複雑になってきてるし。。。 プログラマに投げるときは、もう微修正しか出来ないと思って投げて来いバカヤロー!!
ふむ
>>30 それだと楽だがつまんないものしかできなくなるんだぜ
33 :
Now_loading...774KB :2011/07/03(日) 13:23:14.79 ID:3faxKPbm
超くだらない質問かもしれないから 申し訳なさでいっぱいなんだが、 あるMCを作って、this.onPressを書いた。、 ところでそのMCを構成する部品として存在する別の小さいMCにも this.onPressを書いた。そして部品MCをクリックした場合と、 全体MCをクリックした場合は別のfunctionを割り当てたいのだが、 どうしたことか、部品MCをクリックしても全体MCをクリックした ことにしかならん。 なんとか部品MCをクリックしたら、全体MCのほうは黙っていて 欲しいんだが…教えてくれ、いや教えてくださいお願いします。
>>33 AS2.0?
onイベントは排他的に受け取るから、その動作は仕様
MCのなかに、全体用のヒットエリアを作って、その上部に部品MCを配置するとか
クリックした位置によって、動作を変更するとかで対応する
35 :
Now_loading...774KB :2011/07/03(日) 14:10:46.77 ID:3faxKPbm
>>34 そう、AS2でやってる。そういう仕様だったのか…orz
じゃあ、がんばって位置で区別がつくように作りなおしてみる。
早めに見切りがついてよかった。本当にありがとうございました。
>>32 いやぁそれは分かるんだけども、そういうレベルじゃないんだよ。
表現とかじゃなくて、根本から変えてくるんだよね。
しかもちょいちょいと。
そんなの最初にデザインカンプの時点でちゃんと見てれば分かる事じゃん、みたいな。
お前らちゃんと考えてたのかよ、と問い詰めたい。
tween系のライブラリで追従するような動きは表現できますでしょうか 終点を指定すればそこまで移動はできますが、終点が動くような場合それにあわせて追従するようにしたいです。 細かく時間分割してtweenするしかないのでしょうか?
>>29 教えてくださりありがとうございました。
その方法でやってみることにします。
ASのライブラリでtweensyみたいに炎とか雷みたいなエフェクトを簡単に作成できる ライブラリってありますか?別に炎とか雷でなくてもいいのですが。
tween系ライブラリならいくつかあるけど そこからエフェクトを簡単に作れるかどうかは知らん
言葉足らずですみません。探してるのはゲームで使えそうなエフェクトが簡単に作れたりかけられたりする ライブラリで、tween系でなくてもかまいません。そういったライブラリがないなら tweensyを使うしかないのですが・・・
AS3.0、FlashPlayer10で表示オブジェクトのzプロパティに値を代入すると 中のベクタ画像がラスタ画像のように表示されてしまうのはなぜですか?
43 :
Now_loading...774KB :2011/07/04(月) 22:14:51.75 ID:8wSbBz83
●が並んだブロックが右から順次流れていく フラッシュをCS4にて作成中です。 表示レイヤーには「block00」から「block27」まで24個のダイナミックテキスト オブジェクトが配置してあります。00〜07,10〜17,20〜27と3列に並んでいます。 先にblockArray[set][x][y]にnセット分のブロックが格納されています。 for (k=0; k<20; k++) { //表示を初期化 for (i=0; i<3; i++) { for (j=0; j<8; j++) { this["block"+i+j] = ""; } } for (i=0; i<3; i++) { for (ay=0; ay<8; ay++) { for (ax=0; ax<blockFace[k+i]; ax++) { this["block"+i+ay] = this["block"+i+ay]+blockArray[k+i][ax][ay]; } } this["answer"+i] = blockPiece[k+i]; } } 先に用意したブロックを最後に表示させるとき、 変数kで順送りするつもりなのですが、バラバラにしか表示されません。 右のブロックが左に流れるつもりで書いたのですが・・・。 どうしたらよいのでしょうか?
>>41 stardustがぴったりかと
>>43 まず
this["block"+i+j] = "";はblock00〜block27を指さない
何故なら例えばi=1,j=2の時this["block"+i+j]はblock3になる
this["block"+i+ay] = this["block"+i+ay]+blockArray[k+i][ax][ay];
block00〜block27がダイナミックテキストを指す変数ならこの足し算はおかしい。
なにをやりたいの?
あとは他の変数についてもくわしく
>>44 stardustいいですね、サンプルもたくさんあるし。使わせてもらいます。
外部エディタ使用している方とかフォント何使ってます? 見やすいのとかおすすめのあったらおしえてください。 いまFlashDevelopでデフォのcourier newです
48 :
Now_loading...774KB :2011/07/05(火) 10:16:22.75 ID:z5NPnZyo
>>44 ありがとうございます。
アクションがすべて実行されたあとに、ダイナミックテキストへ変数が反映される
ことを知らなかったので躓いていました。きっと見えない間に終わっていたのでしょうね(笑)。
>this["block"+i+j] = "";はblock00〜block27を指さない
>何故なら例えばi=1,j=2の時this["block"+i+j]はblock3になる
に関しては、左辺が文字型の為に+演算子が文字結合として働いて
block00〜27を指してくれます(検証済み)。
ランダムに●を並べたブロックを表示させて●の個数を答える
ゲーム(トレーニング?)を作ろうと思っています。
フレームで分けたほうがいいのか、検討中です。
>>48 失礼。確認したら大丈夫だった。逆に勘違いしてたぽい。
開始画面とゲーム画面とクリア画面はフレームに分けるとすごい楽だよね
>>47 Migu使ってる
検索すれば分かるが、MSが作ったプログラム用フォントみたいなのもあるみたい
フリーだし、紹介も結構されてるし、検索して試してみてはどうか
>>45 ありがとうございます。使用だったなら仕方ないですね。
ビットマップ化するならせめてジャギが出ないようにしてほしかったです・・。
続けてすみません、もう一つ気になったことがあったので質問させてください。
メインタイムラインに矩形を描いてから↓のコードを記述して、
その矩形をクリックしてもトレースが起こらないのはなぜですか?
root.addEventListener(MouseEvent.MOUSE_DOWN, Hoge);
function Hoge(e:Event):void{
trace("clicked");
}
>>50 ありがとうございます。Miguとか色々試して見ます。
ちょっと試す前にお尋ねしたいのですが、例えば円や頂点の数の多いシェイプなど多用してすごい重い100フレームぐらいアニメするMCがあった時、 そのMCの全てのアニメフレームをビットマップデータに一時的に描画して、ビットマープデータとして連続してアニメ表示させるという方法は、 効果的だと思いますか?またそうすることはAS3で可能ですか?
>>53 可能だと思うけどとてつもなくメモリを消費するから現実的ではないかもね
>>51 タイムラインのgraphicsに書いたの?
graphicsがマウスイベント受け取らないからなんだろうけど、じゃあなんでSpriteに書いたらSpriteは受け取るの?ってことになるよねえ
AS2なんだけど、関数で引数を省略したときは1をデフォルトにしたいときはどうしたらいいですか function f(x){ ここ何て書く return x; } f(0); //0を返す f(); //1を返す
>>55 いいえ、このコードはタイムラインに直接書きました。
addEventListenerをrootではなくstageに実行すると上手くいくのですが・・
理由がよくわかりません。
>>56 function f(x){
if(x == undefined) x=1;
return x;
}
引数が省略されている=未定義なのでこれでどうでしょうか?
59 :
Now_loading...774KB :2011/07/06(水) 00:03:00.98 ID:jAU65gI1
>>57 いや、矩形をgraphicsに描いたのかってこと
rootでもthisでもだめだったけどstageでは受け取るんだよね
変数に値変数のポインタを代入するのってできないんですか? p=&i; みたいな
できないよ
i = {value: 1}; p = i; 回りくどいけど、値をObjectでくるんで参照型にするとか。
ローダで既にSWFがロードしてある際に、SWFのloadBytesを行った場合は、 必ず内容が表示されないタイミングがあるのでしょうか。 例えば、 1: 前もってSWFを別のURLLoaderでロードしておき、 ボタンクリックでLoaderにURLLoaderで読んでいたSWFのデータをloadBytes。 2: ボタンクリックでURLLoaderにSWFをロード、Event.COMPLETEでSWFのデータをloadBytes。 1の場合、一瞬で画面が切り替わり、まずLoaderの中身がなくなることはありませんが、 2の場合、Loaderの中身切り替わりの際にコンマ何秒か表示が消え、ステージの背景が視認出来てしまいます。 どちらもloadByte時にデータは揃ってるし、Loaderにunloadなど何もしていません。 表示切り替わりに差があるのはどの辺の問題なのでしょうか。
>2: ボタンクリックでURLLoaderにSWFをロード、Event.COMPLETEでSWFのデータをloadBytes。 ↓ 2: ボタンクリックで、別のURLloaderでSWFロード開始、URLLoaderのEvent.COMPLETEを受け取ったら、 実表示用のLoaderでURLLoader.dataのSWFをloadBytes。
66 :
Now_loading...774KB :2011/07/07(木) 07:38:53.61 ID:D/aNLu8Z
flexのswfdump.exeで上手く逆アセンブルが出来ないときはどうすればいいですか?
具体的にどうなるの?
68 :
Now_loading...774KB :2011/07/07(木) 11:02:27.80 ID:PjCfwnRX
if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); ドキュメントクラスの最初に書いてあるこれってやっぱ必要?
69 :
35 :2011/07/08(金) 12:35:22.45 ID:4nzN0bms
上で質問した者で、超亀作業なんだが、 部品MCを入れ子にした全体MCを作って、onPressするとクリックする場所が部品MC上か その周りの全体MCかで反応が分かれるコードを書いてみた。マウスの座標と部品MCで hitTestを使ったらうまくいった。 いつもここでお世話になっているので、たまに誰かの役に立てばいいなと思ってUPする。 tarako・・・全体MC(のインスタンス名) ebi・・・tarakoMC中の部品MC(のインスタンス名) tarako.onPress = function (){ myX = _root._xmouse; myY = _root._ymouse; //部品MCでヒットテスト。外れたら全体MCで処理 result = tarako.ebi.hitTest(myX, myY, false); if(result == true){ trace("ebi desu!"); }else{ trace("tarako desu!"); } };
エビちゃんが二匹いたらどうするんだい?
71 :
35 :2011/07/08(金) 13:16:15.30 ID:4nzN0bms
>>70 さま
エビが二匹の場合はエビのインスタンス名をそれぞれ変えて、if文に二匹目も
ORで入れればなんとかなるかと
>>68 作成したswfが別のswfから呼ばれた時のことを考えるとあった方がいいんじゃないかな
メインswfのロードの仕様だっていつ変更されるかわからんし
74 :
35 :2011/07/08(金) 17:50:09.84 ID:4nzN0bms
>>70 さま
>>72 さま
エビさんがたくさんいたらifの中のOR文をいっぱい書くのがめんどいので
配列とevalで作ってみた。一応エビ三つで試したからエビが100匹いても大丈夫。
ただし、ebi0,ebi1,ebi2...と全部同じ動作をする。各エビが違う動作をするとなると
また考えなきゃないが…コードは下に
nameArray = new array();
nameArray[0] = "ebi0";
nameArray[1] = "ebi1";
nameArray[2] = "ebi2";
tarako.onPress = function (){
myX = _root._xmouse;
myY = _root._ymouse;
for (i =0; i<3; i++){
result = _root.tarako.eval(nameArray[i]).hitTest(myX, myY, true);
if (result == true){
break;
}
}
if(result == true){
trace("ebi desu!");
}else{
trace("tarako desu!");
}
index++;
};
evalのとこは[]で十分じゃね?
76 :
Now_loading...774KB :2011/07/08(金) 20:54:06.04 ID:dV0X781S
環境) FlashProCS4,AS3,WinXP
FlashProのようなオーサリングソフトでのタイムライン動作をASで再現したいです。
今、試しにチャレンジしているのが、Sprite内のオブジェクトをドラッグ移動→停止(マウスUp)
する度に円形オブジェクトの位置が映画のフィルムのように記録されて行くものです。
つまりは、最初は
[ ● ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
ですが、コマが蓄積され
[ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ]
となって、任意の位置(例えば3コマ目)から
|→→
[ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ]
のように再生したいです(mc.gotoAndPlay(3)みたいな感じ)
ttp://flash-scope.com/scene_change_with_function_call.htmlを見ると 、
class Scene extends Sprite とあって、var scene:Scene = new Scene(引数);
とあるので、同じ様にsceneにSpriteを代入しようとしたが型の不一致エラーで駄目でした。
※参考サイトのSceneはSprite型なんですが・・・
サイトの方法には拘りませんが、ASで記録&再生したいです。どうすれば良いでしょうか?
オブジェクトの位置情報を配列に入れとけばいいんじゃない?
3Dオブジェクトだけどおなじようなことをやったことがある
>>77 のように記録用のクラスextends Objectを作って座標と回転を記録してBetweenAS3で動かしたよ
操作自体(上だと、マウスの動き)か、操作の結果(スプライトの動き)を記録して、 再生させるしか無いんじゃないかなぁ
80 :
76 :2011/07/09(土) 00:04:18.13 ID:9HM2gm5R
>>77-79 どうも。
う〜ん、スクリーンショットみたいな感じで(Sceneとして)記録してパラパラ漫画風に
再生したかったのですが・・・
やっぱ、パラメーターを元に再現するのが常道っぽいですね。
ここでの質問ではオブジェクトの位置のみですが、実際はコレ自体のグラデーションやら、
背景の色やら多くの情報があるので(それを元に再現するとなると大変なので)
要は楽したかったのです。
ならオブジェクトのクローン作って保存しとくとか
パラパラマンガだけでいいならBitmapData.draw()とかどうよ
以前も少し質問させてもらったんだけども、解決しなかったのでもう一度質問させてください。 AS3でURLLoaderを使って1MBくらいのデータをダウンロードしています。 で、ダウンロード中はFLASHの動作が重く、その他のムービークリップの動きが止まったり、 MOUSE_UPのイベントが全然発生しません。 たとえば、ダウンロード中にクリックを10回連打したら、 ダウンロード後にMOUSE_UPイベントが10回通知されるような動作になります。 addEventListenerではMOUSE_UPイベントの優先度を高く設定していますが、 やはりダウンロードのほうが優先されて処理されています。 これめっちゃ不便なのですが、なにかいい解決法はないでしょうか?
84 :
Now_loading...774KB :2011/07/09(土) 11:31:35.51 ID:/i7qHg8t
なんでビット演算の優先度低いの? a*2+bの時に (a<<1)+bってめんどくせーよ 直感的じゃないじゃん
ロード中はあまり他の処理をさせない方がいいんだって せいぜいアニメMCを流すくらいだ フラグ設定してロード完了するまで他の処理(マウスイベント等)を止めた方が吉 >MOUSE_UPのイベントが全然発生しません。 しょうがないんだって
なんでビット演算なんか使うの? 直感的じゃないじゃん
>>85 なるほど・・・ありがとうございます。でもそれだとちょっと問題が起こるんです。
とあるボタンがあって、それを押すたびにランダムで画像を読み込んで表示させるのですが、
ユーザがそのボタンを連打した時の対処が上手くいかないんです。
フラグ設定してロード完了するまで他の処理を止める方法もやってみたのですが、
ロードが完了するまでMOUSE_UPイベントが処理されないので、
全く意味がないのです。
マウス連打
↓
画像DL開始(ロード中フラグ立てる)
↓
画像DL終了(ロード中フラグ折る)
↓
2回目のMOUSE_UPイベントが処理される(ロード中フラグが立っていないので普通に画像DLを開始)
↓
画像DL開始(ロード中フラグ立てる)
↓
画像DL終了(ロード中フラグ折る)
↓
3回目のMOUSE_UPイベントが処理される(ロード中フラグが立っていないので普通に画像DLを開始)
↓
続く...
フラグが立っている間のイベントは無視するという狙いが完全にスベってます。
で、画像も結構重いので、しばらくの間何も操作が出来ない状態が生まれてしまいます。
クリック連打するなといいたいのですが、そんなのユーザは知ったこっちゃないですしね。
暫定的に今、ボタンをクリックすると、画像をDLする前にremoveEventListenerで
MOUSE_UPイベントを削除して、画像をDL完了した後にまたaddEventListenerでMOUSE_UPイベントを登録しています。
これでボタンクリック連打すると、上のように何度も画像がDLされることはなくなるのですが、
画像がDLされた後、1度だけまた画像をDLし始めます。
何か他にいい方法があれば教えてください。
わざわざremoveしなくても、mouseEnabled = falseでいいんじゃね? その現象が起きなくなるかは分からんけど
ロード中はボタンを
ここまで書いて
>>88 と同じこと言おうとしてることに気付いた
そのボタンのイベントハンドラ内のコードだけうpしてみてお フラグが立ってる間はキャンセルすりゃいいんだお function mouse_On( e:MouseEvent ):void{ if ( loadingFlg ) return;//ロード中ならキャンセル loadingFlgはメンバ変数 //以下 ロード開始処理 }
>>90 ロード完了後にまとめてマウスイベントが来るって言うんだから
前にクリックした分が10回ぶん列に並んで待ってるてことじゃない?
ロード中にクリックしたif(loadFlg)を処理するのはロード完了後だからまた勝手に読み込み始めちゃうんじゃ?
普通に考えてロード完了したらボタンのイベントつけりゃ済む話じゃねーのそれ
Loader.loadで指定されたURLが存在しない場合ってどうやって拾ったらいいかな 誰かイベント投げてくれるっけ?
loaderInfoがIOError投げてくれるんじゃなかったか
それがIOEイベント登録したけどなんにもくれんかった
loaderオブジェクトに付けてるんじゃなくて? loaderのloaderInfoに付けないとだが
contentLoaderInfoだった
>>96 contentLoaderInfoに付けて
loaderInfoに付けるとnullにさわんなって言われた
あ、URLカラにしたら拾った 拾う間違いと拾わない間違いがあるのかな
しかしload中にアニメーションさせると一瞬止まるのね バックグラウンドでloadしながらなんかするのは無理なのか
なにがおもろいのかわからんがBox2Dでググると幸せになれるかもな
おもしろいな
104 :
Now_loading...774KB :2011/07/14(木) 13:39:02.46 ID:gkzTEyv0
環境:XP-Pro,AS3,CS4
最初ブラー(blurX)フィルタがかかったMC(my_mc)をBetweenAS3で徐々にブラー
解除するようなコードを書いていますが、エラーが出て困っています。
(参考サイト)
ttp://corleonis.net/blog/?p=89 ttp://log.xingxx.com/2009/08/-betweenas3.html ブラーフィルタ設定は下記から始まり
var filter:BlurFilter = new BlurFilter();
filter.blurX = 10;
my_mc.filters = [filter];
ボタンを押したアクションとして下の様にしました。
function clickHandler(e:MouseEvent):void {
var _testTween:IObjectTween = BetweenAS3.tween(my_mc,
{filter: {blurX: 0}}, null, 5.0, Bounce.easeOut);// IObjectTween を作る
// 1046: 型が見つからないか、コンパイル時定数ではありません : Vector。
// と出る。 ITweenでも不可
_testTween.play();// tween 開始
}
これだとコメントにあるように、「コンパイル時定数ではありません」という警告が出て、
CS4でエラー箇所を参照するとBetweenAS3自体のクラス(ClassRegistry.as)が対象
となっています。
どう修正すれば良いでしょうか?
Flash10用の設定になってないとか。
Vectorが使えないとなるとそうだろうね ファイル→パブリッシュ設定→Flash→Player を確認
107 :
104 :2011/07/14(木) 14:46:26.55 ID:gkzTEyv0
>>105-106 さんきゅうです。やっぱり、Playerのバージョンが原因でした。
コンパイルはOKになったのですが、肝心のBetweenAS3動作でエラーになります。
※BetweenAS3自体のクラスで、「null のオブジェクト参照のプロパティまたはメソッドに
アクセスすることはできません。」が出ます。
この部分は
var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {filter: {blurX: 0}}, null, 5.0, Bounce.easeOut);
なのですが、ドコに問題があるか分かりません。
試験的にブラーフィルタではなく、MCを現在位置から単純にX=100に移動するように
var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {x: 100}, null, 5.0, Bounce.easeOut);
したところOKでした。
BetweenAS3動作は有効のようですが、フィルタに作用できません。
どうすべきでしょうか?
>>107 エラーの通り、参照先がnullになってるんだから
参照時点でfilter: {blurX: 0}が存在してないとかじゃないの?
>>107 そのエラーはだいたいnewし忘れが原因のことが多いかと
110 :
104 :2011/07/14(木) 16:06:57.10 ID:gkzTEyv0
>>108-109 分かりました。
BetweenAS3のスペシャルプロパティDisplayObjectのフィルタのトゥイーンを使えばOKでした。
var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {_blurFilter:{blurX: 0}}, null, 5.0, Cubic.easeOut);
// _blurFilterを適用
// トランジッションはCubic.easeOutにしました。
一応、ブラー幅は減少されるものの、ゼロになっても本来のシャープな画像にはならないようです。
ご指導、有難うございました。
>>110 まあ0になったらfunctionでブラーやめるとか。
>>111 度々すいません。こんな感じで出来ました。
my_btn.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(evt:MouseEvent):void {
var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {_blurFilter:{blurX: 0}}, null, 5.0, Cubic.easeOut);
_testTween.addEventListener(TweenEvent.COMPLETE, onComplete);
_testTween.play();
}
function onComplete(evt:TweenEvent):void{
my_mc.filters = null;
}
>>112 ああ。completeでもいいね。
functionならtweenの途中で引数つきメソッドを実行できるんだよ
tween系ライブラリたくさんありすぎてどれ使ったらいいのか考えるだけで面倒
BetweenAS3いったく
>>116 IObjectTween.asを見ればわかると思うけど、IObjectTweenはITweenにtargetのgetterがついただけ
targetを使わないならITweenで受け取っていいと思う
なんかいろんなサンプルもみんなITweenだし
// target の各プロパティに対する値のセッター、特殊プロパティの処理の提供などが主な役割。
// 各プロパティといっても、全てのプロパティに対して責任を持つ必要は無く、特殊化したいものだけ処理すればよい。
// たとえば DisplayObject に対するものであれば、主要な x, y, rotation といったプロパティのみに対する処理だけでも良い。
// それ以外のプロパティに関しては、全てのプロパティを扱うことができる汎用的な ObjectTweenTarget が責任を持って処理をするので
// 意識する必要は無い。
>>116 とりあえずIObjectTween使っとけば良いじゃんと思って、初めやったけれど
戻り値がITweenのメソッドが使えないからそうでもないと思う
解説は betweenas3 イージング でググるとチュートリアル的なページがいくつか見つかるかも
>>116 んー??
IObjectTweenってITween継承してるから
ITweenで定義されたメソッドはIObjectTween実装したクラスなら使えるんじゃない?
自信ないけど
既存のshapeにフィルターなどのエフェクトをつけたいのですが shapeをmovieclipにAS3を使って変換ってできますか? movieclipを作ってそこにshapeを描写するとかでなく、 文面どおりshapeをmovieclipに変換できるやり方があったら教えてください。
122 :
Now_loading...774KB :2011/07/15(金) 05:56:28.14 ID:z+dOWKOw
ねーよそんなもん Shapeにフィルタかけりゃいいじゃん
>>121 ですが何とか解決しました。レスどうもです。
>>125 activeden.netというサイトで自分の作ろうとしてたものが見つかったので購入しました。
uint型の値が和算や乗算でオーバーフローしたときの挙動は、どうなっていますか? どこかに仕様はありますか? できれば、Number型や他の数値型についても、同様にオーバーフローの挙動を知りたいです。
uintは単純に最大から最小とかその逆とかループしたと思う intも確かそうだった
129 :
Now_loading...774KB :2011/07/17(日) 13:22:27.68 ID:6kggsGu5
Numberがfloatのときもdoubleのときもある変態とかいう話をどっかで読んだんだが
as3.0でflvを再生しようとしてるんですが、youtubeとかみたいにまだバッファが読み込まれていない部分でも クリックするとすぐにその位置から読み込み直して再生するにはどうしたらいいですか?
131 :
Now_loading...774KB :2011/07/18(月) 01:44:18.57 ID:Y0PQiyf4
新規作成した空のフラッシュのコンパイルが無茶苦茶遅かったので調べてみたら なんかflaファイルのおいてあるサブフォルダを全て読み込みにいっるような感じなんだけど どういうこと?
>>128 int型同士の乗算結果は机上のビット演算と同様になるはずだけど、
結果を即座にint型変数に代入せずにそのまま計算式を続けると
勝手にNumber型に変換されて上位ビットが保持され下位ビットが失われる
ことがあるから注意が必要だよ
C++で難読化したリソースがAC3での展開時に壊れてハマったことがある
ユーザーが落書きしたり、画像に文字をつけたりして投稿するサイトを作りたいのですが、 参考になる本やサイトを教えて下さい。 オブジェクトなどの理解はありますが、それを駆使して作れないレベルです。
136 :
Now_loading...774KB :2011/07/18(月) 20:11:18.03 ID:VEOqFATk
関数クロージャでget関数を作ることは不可能ですか? たとえば、 function get hoge():Number{ return _hoge; } を var hoge:Function=(function():Function{ return get function():Number{ return _hoge; } })(); のようにして作りたいのですが、getを入れる位置が悪いのかエラーになってしまいます。
var _hogeFunc:Function; function get hoge():Number{ return _hogeFunc(); } って定義しておいて、どこかで _hogeFunc = function():Number{ return _hoge; } てやるしかないんじゃないかなぁ
>>136 ユーザーがマウスを使って線を書いたり、文字を入力する表示の部分が
特に知りたいです。ライブラリとかでありますか?
>>139 とりあえず入門wikiの該当しそうな箇所読めば一通りのことはできるようになる
けど文字入力の表示?ができないレベルだと最初から読んだほうがいいかも
>>138 やってみます。
ありがとうございました。
142 :
Now_loading...774KB :2011/07/20(水) 19:36:46.98 ID:Ama4B2Lc
(使用環境)AS3,WinXP,FlashCS4 オブジェクト(MCとか)を動かした時の自作イベント通知の書き方と仕組みの立て方が 分かりません。 ※文章が長くなりましたので2つに分けます。 テキストフィールド内容変更時の tf.addEventListener(Event.CHANGE, リスナー関数) の 通知と同じ様な仕組みを目指しています。 つまり、 ドラッグで動かす ←○→ ==========>(mc1へ変更の通知)==========> □ mc0 mc1 のように「動いたら通知」を実現したいです。ASでの流れとしては下がドラッグに関しての記述です。 mc0.addEventListener(MouseEvent.MOUSE_DOWN, mc0_onMouseDown); function mc0_onMouseDown(evt:MouseEvent) { evt.target.startDrag(); } mc0.addEventListener(MouseEvent.MOUSE_UP, mc0_onMouseUp); function mc0_onMouseUp(evt:MouseEvent) { evt.target.stopDrag(); } // 通知イベントの発生 *** 理想としてはこんな感じ *** mc0.addEventListener(OperationEvent.CHANGED, changeFunc); function changeFunc(evt:OperationEvent) { trace("位置が変更されました "); mc1.dispatchEvent(evt); }
143 :
142 :2011/07/20(水) 19:38:38.96 ID:Ama4B2Lc
(上[142]の続き)
自作イベントとしては、package内に下の様に書きましたがここから先どう書き換えれば良いか分かりません。
import flash.events.Event;
public dynamic class OperationEvent extends Event {//Eventを継承
public static const CHANGED:String = "changed";
public function OperationEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false):void {
super(type,bubbles,cancelable);
}
public override function clone ():Event {
return new OperationEvent(type, bubbles, cancelable);
}
public override function toString ():String {
return formatToString("OperationEvent", "type", "bubbles", "cancelable", "eventPhase");
}
}
参考にしたサイトは下記です。
1)
ttp://source-laboratory.net/blog/?p=161 2)
ttp://tamushou-web.net/wp/archives/1500 3)
ttp://melancholy.raindrop.jp/wordpress/?p=668 4)
ttp://d.hatena.ne.jp/saliy1/20100510/1273507396 目標に一番近いのは4)ですが、「対象の位置が変更されたらイベント発生」の書き方が分かりません。
どなたかアドバイス下さい。
一番簡単なのは、addEventListener Event.ENTER_FRAMEで 条件判断してEventDispatcherクラスのdispatchEventを呼ぶ方法かな。
ドラッグ中にmouseMoveそのまま使えばいいじゃんとしか思わないけど mouseMoveの中で好きなだけカスタムイベントdispatchすりゃいいんjじゃね?
146 :
Now_loading...774KB :2011/07/21(木) 03:07:41.69 ID:g/3eOb5j
質問させてください テキストについてです あいうえおれらの文字を 1文字ずつ あ 次に い その次に う と右から画面中方にだして 止めるのはどんなASを書けばいいか教えてください
147 :
142 :2011/07/21(木) 13:17:38.92 ID:fxudowbK
>>144-145 レスありがとうございます。
そうですね、小難しいことをせずにmouseMoveを使えば良いですね。
>>146 自分で調べないで丸投げするような質問に答える人はいないよ
一応レスしてあげる
Vista Flash CS4 As3.0です。 ボタンAを押すことで addchild(hoge_mc)を使い、ステージに表示させる事までは出来ました。 次に表示させたhoge_mcを 別のfunctionから動かそうとすると 1120 未定義のプロパティhoge_mcへのアクセスです。 とエラーが出てきてしまいます。 ネットや本で調べてみましたが、生成したfunction以外のfunctionからのアクセス方法がわかりません。 よろしくお願いいたします。
>>149 > 生成したfunction以外のfunctionからのアクセス方法
意味がよくわからんのだが、要するにエラーの通り、hege_mcがない
もしくは参照が間違ってるんでしょ
hoge_mcは、いつ、どこで定義されてるの?
funtionとやらも、いつ、どこで定義されてるの?
それがわからない第三者に、アクセスの仕方を訊かれても答えようがないと思うぞ
hoge_mcは、ボタンAを押した時に生成、表示した後にマウスに重なるように。 SetBtn.addEventListener(MouseEvent.CLICK,SetOn); function SetOn(e:MouseEvent):void { var mc = new Carsol(); stage.addChild(mc); addEventListener(Event.ENTER_FRAME,onMove); } function onMove(e:Event):void { mc.x=stage.mouseX; mc.y=stage.mouseY; } としています。ボタンを押すことでhoge_mcの表示。まではできているのですが、次のマウスの位置にあわせる。というところで詰まっています
var mc:Carsol=new Carsol としてみました。 function onMove 内の mc.x=stage.mouseX; mc.y=stage.mouseY; はどうすればいいのでしょうか?。ここが解ればremoveも同じようにうまくできると思いますので よろしくお願い致します。
>>153 ドキュメントクラス(と仮定するが)で、mcを定義していたら後は変更する必要は無いはず
まずvar mc:Sprite;とでも、mcを定義しておいて、その中身は
function setOn()内で、newすればいい
function setOn()内で、var mcとしてもローカル変数になるだけ
おそらく、今の書き方はごっちゃになっている
155 :
Now_loading...774KB :2011/07/22(金) 19:53:18.60 ID:M+1wY94S
タイムラインと見た
>>153 functionの外に private var mc:Carsol; みたいに定義しないと
他のfunctionから参照できないんじゃない?
カーソルのつづりってcursorじゃなかったっけ
カーソルじゃないんだろ
いっそFlaファイルをUp
160 :
Now_loading...774KB :2011/07/23(土) 22:04:19.54 ID:SiW5uF0z
AS3,XP-Pro,CS4(CS5)です。
BetweenAS3で関数をトゥイーンとして利用するにはどうしたら良いでしょうか?
※一応作りましたがエラーが出ます。
元々はオブジェクト(wrap)がEvent.ENTER_FRAMEで0.1度づつ回転するに伴い、フレーム毎に
rotFuncを呼び出してwrap内の子に対して処理をしていましたが、ボタンを押すことで
・現在の回転角度より → 徐々に遅くなるイージング処理を伴い1秒後に+36度回転
・この+36度回転の最中にwrapの子(10個)は常にrotFuncの処理で深度が入れ替わる
としたいです。
つまり、rotFunc→rotFunc→rotFunc→rotFunc→(回転が遅くなる)→rotFunc→ストップ
という感じで限定された時間内でトゥイーンとして動作させたいです。
ttp://oshige.com/flash/as3study/betweenas3/ を参考に下の様にしました。
function _testTween(rotFunc:Function):ITween;//定義
_testTween = BetweenAS3.tween(wrap, null, { $rotationX : 36 },1.0, Sine.easeOut);// +36度回転
_testTween.play();
これだとコンパイル時に「1126: 関数にボディを含めることはできません。」というエラーが
出ます。
どうしら良いでしょうか?
>function _testTween(rotFunc:Function):ITween;//定義 これは・・・ var _testTween:ITween; こうじゃないか?
162 :
160 :2011/07/23(土) 22:34:53.39 ID:SiW5uF0z
CS4(CS5)とはいかに
164 :
160&162 :2011/07/23(土) 22:50:34.42 ID:SiW5uF0z
再訂正:
ごめんなさい。var _testTween:ITween; では一見動くように見えますが、
wrapの子を処理するrotFuncが実行されていないので結局、回転変化がありません。
>>163 時々CS5も使うという意味です。
CS4の方がフォントの指定とかで楽なんで。
そりゃrotFuncがどこにも書いてないからな
166 :
160&162 :2011/07/23(土) 23:05:15.01 ID:SiW5uF0z
具体的になにがやりたいのかさっぱりわからん
>>166 を見てボタンとかイージングとかはなんとなく分かった
rotFuncはいつ行いたいの?
BetweenAS3使ったこと無いけど、UPDATEイベント発行してくれるみたいだから _testTweenにリスナー付けてその中で深度変更、とかでいいんじゃないの
169 :
160&162 :2011/07/24(日) 00:05:41.40 ID:nelAHRmY
>>167 rotFuncは_testTween.play()による開始から終了までです。
Event.ENTER_FRAMEで単純にクルクルと回すだけでしたらOKだったのですが、
時間限定で動かしてなおかつイージングが出来ません。
>>168 _testTween.addEventListener(TweenEvent.UPDATE, _onUpdate); で
public function rotFunc (e:TweenEvent){処理}
で実行するとエラーは出ませんが、相変わらず回転と番号が一致しません。
------
FlaファイルとドキュメントクラスのASとSWFをZipでUpしました。
http://cgi.geocities.jp/p77org/upup/upload.cgi?mode=dl&file=1318 ※DLキーは 1 です。(800KB)
rotFuncはドキュメントクラスの下の方にあります。
度々すいません。よろしくお願い致します。
170 :
160&162 :2011/07/24(日) 00:08:33.00 ID:nelAHRmY
(上の訂正) _testTween.addEventListener(TweenEvent.UPDATE, _onUpdate); ↓ _testTween.addEventListener(TweenEvent.UPDATE, rotFunc);
トゥイーン中はエンターフレームでやらせたいってこと? 回転と番号のとこ詳しく どうなるのが理想なの?
172 :
160&162 :2011/07/24(日) 00:34:07.44 ID:nelAHRmY
ファイル見たけど、tweenのfromで渡した$rotationXが一定だから 毎回同じ位置から回転が始まってるんじゃないかと 毎回tweenを作り直して、$rotationXをその都度変えて渡すとかすれば やりたい(であろう)動作になるんじゃないかな
174 :
160&162 :2011/07/24(日) 01:15:59.00 ID:nelAHRmY
>>173 Zipファイルを見て頂き有難うございます。
どうやら、ストリング($)を使った回転の相対値によるトゥイーンだと駄目なようなので、
回転の目標値を wrapRotTo = wrap.rotationX + 360/panelKazu; で指定して
_testTween = BetweenAS3.tween(wrap, { rotationX :wrapRotTo }, null, 1.0, Back.easeOut)
またこの間の監視として
_testTween.addEventListener(TweenEvent.UPDATE, rotFunc);
とすればOKでした。
当初のコードよりはスマートな状態ではありませんが、これで良しとします。
Upしました:
http://swfup.info/view.php/0923.swf あれ・・・ Web上では番号と板回転が一致しない。
スタンドアローンではOKなんですが・・・ まあなんとかなりますw
ActionScriptの質問というか、設計についての質問です。 開発環境:Flex Builder4 今、お絵描き掲示板を作ってるですが、FlashからPOSTで画像データを送ると モバイルノートPCなんかの低速回線だと時間がかかって 送信がタイムアウトしてしまう事があるみたいです(bmpをpngにエンコードしたものを送信してます) こういう場合、どういう設計にするのが良いでしょうか。 POSTじゃなくてコネクション張って送信、みたいな形にすれば良いのかなぁと思うんですが Red5みたいなストリーミングサーバを使えばできるものでしょうか??
package { import flash.display.MovieClip; import mx.collections.XMLListCollection; import mx.controls.MenuBar; public class Main extends MovieClip { private var MyMenuBar:MenuBar = new MenuBar(); private var menuBarCollection:XMLListCollection; private var menubarXML:XMLList = <> <menuitem label="Menu1" data="top"> <menuitem label="MenuItem 1-A" data="1A"/> </menuitem> </>; public function Main() { menuBarCollection = new XMLListCollection(menubarXML); MyMenuBar.dataProvider = menuBarCollection; addChild(MyMenuBar); } } } MenuBarクラスを使って画面の上部にメニューバーを表示したいのですが、 FlashProfessionalCS5、AIR2、FlashPlayer10で新規ドキュメントのメインタイムラインで このコードを実行してもメニューバーが表示されません。どうしてですか? ライブラリへのパスは通してあるのでmxで始まるパッケージが読み込めていないということはないはずです。 このコードはアドビの公式リファレンスガイドに載っていたmxmlファイルに記述するはずのコードを asファイルに記述できるように必要な部分だけ抜き出したものなのですが、そこで何かを間違えたのでしょうか。 そもそも、mxで始まるパッケージをFlashProfessionalで使用することはできるのでしょうか?
mx.〜はFlex用だからFlashじゃ使えない
>>180 そんなかんじ。SDKからもってくるだけだけど
そもそもMenuBarクラスつかえてるんでしょ?
なんにもせずにmxパッケージが使えるのはそれはそれで変な気がするんだが
>>181 上のページの方法を試したところ確かにmxパッケージは読み込めているようなのですが、それでもメニューバーは表示されません。
MenuBar以外にも、
import mx.controls.Alert;
Alert.show("テスト", "テスト", Alert.YES | Alert.NO);
を実行しても何も起こりません。
読み込めているのに動作しないということはまだどこかが間違っているのでしょうか?
mxのコンポーネントって初期化のプロセスとかあったりするから flashでコンパイルしたswfじゃ無理だと思うんだけどなぁ まぁそこまで追ってないから分からんけど
ああー コンポーネントか それは試したことないな 俺が使ったのはBase64とかだから
FileReferenceでローカルのflv動画とりだしてNetStreamに入れてVideoDisplayて再生しようとしているんだけど 再生、一時停止はできるんだけどseekができない 誰か知らない?
flv側にキューポイント作ってねーんじゃね?
それはないと思うyoutubeから撮ってきたテスト用動画だし
いろいろ調べてみるとこの現象っぽい ここでは原因不明
http://kinsentansa.blogspot.com/2011/07/flexflashnot-in-air2011.html 通常(ネット上のパスからとってくる)
netStream.play(動画のURL);
今回のやつ(ローカルから取ってくる)
netStream.play(null);
netStream.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);
netStream.appendBytes(fileReference.data);
今回のやつのソースで netStream.seek(数値)が動作しない
188 :
Now_loading...774KB :2011/07/26(火) 18:13:07.41 ID:Qsmh/f+E
WinXPでCS4,AS3 CS4のライブラリのMCをStageにaddChildしようとしています。 この時、このMC内のフレームに定義した関数を使ってShapeのGraphicsで描画しようとすると ShapeとGraphicsオブジェクトが null になってしまいます。 つまり、ライブラリのMCのフレームASを下のようにしました. var sh:Shape = new Shape(); var gr:Graphics = sh.graphics; addChild(sh); trace("grとsh "+gr+", "+sh);// 出力 [object Graphics], [object Shape] ←※ OK // addChildしたときに呼び出される塗り関数 function shadowing(num0:Number) { trace("num0= "+num0+", "+gr+", "+sh);// grとshが null になる gr.clear(); gr.beginFill(0xCCCCCC, 1-num0);//透明度を指定 gr.drawCircle(0, 0, width/2);//半径は土台の半分 gr.endFill(); } 星印のようにそのまま trace("grとsh "+gr+", "+sh); で呼び出せば問題無いのですが、 関数内で呼び出すと駄目のようです。 どうすべきでしょうか?
この質問大杉 shadowingを実行するオブジェクトにgrの参照がないんだろ 伝えといてやれ
190 :
182 :2011/07/26(火) 20:50:18.78 ID:jTsTClvw
>>183 >>184 そうですね。mxパッケージを使うのは無理そうなので諦めて他の方法を使うことにします。
そしてListコンポーネントを使った代用方法を考えていたのですが、また別の問題に当たってしまいました。
Listコンポーネントに表示する文字に書式を設定することはできないのでしょうか?
タイムラインにListのインスタンスlistを配置し、下のコードを実行してもフォント等が変更されません。
var tf:TextFormat = new TextFormat();
tf.font = "Arial";
tf.size = 16;
tf.bold = true;
list.setStyle("textFormat", tf);
しかしList以外のもの、例えばButtonクラスのインスタンスbuttonを配置して
button.setStyle("textFormat", tf);
を最後の行に加えるとbuttonのフォント等が正しく変更されます。
ListがtextFormatスタイルに対応していないのかと思い公式のリファレンスで調べてみると
ちゃんと継承されていますし、どうして上手くいかないのか全くわかりません。
>>188 MCをstageにaddChild()して、さらにそのMCのフレームアクションでshをaddChild()してるのか?
何がいつどこから呼び出されるのかいまいち明確じゃないが、
>>189 のいうように
参照がとれていないのでないなら、フレームアクション使ってることが問題
フレームアクションは実行順序が遅めだから、MCをnewした時点で実行したいアクションは
MCのコンストラクタ内に書くべき
192 :
Now_loading...774KB :2011/07/27(水) 20:35:01.49 ID:3HVWfNwT
FLASHでの実現方法を教えていただけないでしょうか。
http://www.qjnavi.jp/pc/ ←こちらのサイトのトップ部分にある、
動的なマップをFLASHで制作したいです。
現在制作しているものでは、近いところまでは出来るのですが
全く同じアクションではありません。
【上記サイトのアクション】
・サイトを開いた時点では、マウスオーバーで各地方の表示が出る。
・その地方のボタンをクリックすると、都道府県ボタンが表示される。
・一度クリックすると、都道府県の表示が固定されて、他の地域をマウスオーバーしても動かない。
【実際制作しているFLASH】
上記と同様、各地方のボタンに「on (release, rollOver) {gotoAndPlay(2);}」というスクリプト挿入。
⇒これでは地方ボタンをクリックした後、別地方ボタンをマウスオーバーした際、その別地方の
都道府県が表示されてしまう。
↑これを回避して、地方ボタンを一度クリックしたら表示が固定され、別地方をマウスオーバーしても
動かないようにしたいです。
要するに上記サイトと全く同じ仕組みを、FLASHで作りたいです。
どのシンボルにどのようなスクリプトを挿入すれば良いか教えていただければ
大変有難いです。
宜しくお願いします。
【環境】
Windows Vista
Adobe FLASH CS4 (AS2.0)
動的なマップじゃねーじゃん と思ったけど動的なマップ生成のことじゃないのか おまえさんがどう作ってあるのかぜんぜんわからん。 県ごとにMC作って個別にライトアップしてるのか フレームごとに違う県がライトアップされてるのか とりあえずフラグになる変数を作って一回目のクリックがあったかどうか保存させとけば?
asではないんですが、シンプルな画像をflashのシェイプに変換するツールみたいなものってありますか?
Flashだったらビットマップの分解 Illustratorだったらライブトレース
Flashでビットマップをベクターの線に変換できたららくだよなあ
>>195-196 ありがとうございます。flashに最初からついてるとは知りませんでした。
ただ、単純な画像でもかなり生成されるシェイプの頂点の数が多くなりますね。
クラスインスタンスのメンバ変数をリストみたいにして取得することはできますか? カスタムクラスのインスタンスのデータを全てsharedobjectに保存したいのですが、 一括して処理する方法がわかりません。 下のようにfor in関数でメンバ変数を一括取得したいのですが、できません(traceに何も出力されない) public class Test { public var a = 45; public var b = "gtstee"; public var c = {}; public var d = []; public function Test(){ } public function show(){ trace("*" + this.a); trace("*" + this.d); for (var n in this){ trace(n); } } }
>>198 describeType()でXML形式で取得するという方法はある
200 :
188 :2011/07/28(木) 15:16:08.61 ID:wM9Ue1hf
>>189 >>191 有難うございます。タイムラインでなくASファイルでの再現プランBで
検討していましたが、タイムラインでもOKでした。
newした時にmc.func0(abc)とかで呼び出すのではなく、タイムライン内で定義
しておいた func0(abc) を同じフレームで実行させるようにしてけばOKでした。
※実質、コンストラクタと同じ動作??
>>195-196 Flashのビットマップの分解でやると図形がガタガタになる場合があるから
俺はあまり使いたくない。
1週間位まえに白黒画像ならラスタ→ベクターの変換が出来るソフトの
ニュースがあった。 URLは失念
>>199 やりたいことはdescribeType()でやるのとほぼ同じなのですが、調べてみたら
describeType()ってちょっと不便そうですね。プライベート変数はリストしてくれないなどなど。。。
メンバ変数の数が多いので一つ一つ書き出していくのも面倒だし
保存するデータを別のオブジェクト上に作成するのも見づらくなるし、
何かスマートな解決方法はないでしょうか。
>>201 インスタンス自体をByteArrayに変換してそのまま保存するとか
>>200 そのソフトぜひとも知りたいな
だれか
>>187 わかんない?
やろうとしているのは裏でFileReferenceやURLStreamを使ってダウンロードしつつ
NetStreamにappendBytesで追加しながら再生って感じなんだけど
(横レス)
>>202 あー、なんか面白そう!
早速、「インスタンス ByteArray 変換 保存 ActionScript OR AS3」でググったけど
参考になるサイトが見つからない。
なんかお薦めのサイトありますか?
「ActionScript clone」でググるとそれっぽいのが出てくるが
>>204 writeObjectするだけだよ
そしてprivateは無理っぽい
208 :
207 :2011/07/29(金) 00:24:05.61 ID:9JQOI9XB
potraceならつかったことあった aiにしてくれるんだっけ
211 :
Now_loading...774KB :2011/07/29(金) 17:55:30.99 ID:5jOO7+7Z
AS3,FlashCS4 配列の要素の組合わせでswitch〜case判別は可能でしょうか? つまり(形としては)配列arrの中身が3要素(全部整数)で N,M,L とかであったとき、 switch (arr) { case 0,1,2 : trace("1番目!"); break; case 7,7,4 : trace("2番目!"); break; default: trace("-- 該当無し!"); } という感じにしたいです。 if文を使うのもアリだと思いますが、switch〜caseの方がスマートな書き方が出来そうなので 質問することにしました。 if(arr[0]== 0 && arr[1]==1 && arr[2]== 2){ trace("1番目!"); } else if(arr[0]==7 && arr[1]==7 && arr[2]== 4){ trace("2番目!"); } else if ・・・
>>211 配列の中身が一桁の自然数または0だという制限があるのなら、
arr[0]*100+arr[1]*10+arr[2]で1つの整数にするって手もあるよ
スマートかどうかは別として
2進数限定にしてそのまま足すとか でもif文なら最初の条件文で大多数跳ねることができるから計算コストいいと思うの
すごい初歩的であほくさい質問かもしれないけど…、 タイムラインエフェクトってアクションスクリプトで制御出来る? 例えばASで特定のオブジェクトにドロップシャドウかける、とかって可能?
215 :
211 :2011/07/29(金) 20:32:12.15 ID:dwUNbkoR
>>212 なるほど。でも各要素は0〜14なので。
>>213 2進数限定にしてそのまま足す
すいません。もう少し詳しく。
>>214 リファレンス読む限りではできる
俺はやったこと無いけど
>>215 >>211 の形にしたいなら、速度的にはアレだろうけどjoin()で文字列にしちゃうとか
>>211 できない。
他の人が書いてるけど、
if文のほうが可読性が高くて良いと思うし、
AND条件で結合するかぎり、コスト的に問題ない。
>switch〜caseの方がスマートな書き方が出来そうなので
スマートとはおもわんが。
>>211 そういうのはRGBと同じ考え方で判定するのがいいよ。
//3パターンの値の入れ物(RGB値みたいなもん)
var abc:uint;
//3種類の値をセット
var a:uint = 0, b:uint = ,c:uint = 2;
//RGBみたいな感じで連結(足す)
var a:uint = 0;
var b:uint = 1;
var c:uint = 2;
//判定したい式を定数にしておくと楽
const ZERO_ONE_TWO:uint = 0x012;
const SVN_SVN_FOUR:uint = 0x774;
//判定
switch(abc){
case ZERO_ONE_TWO:
trace("012のパターン");
break;
case SVN_SVN_FOUR:
trace("774のパターン");
break;
}
//フラグ判定の場合 ex:aの値が10、bcの値は問わない場合
const A_GA_TEN:uint = 10<<8;
if(A_GA_TEN == (abc & A_GA_TEN)){
trace("aが10");
}else{
trace("aが10でない");
}
ああ、 var a:uint = 0, b:uint = ,c:uint = 2; の行は消してちょうだい。
ああ、あと肝心のの連結部分が無いな a、b、cの値決めた後にこれ入れて abc = a<<8 | b<<4 | c; 酒飲んでる度駄目だ。ごめんよ。
>>215 あーごめん
同じ数取りうるならダメだ。忘れて。
223 :
211 :2011/07/29(金) 22:36:25.53 ID:tgOAr9Ae
>>218-222 どうも。
結局、各要素の数字を2桁の文字列にして合成し(例:011305とか030512)、
これをif文で判定する方法を採用しました。つまり、
if(str=="011305"){
//処理
} else if(str=="030512"){
//処理
}
という感じです。
2桁にする手間あるならカラーと同じ方式のほうがいいんじゃ
225 :
35 :2011/07/30(土) 03:42:22.78 ID:g1zzBQyi
AS2のswapDepthsで困っています。 1フレームと5フレームをボタンで行き来するようにして、1フレーム目にあるMCにswapDepths()をかけてMCを前に出した後、 5フレームに行ってまた1フレームに戻ると、先にかけたswapDepths()が無効になります(-16383と出てくる)。 それはいいのですが、これをfunctionにして5フレーム目から呼び出しても1フレーム目ではやはり無効になって引っ込んでしまいます。 具体的にはこんな感じです 1フレーム目(細部省略) //深度を増やすfunction function f_increase_depth (){ myMC.swapDepths(100); Shindo = myMC.getDepth(); trace(Shindo); } f_increase_depth (); myBtn1.onPress = function (){ _root.gotoAndStop(5); }; 5フレーム目 myBtn2.onPress = function(){ _root.gotoAndStop(1); f_increase_depth ();//5フレームからfunctionを呼び出す }; functionは呼び出されています。swapDepthsは一度かけると、同じMCにはもうかからないのでしょうか?どうすれば、前に出てくれるでしょう? お願いします。
226 :
35 :2011/07/30(土) 03:56:55.01 ID:g1zzBQyi
すみませんやや自己解決しました 5フレーム目の行を入れ替えて、1フレームに飛ぶ前にfunction()を呼び出せば 大丈夫なようです。失礼しました。
AS3で関数Aの引数に関数Bを指定した渡した時に、 関数Bの名前を文字列に変換して取得することは可能ですか? デバッグの時にtraceで関数Bの名前を表示させたいのですが。 下のようにするとtraceで B ではなく function Function() {} が帰ってきます。 A(B); function A(func:Function){ trace(fucn);} function B(){}
無理なんじゃないの。別に識別子持たない関数もあるし。 なんでそんな事したいわけ?
テキストフィールドがあるMovieClipをaddChildで表示させ、 その時テキストフィールドに rootにあるvar TextCont:String="ありがとう"; を読み込ませ、表示させたいと思っています。 ステージ上にあるテキストフィールドには TextBox.text=MovieClip(root).TextCont で表示させることができるのですが addChildしたMovieClipの場合だと TypeError: Error #2007: パラメータ text は null 以外でなければなりません。 というメッセージが出て、変数をtraceしてもnullとなっています。 addChildしたMovieClipからrootの変数を参照する場合はどうしたらいいのでしょうか? ぜひお教え下さい。よろしくお願い致します。
エラー見る限りでは、rootの変数を参照できてないんじゃなくて MovieClip側のTextFieldをちゃんと指定できてないみたいだけど
たぶんaddchildするmcの1フレーム目にでも書いてあるんじゃないの? 普通にaddchildしてからtext設定すれば済む話だと思うけど。 どうしてもmc側に書きたかったらroot使う場合にはADDED_TO_STAGEイベント使うのがいいと思うよ。
ここにソース書けばいい
質問させて頂きます。 マイクとスピーカーがPCにそれぞれ2台づつ接続されているとして、 それぞれのデバイスを選択出来るようにしたい場合、AS3.0ではどのようにすれば実現可能でしょうか? 選択した側のスピーカーからのみ(左右のパンではなくデバイスの選択)音を出力するようにしたいと考えています。 マイクはMicrophoneクラスのgetMicrophone()で取得出来そうなのですが、 スピーカーはどのように制御出来ますでしょうか? ご回答よろしくお願いします。
いらん方のプラグ抜け
Javaでいうstatic初期化ブロック static{ } に変わるものってありますか??
236 :
235 :2011/07/31(日) 13:04:46.93 ID:zp3GL9rM
おっと、static{}なぞ付けずにメンバ定義部に直接記述したら出来ました。
237 :
Now_loading...774KB :2011/07/31(日) 14:41:29.77 ID:vh1tdRrN
true返すstaticメソッドにして private static var _initClass:Boolean = _init(); という手も
238 :
Now_loading...774KB :2011/07/31(日) 16:46:45.51 ID:sj9IgLJ8
WinXP-Pro,CS4(AS3) SWFを読み込むLoaderを持つMCを子としてルートにaddChildして、子(MC側)から 子自身をルートより削除したく思っています。 構造は下のようになっています root[ MC[ Loader(SWF) ] ] // ルートから見てLoaderは孫 記述は private function deleteB_onClick(e:MouseEvent) {//削除ボタンを押して実行 root.removeChild(this); } とすると「DisplayObject は呼び出し元の子でなければなりません」のエラーが出て困っています。 親子関係が正確でないと上記のエラーが出るとのことなので、 this.parent.removeChild(this); としましたが同じでした。 また if (root.contains(this)) root.removeChild(this); でも同じでした。どうすべきでしょうか?
よみこむmcのparentはloader parent続けて階層ちゃんと確認してみ
あと読み込むmcのrootは読み込むmcでのrootになるからその手の処理にゃ向いてないよ 普通にparentで辿ってけばいいんじゃね?
241 :
238 :2011/07/31(日) 17:20:31.23 ID:sj9IgLJ8
>>234 >>233 です
使わない方のスピーカーを外すということは出来ないのですが、Flashでは制御不可能ということでしょうか?
スピーカーが2つ接続されている場合にどちらから音が出るかは分からないということでしょうか?
OSでの設定に依存するんじゃないのそれは
244 :
Now_loading...774KB :2011/08/02(火) 01:52:03.93 ID:4WoTYgHc
AS3(CS4)でnewしたテキストフィールドの文字サイズを調整したいのですが 出来ません。 var myTxt:TextField = new TextField(); // myTxt.width = 400;とかでテキストフィールドの枠の大きさ等を指定 var tf0:TextFormat = new TextFormat(); tf0.size = 30;// 本来は12ptだが仮に30とした myTxt.setTextFormat(tf0); addChild(myTxt); どこに問題があるのでしょうか?
>>244 そのままコピペしたけど、ちゃんとサイズ変わったよ(CS4じゃないけど
他に問題あるんじゃないかなぁ?
246 :
244 :2011/08/02(火) 03:21:04.08 ID:4WoTYgHc
>>245 すいません。原因が分かりません。
タイムラインに書いたASを丸ごとコピペします。
System.useCodePage = true;
var myTxt:TextField = new TextField();
myTxt.border = true;
myTxt.width = 400;
myTxt.height = 300;
myTxt.x = 250;
myTxt.y = 150;
myTxt.type = TextFieldType.INPUT;
myTxt.textColor = 0x000000;
myTxt.background = true;
myTxt.backgroundColor = 0xFFFFFF;
myTxt.multiline = true;
var tf0:TextFormat = new TextFormat();
tf0.size = 30;
myTxt.setTextFormat(tf0);
addChild(myTxt);
これでも手打ちしても字が小さいもままです。
文字入れたあとにsetTextFormatしないとダメみたいだねぇ
248 :
244 :2011/08/02(火) 03:39:50.95 ID:4WoTYgHc
QuickBox2D AS3ですが var j:QuickObject = sim.addJoint({ a:obj1.body ,b:obj2.body,frequencyHz:3}) このように書いた場合frequencyHzを変更する場合どのようにしたらいいでしょうか?
frequencyHzって自分で定義したもの?
質問です。 複数のシンボルがあり、それぞれのシンボルにスクリプトを記述している場合、 どういう順序で処理が行われるんでしょうか? 例えば「シンボルA」「シンボルB」「シンボルC」があって、 それぞれに「trace("A")」「trace("B")」「trace("C")」って記述したとして、 どういう法則で順番が決定されるんでしょうか。
オーサリング段階で配置されてる場合にはレイヤー順だったかな 実際に自分の環境でどういう順番になるか試してみれば?
その順番に依存するようなプログラム書くなよ
配列について、ArrayとVectorのどちらを使用しようかと考えています。 配列の要素の型は自分で作ったクラスです。 型がそのクラス固定で、少しでも速度が速い方がいいので、Vectorの方がいいかと思いましたが、 なぜかas3.0のリファレンスに載っていませんでした。 なぜVectorクラスがリファレンスに記載されていないのでしょうか? また上記の場合ArrayとVectorのどちらを使うのが好ましいでしょうか?
>>255 回答頂いたURLでVectorクラスのリファレンス見つかりました。
また、ArrayじゃなくVectorクラスの方を使ってみようと思います。
どうもありがとうございました。
エディタで変数関数の補完が使えるvector一択だな arrayじゃ開発できる気がしないw
FDならArrayでも補完できますしおすし
まあVector一択だけど、10からだしなー
Arrayも宣言で/*(型名)*/付けてやれば補完出るけどね var array:/*int*/Array;みたいな感じで FlashDevelopだけど
ホントだスゲー しかし使う人いるのかこれw
使ってるよ
メインタイムラインでtrace(getBounds(stage));を実行すると (x=6710886.4, y=6710886.4, w=0, h=0)ってトレースされるのはなんで?
>>260 何それすごくありがたい
これでescキーいちいち押さなくてすむ罠
actionscript3.0からプログラム始めた超初心者です。 わかる方、助けてください。 ボタン押すとランダムで音が鳴るようにしたいんですが、 var SE_0:Sound=new SE_0(); var SE_1:Sound=new SE_1(); var SE_2:Sound=new SE_2(); var SE_3:Sound=new SE_3(); と、リンケージしたファイルを宣言して、 function btnClick(e:MouseEvent):void { var rand = Math.floor(Math.random() * 3); var playSE = "SE_" + rand; playSE.play(); } とやってるんですが、プレビューすると TypeError: Error #1006: value is not a function. って出てしまって再生されません。 playSEをトレースするとちゃんとSE_0とかSE_1とかになってるんですが根本的に間違っているんでしょうか?
>>265 根本的に間違ってる。
var playSEはString型になるから、playSE.play()とやっても、play()メソッドが無い。
たしか、this[playSE].play()でできたような気がする。
playSEはStringになっちゃってる 配列アクセス演算子で文字列からオブジェクトを取得できたと思うから (this[playSE] as Sound).play(); でいけるかな? だけど普通なら配列にいれる
>>266 回答ありがとうございます!
var rand = Math.floor(Math.random() * 3);
var playSE = "SE_" + rand;
playSE.play();
を
var rand = Math.floor(Math.random() * 3);
this["SE_" + rand].play();
にしたらなりました。
[]で連結するんですね。
本当に助かりました。こんな時間にすぐ回答があって嬉しかったです。
ありがとうございました。
泣きながら寝るわ
>>267 回答ありがとうございます。
まだ始めたばかりで何が普通で何が普通じゃ無いかがわからなくて困ってます。
かろうじてランダムでならす場合、if文やcase文でやってたら手間がかかるっていうことはわかってこの方法を試したました。
配列も本で見てみましたがまだ全然理解できていません。頑張ります!
あー。ASが初プログラムって書いてあったな めずらしい 配列まだなら仕方がない 次からは気軽に初心者スレにおいでなさい
>>271 ありがとうございます!
もともとFLASHでアニメとかを作っていてアクションスクリプトにはほとんど触れていなかったんですが、
最近になってゲームを作りたくなって本買って勉強始めました。
またとんちんかんな質問をすると思いますが、よろしくお願いします。
>>272 プログラミングは、簡単なサンプルコードが沢山載ってる本を買って
改造したり組み合わせたりして遊んでみるのが一番手っ取り早いし面白い。
MovieCLip.removeMovieClip() を唱えると、 そのMovieClipとMovieClipの持ち物がすべて削除される、、、 そう思っていた時期が僕にもありました。 マジカ
as3でクラスのインスタンスにnull突っ込んだ時も そのインスタンスの変数って自動的にはGCの対象にならないの?
>>274 子をすべてremoveChildってだけならその願い、もうすぐ叶うよん
>>275 参照されてなければなるよ
そもそもnullつっこむことが参照いっこ消すってことだし
>>276 あー。インスタンスが残ってる時にインスタンス変数にnull突っ込むのか
たぶんなると思う
結局インスタンス変数には参照が入ってるわけだし、その参照を書き換えるんだから元の参照先のオブジェクトは参照カウント減ると思う
AS2であったMovieClipの複製はAS3ではなくなったそうなので、 コンストラクタからクラスとって生成という方法があるそうですが、リンケージされたMCしか出来ないんでしょうか 座標とかはともかく複製さえできればいいんですが・・・ 他に方法があればそれでもいいんですが、今更数千もあるSWF内のバーツを全てリンケージするのも辛いなぁ、と。
できないもんはできない リンケージの設定くらいだったらJSFL書いてマクロ流せば?
AS2の時だってduplicateするにはリンケージしてたんだろ クラス名に変えるだけだよ hakuhinにそんなJSFLあったかもね
AS2はすでに負の遺産だな
負の遺産が一番金稼いでるんだけどな 現場にいない人にはわからんか
時代遅れ現場乙^^;
ありがとう。AS2書ける奴がAS3書けないというわけもないので、せいぜい頑張ってちょうだい。 稼げるうちに稼がせてもらうだけだわ。
285 :
Now_loading...774KB :2011/08/07(日) 01:44:12.20 ID:JFC/iiOO
・・・「今話題の」AS3です。 int型表記のRGB色を16bitの6桁表記(お馴染みの0xFFFFFF表記)にする 際に桁数を6に整形するにはどうしたら良いでしょうか? 例えば、緑色はintで65280ですが、65280.toString(16) だと 0xFF00 になり、 実質4桁になってしまいます。 ※青なら0xFFで2桁 文字列長を調べて頭に0を付ければ良いかも知れませんが、もっとスマートな 方法を探しています。 どなたかヒントを下さい。
× int型 ◯ uint型 × 16bit ◯ 24bit (65280 | 0x1000000).toStrig(16).replace("x1","x"); 一行だけどスマートじゃないか…
微妙に関係ないしスマートでもなんでもないけど ちょうど先日書いたので投下 private function randomColor():int { var red:int = 120 + Math.round(Math.random() * 100); var green:int = 120 + Math.round(Math.random() * 150); var blue:int = 120 + Math.round(Math.random() * 100); var hex:int = red << 16 | green << 8 | blue; return hex; }
289 :
Now_loading...774KB :2011/08/07(日) 13:47:28.61 ID:EYFyB/5X
>>287 なんかしらんけどgがrの領域侵す可能性ない?
正直言うとweb探して見つけた方法だから、ビット演算とかよくわからないんだ。すまんかった
291 :
Now_loading...774KB :2011/08/07(日) 17:11:17.16 ID:EYFyB/5X
なにがやりたかったのん?
いきなりだけど ビルトインクラスを、無許可で書き換えるのは コンプライアンス的にアリですか?
どうやって書き換えるの?
開発環境インストールしたとこの クラスバスにあるtweenなどの asファイルを直接書き換えます。
>>295 あれ?
検索するとtween.asとかでてきません?
>>296 mxパッケージのやつ?
Adobe permits you to modify
ってあるからいいんじゃね?
ありがと。 一応改変を許可してるんですね。 今のプロジェクトで、いじくりまわした奴がいて パブリッシュするのにビルトインクラスを 差し替えないといけないという 謎な状況でして…
それはビルトインクラス継承したクラス作っといた方がいいんでないの? 同名のクラス使いたいんだったら別パッケージで作っておくとか。 たぶんあとで困るぜ。
ああ、もう困ってんのかw
いじくりまわすとかすげーな でも ビルトインA←ビルトインB の時Aいじりてえーって時たまにあるわ 単純にA継承したの作ってもBが使えなくなっちゃう
303 :
285 :2011/08/08(月) 04:35:40.72 ID:tKsF/93u
フリーランスのas3とjavaのプログラマ雇うとして 月給の相場ってだいたいどれくらいですか?
CS4 AS3.0で質問です 下記のような鑑賞動画を切り替える構成で… 1フレーム目 FLVムービークリップその1 2フレーム目 FLVムービークリップその2 3フレーム目 FLVムービークリップその3 例えば1フレームから3フレームへgotoAndStopすると 2フレーム目のムービークリップのBGMが1回だけ再生されて聞こえています 3フレーム目ではその2のムービークリップは削除してあり違う動画が再生されています 逆に3フレーム目から2フレーム目へさかのぼっても1フレーム目の動画は聞こえません 各フレームstop();で止めていますが何を注意したらいいのでしょうか?よろしくおねがいします
1F ループ動画+ジャンプリンク集1 2F リンク1用の動画A 再生が終わったらリンク集1へ戻る 3F リンク1用の動画B 再生が終わったらリンク集1へ戻る 4F ループ動画+ジャンプリンク集2 5F リンク2用の動画C 再生が終わったらリンク集2へ戻る 6F リンク2用の動画D 再生が終わったらリンク集2へ戻る やっぱり例えばリンク集1からリンク集2(4フレーム目)へgotoAndStopすると 何故か一つ前の3フレーム目に置いた動画が聞こえたり 6フレームの目の動画を再生し終えて4フレーム目に戻らせると 3フレーム目の動画が聞こえます……orz
フレームに埋め込んだ動画の制御はやっかいなんだよな ガチャガチャいじくってうまい具合の感じを見つけるしかないw 動画と動画の間には空白フレーム入れたり 親のフレーム移動の時は子のFLVはしっかり停止させたり… イベント、ストリーミング再生の指定ってのはサウンドファイルだけだっけ
AS3のSWFLoaderで他のswfを呼び出しています。 その時SWFLoaderでloadForCompatibility=trueにしてswfをロードして 作成したカスタムイベントクラス(いろいろ値を渡したい)でイベントを通知したいのですが、 同じクラスファイルを使用して投げたものを受け取り側で受け取ろうとすると 強制変換エラーで受け取ることができません。 マルチバージョン前提なのでloadForCompatibility=falseにすることもできません。 なんとかなるものでしょうか。よろしくお願いします。
>>308 今作ってるそれは、loadForCompatibility=falseにすれば動くの?
>>309 はい。普通に変換でエラーにならずイベントを受け取ることができるんです。
>>310 じゃあどう見てもそこがネックなんで無理でしょ。
sharedObject経由で情報共有とかで逃げるしかないんじゃないかな。
イベント通知も多分無理だろうから、値の変化を監視する感じで。
くわしくどんなエラーなの?
>>307 直前のフレーム素材が再生されてしまうならと
空白も挟んでみたんですけどやっぱり再生されるんですよね…
>>311 このパラメータをtrueにしたとき、他の方法とかあれば思ったのですが。
sharedObjectだと受け付けないって設定されちゃってると泣けそうです...
>>312 [Fault] exception, 情報=TypeError: Error #1034: 強制型変換に失敗しました。common::MyIDChangeEvent@793a471 を common.MyIDChangeEvent に変換できません。
こんな感じで型変換に失敗します。
呼出元のクラスと呼ばれるクラスが別管理になってしまってる?感じなんでしょうか...
>>314 カスタムイベント周りの型変換エラーっていうとまっさきにcloneをオーバーライドしてないやつが思い浮かんだけど、それとは違うみたいだねえ
>>315 cloneは書けってどっかに書いてあったので、言われるがままに書いてありますw
標準のイベントはなんでOKなのかか解決の糸口だったり?と思ったりするんですけど、どうやって調べればいいのやら...
>>316 別サンドボックスというか、別名前空間扱いになってるような感じじゃない?
それだったらイベントのリスナー関数は呼び出せてるのかな。
引数を*型で受け取って、取り出したいプロパティの値を配列アクセス演算子で取り出すとかできそうじゃない?
function eventHandler(e:*):void{ trace(e["propertyName"]); } みたいな感じって事ね。
>>318 ありがとうございます。
その方法がいいのか悪いのかがわからず、クラス定義があるのに、スマートに書けないかと思って質問させてもらいました。
新たな糸口(キレイに書ける方法)が見つかるまで、その方法で進める事にします。
みんなさん、ありがとうございました!
そだね。ダイレクトなキャストが駄目なら、受け取った値を元に、そっち側で該当クラスのインスタンスを 再構築して扱うようにしとけばいいんじゃないかな。直列化と復元みたいな感じで。
>>304 30万くらい?20でいいから俺雇ってくだしあ
322 :
Now_loading...774KB :2011/08/09(火) 18:14:38.48 ID:knC8GOmZ
AS3,CS4,WinXPです。 CS4のライブラリパネル(アセット?)にある部材の大きさを取得するには どうしたら良いでしょうか? 例えば、ライブラリパネルに "Fig0" という画像(実質ビットマップ)があったとして、 これを参照する方法です。 宜しくお願います。
よくわかんないけどスクリプトでってこと? newしてサイズ聞いてみたら?
var ClassList=[ClassA,ClassB,ClassC]; // ClassA,B,Cとかは全部クラス var test=new ClassA(); // ClassAのインスタンスを作成 if(test is in ClassList){trace("成功")} みたいに成功を出したいんですが、 isとinを同時に使用できません。 どうしてもforループを使わずにinとか一行でやりたかったらどうしたらいいですか?
インターフェース…
AS3でstageのscaleModeがNO_SCALE以外のモードのときにクライアントサイズを変えた場合、 クライアントの幅、または拡大倍率を調べること方法はありますか? NO_SCALE以外の場合、サイズをかえてもstageWidthは変わらないし またstage.scaleXも1.00のまま変わりません。
Win vista CS4 ステージに配置した矩形MC上の任意のポイントをクリックした時に、 そのクリックしたポイントをステージ中央に移動させたいと思っています。 box.addEventListener(MouseEvent.MOUSE_DOWN, boxMove); function boxMove(event:MouseEvent):void { Pox=box.mouseX; Poy=box.mouseY; img_box.addEventListener(Event.ENTER_FRAME,onEnterframe); } function onEnterflame(eventObj:Event):void { img_box.x += ((clickX - img_box.x)/5); img_box.y += ((clickY - img_box.y)/5); // if (Math.abs(img_box.x)<10) { img_box.x = (0-clickX); img_box.y = (0-clickY); img_box.removeEventListener(Event.ENTER_FRAME,onEnterflame); } } ここまでやってみたのですが、上手く動きません・・・ 熱暴走しそうです・・・ぜひ解決法をおしえてくださいお願いします
>>327 具体的にどう動かないの?
clickXってなに?
frameの綴りはあってるんだろうな?
>>326 無いんじゃ?サイズ変更でポイント数(ピクセル数じゃないよ)変わったら配置ガタガタになるし。
変わってもらっちゃ困るでしょ。
330 :
Now_loading...774KB :2011/08/10(水) 16:47:19.30 ID:COKW9jJr
FlashCS5(FlashIDE)上でコンパイラオプションを指定、 例えばinclude-librariesを指定したい場合どうしたらいいんでしょうか?
331 :
Now_loading...774KB :2011/08/11(木) 05:34:04.37 ID:CK3wec4N
CS4(AS3)でWinXP。 以前どっかのサイトで、MC(またはスプライト)をファイルとして書き出すライブラリを見たのだが URLを失念してしまった。 誰か知らなイカ?
swcにしたら?
一時的に作るビットマップデータのバッファって 参照が消えた時点でGCの対象になりますか? それともdispose()を支持しなきゃいけないんでしょうか?
ならないからdisposeがあるんだよ
335 :
331 :2011/08/11(木) 20:42:49.84 ID:3YUeXS1d
>>332 どうも。swcはASで読み込めないような・・・
通常のFlashからASで読み込みたいです。
>>335 ランタイムで読み込むってこと?
そのライブラリについては知らないけど、無理じゃないかな
プロパティを全部読み取ってByteArrayにして保存→逆変換
ならできるだろうけど
337 :
331&335 :2011/08/11(木) 21:46:40.87 ID:3YUeXS1d
338 :
Now_loading...774KB :2011/08/12(金) 16:30:49.60 ID:HdghjN7l
FlashCS4,AS3,WinXP
CS4でFlexのmxパッケージを使いたいのですが、テストに成功したもののAlertクラス
が使えず困っています。
参考にしたサイトは
ttp://sazzzzz.blog15.fc2.com/blog-entry-258.html で、ここの
DateFormatterはOKだったのですが、Alertクラスを使うため下記の記述をしたところ
エラーと警告が沢山出ました。
//メインタイムラインに書きました
import mx.controls.*;
import mx.events.*;
var alert0:Alert = new Alert();
alert0.buttonWidth = 160;
alert0.yesLabel = "同意します";
alert0.noLabel = "同意しません";
alert0.show("選択してください。:", "確認", alert0.YES | alert0.NO, this);
//YES,NOを選択した時のイベント設定は未だです
addChild(alert0);
つまり、CS4のプレビューでアラートのパネルを出したいです。
どう変更したら良いでしょうか?
めんどくせーからFlashBuilder買えよもう レイアウトの要素がからんでくる物は無理だっての
FlashDevelopで作れば? スクリプトで何かやるのにわざわざCS使わなくてもと思ってしまう
as3で面倒だからimport記述したくないんですが記述しない方法ってありますか?
ねえな 同じパッケージならワイルドカード使えるけど 全パッケージimportしたファイルをincludeするとか? まあFD使えってこった
宣言すれば勝手にimport付くのはFlashだとCS5からだったっけな?
超初歩的な質問だけどお願いしていい? AS2でシューティングゲーム作ってて、効果音実装し始めたところなんだ。 とりあえずショットしたときの音鳴らそうと思って shot_se.start(); 使ってみたんだけど、 実際起動してみるとショットしたタイミングと効果音が再生されるタイミングがズレてるんだ。効果音の方が若干遅れてる。 ショットした瞬間に効果音鳴らすにはどうすればいい?
どこでstart()させたのか分からない AS2ってplay()じゃないんだな。はじめて知った
346 :
344 :2011/08/12(金) 22:11:36.94 ID:HVglvfa4
>>345 自機に直接AS書いてます。ショットに関係する部分抜き出すと以下のような感じ。
onClipEvent( load ) {
var shot_se = new Sound();
shot_se.attachSound( "shot_se" );
}
onClipEvent( mouseDown ){
//SEを再生
shot_se.start();
//ショットを出現
_root.attachMovie("shot_mc","autoshot"+shot_depth, shot_depth + 1001); //オブジェクトの読み込み、オブジェクト名の決定
}
ある程度は仕様 Flashはインタラクティブな音の再生には向かない ある程度以上ってんなら音ファイルに無音部分があるとか
348 :
344 :2011/08/12(金) 22:33:58.16 ID:HVglvfa4
ショットの出現方法を変えるか、音の再生方法を変える(どうすれば良いか想像できないが)しかないんじゃないかな マウスクリックだけで効果音がどうなってるか確認した?
一番手軽なのは容量小さくすること 音質下げたりステレオからモノラルにしたりとか
asで効果音扱ったことないんでわからんけど、効果音の後ろにでも無音部分作っといて、 ゲーム中常時無音部分ループ>マウスダウンで効果音頭に再生位置変更 とかだめ?頭から読み込むよりは早そうな気はするが
353 :
Now_loading...774KB :2011/08/13(土) 06:08:36.28 ID:FdJ7pEgh
環境) WinXP-ProでFlashProCS4(AS3) 特にAS3に限った話では無いのですが、startDrag中のオブジェクトがマウスドラッグの 移動スピードに追い付けず、フォーカス(?)が外れた場合の対処法です。 例えば、マウスポインタを上矢印「↑」で表し、ドラッグ対象を ○ とした場合、 ○ ・・・(ドラッグして)・・・ ○ ↑ ↑ であればOKなんですが、追従できずに ○ ・・・(ドラッグして)・・・ ○ ↑ ↑ となった時は、ポインタの位置とオブジェクトの位置が一致出来ずおかしな状態になります。 50fpsにして速い反応をしているつもりですが、この際にドラッグを解除したいです。 どうすれば良いでしょうか?
フレームごとにオブジェクトとマウス座標を比べて一定以上離れてたらドラッグ解除 そうでなければ追従処理すれば?
これで独立できる
売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://tinyurl .com/43xmk7m
http://tinyurl .com/3mopkfy
>>353 startDragってコマ落ちはしてもそんなズレたりしたっけ?
まぁ、ダウン>startDrag>アップ>stopDragでなく、
ダウンしたらマウスムーブかEnterFrameでも置いて、
追従するよう自分で座標+-計算でいいんじゃない?
357 :
338 :2011/08/13(土) 13:38:07.51 ID:6PvYtQXR
>>354 >>356 EnterFrameで監視する案を採用しました。
だいぶ改善しましたが、有る程度のマウスの速さになるとやっぱり追従から離れますが・・・
取り急ぎ、有難うございました。
3.0では無理 そもそもグローバル変数というものがOOPに則してない しかもリンクの例だとObject型使ってダイナミックにメンバを追加してるからよろしくない ダイナミックでなくていいなら同じようにパッケージ変数で public const globalNum:Nymber; ってすればできるかもね ていうかGlobal.つけるくらいめんどくさがってたらなんもできないだろ
なるほど、そんなものなのですか。 今まで変数の宣言もしなくていい言語を使ってたので 何でも面倒くさいです
>>358 EFでどういう計算してるかわからんけど、
マウスダウンポイントからマウスが動いたxy分、
インスタンスの初期xy値に足せばズレるはずがないと思うんだが・・・
>>361 俺も2.0の頃はしてなかって3.0に移行した時にクソめんどかったけど、慣れればわかりやすいしいい感じ
WIIN CS4 です ドラッグ出来る親ムービークリップの中に 縦横10個ずつムービークリップをタイル上に番号を付け敷き詰めています。 ステージ中央の現在、何番目のムービークリップがあるのか判定する場合 どのような方法があるでしょうか? 自分だと、As2.0の時にはセンサーのようなMCを置き、そのMCでEnterFrameで HitTestでやっていると思うのですが、他にもっと負荷の少ない方法や 精度の高い方法があればお教え頂きたいです
365 :
Now_loading...774KB :2011/08/15(月) 16:57:19.36 ID:fEzLS5eN
AS3,FlashCS4です。 ※文章が長くなりすいません。 fl.motion.AdjustColorとflash.filters.ColorMatrixFilterを使った MCのHSB(HSV)色変換をしたいのですが上手くいきません。 記述は、クラスHSBtoCMF_01に必要なクラスをインポートして var colorFilter:AdjustColor = new AdjustColor ; var mColorMatrix:ColorMatrixFilter; var mMatrix:Array = []; var targetMC:MovieClip = new MovieClip ;//対象のMC のように変数を設定しました。 ここでH,S,Bの各値をhsbH,hsbS,hsbBで指定し、HSBtoCMF_01で colorFilter.hue = Math.floor(hsbH);//整数化(-180〜180) colorFilter.saturation = Math.floor(hsbS*200-100);// 整数の-100〜100 colorFilter.brightness = Math.floor(hsbB*200-100);// 整数の-100〜100 colorFilter.contrast = 0; trace("Data= "+Math.floor(hsbH)+", "+Math.floor(hsbS*200-100)+", "+targetMC);//目的の値は出る mMatrix = colorFilter.CalculateFinalFlatArray(); mColorMatrix = new ColorMatrixFilter(mMatrix); targetMC.filters = [mColorMatrix]; としました。実際の利用では下のように書きました。 var cmf:MovieClip = new HSBtoCMF_01(); cmf.iroChange_byHSB(); 対象のMCは最初緑色なのですが、colorFilter.hue,colorFilter.saturation, colorFilter.brightnessで0,0,0を与えているので理想通りに動けば赤黒っぽい色 になる筈なのですが緑色のままです。 どうしたら良いでしょうか?
>>364 よくわからんけど、ドラッグできるMCで現在画面の中心にある子MCはどれかってこと?
enterFrameで親MCの現在座標から現在ルートの中心は親のローカル座標でどこなのかわかるから、
あとは敷き詰める式から逆算して左から何番目、上から何番目のMCがそれにあたるかを計算すればいいよ
>>364 ルートの中心座標を(xc,yc)とすると
親MCから親ローカルの(xc-親MC.x,yc-親MC.y)がルートの中心にいることがわかる
あとは配置方法次第だけど、だいたいは幅で割ると出てくる
フラッシュ初心者です ボタンを押して特定のフレームへジャンプする方法はわかるのですが ボタンを押さないで特定のフレームに移動する方法がわかりません。 例:24フレーム目にくると、自動で2フレーム目に移動(そして、stop又はplay等) 初心者すぐる質問ですいません。 早急な解答をまってます。
370 :
Now_loading...774KB :2011/08/16(火) 12:10:39.77 ID:xp+j5qug
flash.net.NetConnection でサーバが死んでるのにcallし続けるとメモリが増え続ける気がします。 どうもタイムアウトがないみたいで、airだと設定できるみたいなんですが、 それ以外の場合はどうするんでしょうか?
クラス毎に自前でデストラクタみたいなのを作っているのですが、 関数名はrelease()とkill()とどちらの方がいいですか? 今release()でやっていますが、何か問題ありますか?
372 :
365 :2011/08/18(木) 03:04:22.51 ID:FlDhQ4xt
(自己レス) 原因が分かりました。 fl.motion.AdjustColorとflash.filters.ColorMatrixFilterを使ったMCのHSB(HSV) 色変換というのは、実際には色の移動(シフト)であり、元の色が基準になります。 colorFilter.hue,colorFilter.saturation,colorFilter.brightnessに0,0,0を与えると、 なにも移動しないので(移動度がゼロなので)何も変化しません。 というか、フィルターなので、Graphicsのような着色では無いので当たり前ですが・・・ 取り敢えず色の変更は出来ましたが、colorFilter.saturation,colorFilter.brightnessと colorFilter.contrastを100にしてhueだけを変更しましたが、どうも正しい色相環の色を 再現出来ません。 なので、このASは今後の課題として保留します。
373 :
Now_loading...774KB :2011/08/18(木) 03:33:02.70 ID:dIphjZtv
FlashCS4のAS3(Player10)
HPに書いてあるASをコピペして実行させたところエラーが出て困っています。
ttp://ojigotts-app.zono.cc/2010/01/29/scrollpane/のコードを元にScrollPaneをステージに addChildしようとしています。
//下はMouseEvent.CLICKで実行
var editArea:Sprite = new ScrollPaneClass();
addChild(editArea);
これだとSWFはScrollPaneClassの子である赤と黒の部分しか出ず、下記のエラーが出ます。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at fl.containers::ScrollPane/drawBackground()
デバッグモードでプレビューしても同じで、原因箇所の行番号が分かません。
どこに原因があるのでしょうか?
374 :
373 :2011/08/18(木) 05:17:17.85 ID:dIphjZtv
(追記) 似たような記述(多分HPの元コード)を見つけました。これを元にしたASの コンストラクタ内は下記になりましたが、これでも同じエラーが出ます。 var aSp:ScrollPane = new ScrollPane(); var box:MovieClip = new MovieClip(); drawBox(box,0xFF0000);//box内に赤い矩形を描く aSp.source = box;//MCをソースとして利用 aSp.setSize(150, 200); aSp.move(100, 100); addChild(aSp);//Sprite内にScrollPaneを設置 function drawBox(box:MovieClip,color:uint):void {//矩形を描く関数 box.graphics.beginFill(color, 1); box.graphics.drawRect(0, 0, 150, 300); box.graphics.endFill(); } 原因が全く分かりません。
すごい初歩的な質問かもしれないけど…、AS2で、音の管理について質問。 例えば「A.wav」「B.wav」「C.wav」の3つのファイルがあったとして、 それぞれ別個に音量や再生の管理をしたい場合ってどうすればいいの? 音は1つのムービークリップに対して1つまでしか設定できないって読んだんだけど、 ムービークリップを3つ用意してそれぞれに対応する音を設定していくしかないの?
>>375 今どうやって鳴らしてるか知らないけど、wavならライブラリに読み込んでリンケージ名付けておく。
で、Soundクラスに読み込んでおいて鳴らしたい時にstartすればいいんじゃない?
//リンケージ名「SE1」の場合
var se1:Sound = new Sound();
se1.attachSound("SE1");
se1.start();
377 :
375 :2011/08/18(木) 15:58:24.72 ID:Ean+uDzo
>>376 返事どうもです。
今は以下のように書いてるんですが、この場合se1のボリュームだけをいじってるつもりなのに、
se2のボリュームまで変わってしまうんです。
ちょっと質問が変わりますが、それぞれ個別にボリュームを設定するにはどうしたらいいんでしょう?
onClipEvent( load ){
var se1 = new Sound(this);
se1.attachSound( "se1" );
var se2 = new Sound(this);
se2.attachSound( "se2" );
se1.setVolume(50);
}
//↓それぞれ任意の場所で
se1.start();
se2.start();
それと、
>>376 のソースの1行目にある「:Sound」ってなんでしょうか?
>>377 たしか、ボリュームはMCごとの管理だから
複数MC用意して、それぞれにサウンドオブジェクトを割り当てるしか
なかったと思う
うろ覚えなので、間違ってたらすまん
>>377 >>378 の言うとおり。こんな感じ。
//サウンド管理用MC2つ準備
var soundMC1:MovieClip = createEmptyMovieClip("soundMC1",this.getNextHighestDepth());
var soundMC2:MovieClip = createEmptyMovieClip("soundMC2",this.getNextHighestDepth());
//ひとつめの効果音
soundMC1.se = new Sound(soundMC1);
soundMC1.se.attachSound("SE1");
//ふたつめの効果音
soundMC2.se = new Sound(soundMC2);
soundMC2.se.attachSound("SE2");
soundMC2.se.setVolume(10);
あとはstartでいけんじゃない?
「:Sound」とかは型宣言。やっとくとコード入力する時に楽だから付けてる。使わないなら無くてもいいんじゃない?
380 :
373&374 :2011/08/18(木) 18:53:59.70 ID:CWhZ5+0I
(追記) 更に検証したところ、どうやらScrollPaneをaddChildするときにエラーになっているようです。 しかし、addChild(aSp);の代わりの trace("aSp= "+aSp+", "+aSp.source); では正しく参照できます。 aSp.addEventListener(Event.COMPLETE, completeHandler);を使おうと思いましたが、外部ファイルを 読み込む訳でも無いので止めました。 どなたかアドバイス下さい。
381 :
373&374 :2011/08/18(木) 19:12:51.49 ID:CWhZ5+0I
(自己解決しました) CSシリーズでは、使用するコンポーネントを予めFlaのライブラリに 登録しておくことを忘れていました。
SharedObjectについてなんですけど、セーブ時にflush()を行っているのですが、 セーブ後にブラウザを閉じるとセーブされていない、ということがあるようなんです。 それまでのセーブは出来ていて、ブラウザを閉じる前の最後のセーブが出来ていない、 という感じです。 原因や対策方法など分かる方いらっしゃいますでしょうか? AS3です。
最後のセーブの後に何かの処理が干渉してるっぽいな ロードやセーブの度にSharedObjectをnullして参照を断てばおk ロード、セーブボタンをクリック もしくは何かのタイミングで ↓ SharedObjectをnew ロードやセーブ処理行う ↓ 実行後SharedObjectをnull セーブ処理をクラスにしてる場合は 「クラス内の全部のメンバ変数(リファレンス変数だけで可)をnullにするリムーブメソッドみたいなの」 を実行してから最後にインスタンス自体をnull
プログラマーってみんな一日に12時間ぐらい働いてるの?
386 :
Now_loading...774KB :2011/08/19(金) 16:57:14.46 ID:ZkPCe8/e
単純なint型数値の比較で ifよりも switchが速い事を確認できるサンプルコードがありましたら教えて下さい もしくは作ってもらえませんかw
時間ができたのでやってみました 自分で振っておいてすんません 60fpsにして10個の判定をforで3億5千万回処理 forの処理の前後のフレームでData().timeのミリ秒計測 処理無し 2102, 2779, 2084 2秒ちょっと if文 else有り 61805, 61807, 61934 61秒後半 if文 else無し 62594, 62612, 62699 62.5秒ちょい switch文 60742, 60754, 60800 60秒後半 やっぱswitchが速いですな もっと判定が多かったり非力なマシンだと差が顕著に出るのかも
ふーん。 switchのほうがはやいなんて初めて聞いたわ ==しかないときはそっちのほうがいいってことかね
389 :
Now_loading...774KB :2011/08/19(金) 22:51:59.96 ID:4qhkJuGD
FLASHを一切触ったことがないプログラマーです。 Box2DFlashAS3ライブラリを利用して今回Android向けの アプリケーションを作成することになりました。 開発環境についての質問なのですが、Adobeのどの製品を 買えばよいか教えてください。 下記2候補を考えてます。全ての機能を網羅している 開発環境はどちらなのでしょうか? Adobe Flash Builder 4.5 Premium Adobe Flash Professional CS5.5 Androidアプリの利用はAir形式で出力して利用予定です。
外部の画像を読み込んで表示させるswfを作っています。 ここまでできましたが同じ階層に3つの画像の有無を (優先順位aaa.png→ bbb.png→ccc.png)順番にチェックして あるものを1つ表示させたいです。 loadMovie(aaa.png,_root); loadMovie(bbb.png,_root); loadMovie(ccc.png,_root); これだと、aがあってもcが無いのでなにも表示されませんでした。 どうやって条件分岐したらよいのでしょうか・・
_rootを見てやっと2.0の話だな、と思ってゆっくりスレを閉じます
392 :
389 :2011/08/20(土) 08:25:30.90 ID:4p6xOqfz
公式に書いてたわ BuilderとProfessional両方いるんだな。 次はFLEXを買う必要があるか検討してみる Flash Builder、Flash ProfessionalおよびFlexの違いは何ですか? Flash Builder:Flash Builderは、FlexおよびActionScriptアプリケーションデベロッパー用の 、Eclipseベースの生産性ツールです。Flash Builderを使用すると、デベロッパーは、 インテリジェントなコーディング、インタラクティブなステップスルーデバッグ、メモリおよび パフォーマンスのプロファイリング、ユーザーインターフェイスレイアウトの視覚的な デザインなどの機能を使用して、アプリケーションをよりすばやく構築、テストおよび 最適化することができます。 Flash Professional:Flash Professionalは、クリエイティブなプロフェッショナルがWeb サイトにインタラクティビティを追加するために使用される、アニメーション化されたSWF およびFLVコンテンツを作成するための、タイムラインベースの生産性ツールです。 Flash Professionalには、基本的なActionScript編集のためのActionScriptエディターが 含まれていますが、高度なActionScript編集を行う場合、大半のActionScriptデベロッパー はFlash Builderを使用しています。カスタムFlexコンポーネントは、Flash Professionalを 使用して作成し、Flash Builderに読み込むことができます。 Flexフレームワーク:Flexは、アプリケーションを作成するために使用する、基礎になる オープンソースのフレームワークです。Flexフレームワークは、モバイル、Web、 デスクトップ用の表現豊かなアプリケーションを迅速に開発するために必要な、 宣言型言語、アプリケーションサービス、コンポーネント、データ接続を提供します。 特定のニーズに合わせてFlexを拡張、改良したり、オープンソースFlex SDKプロジェクトを 通じてFlexの進化に貢献したりすることができます。Flexアプリケーションの作成には Flexフレームワークしか使用することができませんが、ほとんどデベロッパーは、 アプリケーションの開発を迅速に進めるためにFlash Builderを使用しています。
始めてならFlex SDK(無理)とFlash Develope(無料)で十分できると思うよ。 Box2Dならビジュアル面は画像を読み込んで適用するだけだし まあ仕事で買ってくれるんならどっちも買ってもらうか、PSとかAiのパックで両方入ってるのにすれば?
394 :
389 :2011/08/20(土) 09:03:21.44 ID:4p6xOqfz
PSとかAiとかプレミアムスイートとか、まったくよく判らない 造語で俺を惑わせようとするAdobe本当に大嫌いだわ とりあえず両方入ってる中で一番安そうな Adobe Creative Suite 5.5 Web Premium 買うことにした
torrentでごにょごにょするとただで手に入る ただしなんで英語版使ってるのかって聞かれた時の答えを考えとかなきゃいけない
AndroidアプリはCS5.5だけで全然おk
>>390 チェックしたいなら入れ物用のMCを用意してその中に読み込まなきゃだめだ
空のMCを複数配置して全部にインスタンス名を付けておく で読み込んだ後そのインスタンス名でアクセスだ
mc1 〜 mc3まであるなら全部消してから任意のMCを表示
条件判定のif とか 表示非表示の_visible とかはハクヒンさんとこででも勉強してくれ
398 :
Now_loading...774KB :2011/08/20(土) 23:17:11.62 ID:qowVSgjA
CS5 AS3 タイマークラスで、途中に間隔を変える方法を教えてください。 var time:Timer=new Timer(1000,12); のとき、偶数回数のときは、間隔を1000から3000にしたいのです。 よろしくお願いします。
そこは見ていましたが理解できませんでした。
理解しろw ディレイタイムは途中で変更不可なんだろ stop()してnewし直すしかない
フラッシュのプログラミングってイベント地獄なんだけど、 他のwindowsのプルグラム言語もみんなこんな感じなの? 応用が利かないなら他のJavaScriptとかに移行しようかとかんがえてる。
まずASはWindowsのプログラミング言語ではないが… イベント駆動が嫌なら、昔ながらのBASICとか? まぁこっちはこっちでGOTO地獄が待ってるけど
イベント地獄が嫌ならどういうのならいいんだ
超根本的な質問だけど、AS3.0の利点って何? いまAS2.0でゲームを1つ完成させた所なんだけど、2作目を引き続き2.0で作ろうか3.0勉強しようか迷ってる。 まだAS2.0すら習得しきれてない状態だから、むしろ変なクセが付かないうちに3.0に行った方がいいのかなとか。 趣味で作ってるだけだから、3.0に移行しなくても全然問題ないんだけど。 例えば3.0だと断然こういう点が優れてるよ、3.0勉強する価値あるよとか、その辺教えてくれないか?
軽い。機能豊富。ライブラリ多い。
>>405 >>406 の言うとおり
処理が速いうえに、3.0じゃないと使えないライブラリ、機能等があるから
3.0に移行したほうが断然いいよ
質問するにしても、2.0に詳しい人はどんどん減っていくだろう
参考になる書籍やソースも3.0、新機能も3.0ばかりになっていく
結果的として、3.0のほうが作業も速く、完成も早くなる
AS3だとAIR2.6のAIRアプリが作れる AIRアプリが作れるとAndroidアプリやiPhone/iPad/iPod touchアプリも作れる
今のプログラミングってみんなAS3みたいにイベント駆動なんですか?cとかも?
操作に応じて処理切り替えたいなら、イベント駆動になるわなあ。どの言語だろうが。
イベントをリスナー登録してる全てのオブジェクトに一度に送出する機能が欲しい。 dispatchEventToAllみたいな。
意味わかんね。 addEventListenerしときゃ登録したもの全部に届くだろうに。 それ根本的に使い方間違ってるのに文句言ってない?
間違ってるのかな? 親子関係にないオブジェクトだと自分に直接addEventListenerを使った場合、 そいつに直接dispatchEventしないとリスナー関数が実行されないから、送出する対象がたくさんいる場合に面倒に感じるんだよね。 イベントごとにリスナーのリスト作ってループかければ済む話なんだけど。 それとも「自分に直接addEventListenerを使う」って所からして使い方間違ってるのか
さっぱりわからん 自分自身でも関係無いし イベントリスナーってそもそも「リスナーのリスト」を自動管理する仕組みだし
確かに意味わからんな マウスイベントだと、クリックした部分ととその親の他にマウスイベント登録した全部のとこにいかせたいの? 確かにカスタムイベントをABCに登録して、AにdispatchしてもBCは受け取らないな これをいっぺんにやりたいのかな?
ますますよくわからん カスタムだろうとなんだろうと、登録しておきゃdispatcで通知されるでしょ。 //とりあえず3つリスナー function funcA(e:Event):void{trace("funcA",e.type)} function funcB(e:Event):void{trace("funcB",e.type)} function funcC(e:Event):void{trace("funcC",e.type)} //hogeイベントに3つ登録 addEventListener("hoge",funcA); addEventListener("hoge",funcB); addEventListener("hoge",funcC); //piyoイベントに2つ登録 addEventListener("piyo",funcA); addEventListener("piyo",funcC); //hogeイベントとpiyoイベント発生。それぞれ登録したもの全部が実行される dispatchEvent(new Event("hoge")); dispatchEvent(new Event("piyo"));
>>409 UIがあるやつは、ほぼイベント駆動だとおもうが。
CとかJavaとか言語は関係ないぞ。
プログラミングの手法のひとつってだけ。
418 :
Now_loading...774KB :2011/08/22(月) 15:09:18.86 ID:Zqv7xyQV
CS4でAS3,WinXPですが、ASで定義した関数が参照できません。 public class Test01 extends MovieClip (Test01クラス)で、関数をdraw_graph(iro:int) としました(引数は色)。 Test01クラスはnewされたときに名前を test.name = "test01"として、rootの配列objListに root.objList.push({mc:test, name:test.name}); で格納しました。 このとき、draw_graphは正しく実行されています。 別のオブジェクトからインスタンスは格納先のroot.objList[i].mcで参照できたのですが、 この関数root.objList[i].mc.draw_graph(iro) は Error #1069: Test01 にプロパティ draw_graph が見つからず、デフォルト値もありません。 となって参照できません。 Test01にはintA = 100という変数も入れていますが、これも 参照できません? どうすべきでしょうか?
>>418 draw_graphがprivate関数とかいうオチでは?
420 :
418 :2011/08/22(月) 15:26:27.23 ID:Zqv7xyQV
>>416 そういう意味じゃなく、ターゲットが3つってことだ
ABCとオブジェクトが3つあったとき、ABC全部にディスパッチしないとダメだろこれを一回でやりたいんじゃない?
意味わかんないんだけどあんたらのいう「ディスパッチ」ってaddEventListenerの事?
だとしたらそんなもん全部登録してくれとしか言えないでしょ。 どうやって自動で判別すんの?
親子関係とかカスタムがどうのこうのとかいう話全然意味ないしまじで意味わからんよ。 お好きにどうぞ、って感じだわもう。
>>424 ディスパッチって聞いて分からんやつには意味わからんだろうな…
と思ったら普通に使ってんじゃねえか function funcA(e:Event):void{trace("funcA",e.type)} a.addEventListener("hoge",funcA); b.addEventListener("hoge",funcA); c.addEventListener("hoge",funcA); a.dispatchEvent(new Event("hoge")); これだとaにしかいないから、同じ"hoge"イベントを登録してあるオブジェクト全部に一気にイベント送信したい って意味じゃない?
as3マスターできたらプログラマを名乗っても大丈夫ですか?
>>396 からっぽの各MCの中へ画像をLoadMovieした後、
画像の有無をIF条件でチェックし結果で_visibleを変えました。
発想を求めていたのであとは検索して無事解決できました。
よいヒントありがとうございました。
429 :
413 :2011/08/23(火) 11:04:10.13 ID:OA1PATP/
自分がやりたかったことは
>>421 >>426 みたいなことね。
この場合だったら、hogeっていうイベントをブロードキャストするfooってオブジェクトを作って、そのfooにa,b,cの3つがリスナー登録すれば
fooひとつにdispatchEventを使うだけでa,b,cに一斉送信されることに気付いたんだけど本来こういう使い方をするものだったんだよね?
質問です。 親親親親子というような構造で、子のムービークリップのフレームに EnterFrameで例えば左右に動くスクリプトを書く場合と 親(root)のフレームに子を動かすスクリプトを書いて動かす場合では CPU負荷的で差がでることってありますか? 低負荷に作りたいので、どこに書けば一番効率が良いのかわからないでいます
>>430 a.b.c.dで
dにaddEしてthis.x=
と
aにaddEしthis.b.c.d.x=
ってこと?
変わらないと思うけど、後者はパス辿るぶんの何かがありそうだな
ちなみにENTER_FRAMEはまとめたほうが明らかに速いらしいよ
たくさんある場合だろうけど
var vec:Vector.<String> = Vector.<String>([ ["A", "B", "C"], ["D", "E", "F"], ["G", "H", "I"] ]); trace(vec[1]);//D,E,F trace(vec[1][1]);//E と出したいけどでない。 var vec:Vector.<Vector.<String>> = Vector.<Vector.<String>>([ ["A", "B", "C"], ["D", "E", "F"], ["G", "H", "I"] ]); trace(vec[1][1]);//多次元配列にしたらいけるやろーと思ったけど、出ない。 誰か教えてくれ ( >_< )
var vec:Vector.<Array> = Vector.<Array>([ ["A", "B", "C"], ["D", "E", "F"], ["G", "H", "I"] ]);
var vec:Vector.<Vector.<String>>でいいじゃん 同時に初期化?むり var vec1:Vector.<String>=Vector.<String>(["A","B","C"]); var vec2:Vector.<String>=Vector.<String>(["D","E","F"]); var vec3:Vector.<String>=Vector.<String>(["G","H","I"]); var vec:Vector.<Vector.<String>>=Vector.<Vector.<String>>([vec1,vec2,vec3]);
435 :
Now_loading...774KB :2011/08/25(木) 02:40:46.26 ID:K3Ge8cwG
【環境】 flashlite1.1 CS3 Windows7 エミュレータ:Device CentralCS3 switch文を使用時にムービークリップ間の変数の受け渡しが うまくいかないので詰まっています。 共にメインのタイムラインrootが親 ------------------------------- インスタンス名:eng_mc D = FSCommand2("GetDateDay"); kinou = D -1; ../N_mc/:num = kinou; ------------------------------- インスタンス名:N_mc stop(); switch(num){ case "0": gotoAndPlay(1); break; case "1": gotoAndPlay(2); break; (省略) } N_mcに変数名:numでダイナミックテキストを配置したところ eng_mcで取得した変数の値を正しく表示しました。 メインタイムライン上でならswich文もうまくいくのですが、 別ムービークリップになると、switch文だけ取得がうまくいっていないみたいな感じです。 一体何が問題なのか見当もつかず…ご教授お願いいたします。
switchが問題なの? switch直前に値を読んで取れてないんだったらパスが違うとかじゃない? 取れてたらLite1.1のswitchがおかしいかと kinouは-1してるからnumは数値だとおもうけど、switch分で文字列と比較してるように見えるのは関係ない?
メソッドが1つも宣言されてないインターフェースIHogeがあったとして、 IHogeを実装してないクラスのインスタンスをIHogeに強制変換したいのですが、できません。 これを可能にする方法はありませんか? なぜこんな方法を探しているのかというと、xとyの両プロパティを持つオブジェクト2つを引数に受けてその2点間の距離を返すメソッドが作りたいのですが、 xとyを持つクラスはDisplayObject、Point、Rectangle・・と色々あるので 各クラスを必要に応じてIHoge化する方法が必要なんです。(IHogeを実装するためだけにサブクラスを作るのも効率が悪いと思うので)
インターフェース型の変数に普通にキャストして代入すりゃできんじゃない? でもそれインターフェースの意味まったく無いバカみたいな使い方だから全然意味ないけど。 IHogeがx、yプロパティ持ってること補償してるわけじゃないから結局どこかでチェック入れなきゃなんない。
位置を表すxとyを持っているクラスにしかIHogeを実装も強制変換もしないと自分で決めていてもこの使い方はおかしいのでしょうか。 ではIHoge型を引数に指定しているメソッドではかわりにObject型を指定してxとyを持っているか判定を取るのがいいということですか?
「自分で決めてるからOK」と決めてるならそもそもインターフェース使う意味無いじゃん。 なんかOOPがんばって使おうとしていろいろ基本的な考えがおかしくなってんじゃないの。 ASはオーバーロード基本的にできないし、判定式を関数の中にでも入れておくのがベターなんじゃないかな。
素直に引数をDisplayObjectにして カスタムクラスはDO継承したら?
>>441 DisplayObject以外も使いたいらしいよ。Pointとか。
すげーいいかげんなチェックだけどこんなイメージなんじゃない?
function getDistanceFromObj(a:*,b:*):Number{
var num:Number = NaN;
try{
var dx:Number = a.x-b.x;
var dy:Number = a.y-b.y;
num = Math.sqrt(dx*dx+dy*dy);
}
catch(err:Error){
trace("aかbのx,y無いです"); //,err);
}
return num;
}
trace(getDistanceFromObj(new Point(0,3),new Point(4,0)));
trace(getDistanceFromObj(new MovieClip(),{x:10,y:20}));
trace(getDistanceFromObj(new Sound(),new XML()));
なんの保証もしてないIHoge型とかいうの使ってもx,y無いのにアクセスしたら止まるから結局判定しなきゃならんし。
443 :
Now_loading...774KB :2011/08/25(木) 14:18:51.67 ID:qfsmvIVO
Win7 FlashCS5 AS3.0 アクションフレームの1フレーム目に下記を記述しました stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down); function key_down(event:KeyboardEvent):Void { if (event.keyCode == Keyboard.RIGHT) { nextFrame(); } } 実行すると、以下のエラーが出ています シーン=シーン 1, layer=イベントリスナー, frame=1、行 2 クラスまたはインターフェイス 'KeyboardEvent' をロードできませんでした。 何がいけないですかね?
AS4.0っていつでんの? as2.0からの時みたいに色々変わるんだったら javaとおんなじ仕様にでもする変更のほうがいいのに。 まあ、java覚えるのが面倒なだけだけどw
>>433 >>434 ありがとうございます!
Vector.<Array> Arrayは思いつかんかった。
>>434 さんの方法は知ってたけど、
仕込みの文字が多すぎるから別の方法を探してたんです。(´・ω・`)
Vectorの恩恵を十分に受けるにはそっちのがいいんだろうけど。
>>443 多分、パブリッシュ設定がAS2.0になっている
さらに、3.0にすると「Void」だとエラー出るんじゃね?
>>445 恩恵も何もArrayでやったらまったくの無意味だろ
それなら二次元Arrayのほうがマシだわ
>>446 その通りでした
ありがとうございました
そもそもPointクラスのxyとDisplayObjectのxyを比べようと思うのが間違いだと思うの
そだね。本来ならきちんとカスタムクラス作るのが楽だと思うよ。 あの関数実行時エラー待ちだしね。
451 :
435 :2011/08/25(木) 20:22:48.21 ID:K3Ge8cwG
>>436 遅レスになってしまってすいません。
無事に変数の受け渡しがうまくいきました!
ありがとうございます!
switch分で文字列と比較してる事が原因でした。
数値での比較にしたらあっさりと。
メインタイムライン上だと問題なく動いたので
てっきりパスかFlasilite特有の問題かと思っていて
盲点でした…
引数はオブジェクトじゃなきゃいかんのか? function getDistance(x1:Number, y1:Number, x2:Number, y2:Number):Number{}じゃダメなの?
>>440 そうですね。無理にオブジェクト指向的な考え方をしようとしておかしなやり方をしていました。
バカの私には向いていないことに気付きませんでした。
>>449 確かに、同じ名前のプロパティであっても同じ物を表しているとは限りませんよね。
インターフェースの使い方ともども根本的に間違えていました。
>>452 xとyを持ったオブジェクトごと引数に渡す方法しか考えていませんでした。
確かにその方法ならクラスに関係なく距離が測れますね。
ありがとうございました。
外部swfを読み込んで表示させるのってやっぱり普通にmovieclipをaddchildするより重いの? ゲームとかでインタフェースとかゲームのキャラとかグラフィック関係を 全部外部swfにして作ろうと思ってるんだけど無謀ですか?
ひとつにまとめたいとかそういう理由?
ローダーの方が全然重いはず。 子くらいならまだしも、ローダー内でまたローダー作ってとかやって、 孫swf、ひ孫swfとかやるとくっそ重くなるよ
>>454 自分はそうしてるよ
ゲームや再生環境にも依るだろうし自分が鈍いのかもしれないけど、
いまのところゲームとして問題になるような動作の遅延は感じない
a.swfからb.swfを呼び出しています。 a.swfの仕様は b.swfを読み込む a.swfのstageのonResizeでb.swfのサイズを変更する。 具体的にはb.swfの縦横比は崩さずにステージ全体にb.swfを表示します。 その際、b.swfの上下、左右は切れても(端っこが見れない)問題ありません。 つまり、b.swfがwidth:heightが4:3だった場合(この縦横比は絶対固定です)、 a.swfのstageWidth600、stageHeight200の時は b.swfはwidth600、height450にリサイズされ、b.swfをa.swfの中心に配置、 つまりb.swfの上下125pxは見えない状況になります。 ここで、b.swf内に配置したムービークリップAを常にステージ下部に表示させたいのですが、 上のように125pxが見れない場合にどうしても見えなくなってしまいます。 今自分がどこまで表示されているのかを取得することって可能でしょうか? a.swfはソースが見れないので、b.flaだけでどうにかする必要があります。
ちなみにb.swfの中で // ↓は今ココで適当に書いたスクリプトです stage.addEventListener(Event.RESIZE, resize); function resize(e){ MC_a.y = stage.stageHeight - 30; } みたいな事を書いてみたのですが、a.swfの縦横比が横長になると、 MC_aは見えなくなってしまいます。 stage.stageHeightはどうやらb.swfのstageHeightを取ってきているっぽいです。 a.swfのスクリプトをいじらずに、a.swfのstageHeightをどうにか取得できませんでしょうか?
460 :
Now_loading...774KB :2011/08/28(日) 03:25:52.74 ID:XfBw/HZZ
環境はFlashCS4,AS3,WinXPです。親子関係を持つMCでのマウスイベントの ターゲット把握が上手く出来ません。 目標は 親[ [子] [子] [子] [子] [子] ] で子のみをマウスイベント(重なった時)の 対象にしたいです。 全ての子に下の2つを試しましたが、両者共に子を一旦クリックしないと実行されません。 addEventListener(MouseEvent.MOUSE_OVER, _onMouseOver, false, 0, true); function _onMouseOver(evt:MouseEvent) { evt.stopPropagation();//ターゲット段階(子)でのみ動作 }//@ addEventListener(MouseEvent.ROLL_OVER, _onRollOver, false, 0, true); function _onRollOver(evt:MouseEvent) { evt.stopPropagation();//ターゲット段階(子)でのみ動作 }//A どう修正したら良いでしょうか?
>>458 Flaということは、CSシリーズか?
サイズ自体は
var loader:Loader = new Loader();
var info:LoaderInfo = loader.contentLoaderInfo;
のnfo.width;と info.height; で取得できるし、縮小したければ
event.target.content.scaleX = 0.8;
event.target.content.scaleY = 0.8;
で出来る。
それにしても読みにくいし分かり辛い文章だな・・・
「上下、左右は切れても(端っこが見れない)問題ありません」
と
「125pxが見れない場合にどうしても見えなくなってしまいます」
が矛盾してないか?
>>458 parentでLoaderの外まで辿れなかったっけ?
ADDED_TO_STAGEだかいうイベントで自分がロードされたタイミングが分かるから、 そのタイミングでMovieClip(stage.getChildAt(0)).stage.stageWidth、MovieClip(stage.getChildAt(0)).stage.stageHeightで 一番親のステージサイズが取れるから、あとはbのサイズなんかからはみ出し量調べていくらでも計算してくれ グローバル、ローカル座標使ってもいいけど
464 :
Now_loading...774KB :2011/08/30(火) 18:21:08.18 ID:2ntVwwsp
CS4,AS3です。FLV再生で2点質問です。
Q1) 実際の再生前にメタデータを取得することは可能でしょうか?
var netStr:NetStreamを定義し、
netStr.client = new Object();
netStr.client.onMetaData = metaDataHandler;
として
function metaDataHandler(objInfo:Object):void {
for (var prop:String in objInfo){
trace(prop + ":" + objInfo[prop]);
}
}
であればPlay開始後に取得できますが、事前の取得が出来ません。
Q2) ループ再生の方法を教えて下さい。
調べたところ、
ttp://web.donnatokimo.com/as3/493 とかで
netStr.addEventListener(Event.COMPLETE,replay);
function replay(evt:Event) {//event→evt:Eventとした
netStr.play();
}
がありますが、最後で止まったままです。
onID3とかでいけたんじゃないかな。 あとflvはいろいろ形式があって、古い形式のflvや、サードパーティ製のよくわからん変換ツールで 作ったflvはcompleteイベントきちんと散れないときあったかな。
ああ、ごめん。onID3じゃなくて、 onMetaDataか。 最近触ってないけど、そのあたりでいけないかな。
467 :
Now_loading...774KB :2011/08/30(火) 22:45:57.07 ID:xJl4Qin5
CS5のAS3で 質問なのですが、 ステージ上にaa_mcというmcを設置していて、それを非表示にしたいのですが、 var XX:String="aa_mc"; var YY:MovieClip=XX as MovieClip; YY.visible=false; にするとnullにはアクセスできません。と出ます。 何か間違ってるでしょうか。
>>467 StringをMovieClipとして扱おうとしてるから
var YY:MovieClip=this[XX] as MovieClip;
でどうだろ
>>468 できました! ありがとうございます。
as MovieClipは前のものならなんでもMCに変換みたいに書いていたのですが違うんですね。
あと、[]がArray系のみ意味しか知りませんでした。
っていうか、「速習AS3」って本来の定義が書いてねえ。
>>469 中身がMCを継承してるクラスであるときだけasでMCにできる
[]については『配列アクセス演算子』でflash関連の情報を探すといいかも
471 :
464 :2011/08/31(水) 11:56:33.85 ID:pvz5OGa3
>>466 どうも。
なるほど、FLVファイルは各々クセがあるんですね。
メタデータの事前取得に関しては、再生対象の縦横サイズに合わせてVideoオブジェクトの
サイズ変更が目的だったのですが、手元の本:「ActionScript 3.0辞典」(伊藤のりゆき ほか)翔泳社
のp471でそのものズバリを見つけました。
ここではローカル再生ですが、どうやらNetStatusEventのinfo.codeで判別するのが肝のようです。
(余談ですが)Video()では普通にMPEG4が再生できるんですね。テスト用MPEG4素材は
NHKクリエイティブ・ライブラリー
ttp://www.nhk.or.jp/creative/ を使いました。
※ループ再生はまだ模索中です。
ビデオもそうだけど、ローカル再生web上での読み込みと結果違う事あるよ。 本稼働もローカル再生ならそれでもいいけど、上げてテストしてみた方がいいよ。
質問させていただきます 開発環境はwindiws7のFlashBuilder4.5で、テストにwindowsXPのブラウザ(Chrome,FF) JavaのサーバーはUbuntu10.04で動かしています AS3.0でJavaとソケット通信を行っています AS側 受信:readUTF 送信:writeUTF Java(DataOutputStream)側 受信:readUTF 送信:wirteUTF 使って通信しています ですが、WindowsXP(vista,7ubuntuでは正常に動きます)でFlashを動かしたときだけreadUTFでEOFErrorが発生して通信できません しかも最初の通信の何回かは成功して、途中で止まる状態です(javaのプロセスクラスの出力を転送しています) どなたか原因がわかるかたいらしたら教えてください m(_ _)m
474 :
Now_loading...774KB :2011/09/01(木) 02:15:00.36 ID:rEvQlbMi
AS3,CS4 ファイル選択ダイアログボックスでは、そのタイトルが「localhostでアップロードするファイルを 選択します」となっています。これを単に「ファイルを選択します」にすることは可能でしょうか? 現在のASを抜粋すると次のようになっています。 var fileReference:FileReference = new FileReference(); private function handleClick( evt:MouseEvent ):void { // ファイル選択イベントのリスナ登録 fileReference.addEventListener(Event.SELECT, onSelectFile); fileReference.browse(); } private function onSelectFile( evt:Event ):void { tf.text = fileReference.name; // 選択されたファイル名の表示 } ※上のASに拘りはありません。 宜しくお願い致します。
どなたか、
>>460 (マウスイベントの親子関係)をお願いします。
>>475 言いたいことよくわからんからもっと詳しくするかflaあがるかしてみてよ
>>474 確か変更できなかったと思う。
そこのメッセージは再生環境依存で、例えばブラウザ上からだと単に「開く」になるんじゃなかったかな。
ボタンクリックしたら実行されるんなら、ボタンクリックしなきゃ実行されない場所にコード書いてるんじゃないの、としかw
>>460 その子に対し、全部にmouseChildren=false書いてみたらどうだい
こんにちは ActionScript経験が浅く調べても的確なページがみつかりませんでした Dateオブジェクト生成すると、例えば自分はwindowsを普通に使っているのでタイムゾーンが日本になります つまりtimezoneOffsetが -540 になります 自在にロケール変更したいんですが、read onlyなのでできないですよね まさかそんな糞言語なわけないと思うのですが、どうやってロケールを設定するんでしょうか? -1時間して中国時間に無理やり変えても、timezoneOffsetはそのままなので吐き気がします
ロケールというとおかしいですね 扱いたいのはタイムゾーンです
タイムゾーンの変更はできないかな。基本、ブラウザ上で動くもんだからOSの部分に触れないようになってるし。 getUTC系で世界標準時取ってきて、そこからオフセット値の設定や差分計算するクラス作るのがいいんじゃないかな。 探せばだれか作ってるかもね。
タイムゾーン調節の便利メソッド作ったとしても、timezoneOffsetの値を変えられないため、 その便利メソッドを2回以上通過させると漏れなくバグるんですよね サーバーからはUTCで時間が送られてきて、 Flashでは勝手にJSTになり、 でもアプリケーションではPSTやCSTで表示したい ハゲそうです
2回通過させるとかよくわからんけど、UTCで送られてくる値をそのままシリアル値計算すれば済む話じゃないの?
2回通過してはダメなので、 プログラム内で1回しか使わないことをプログラマに保障させる必要がでてきます でもそれは規模の大きいコードだと難しいことです サーバーから送られてくる値を、Flashは受け取った時点で自分のタイムゾーンに変換してしまいます 日本のユーザーはJSTになりますし、アメリカのユーザーはPSTになります getTime()がUTCじゃないんですが、シリアル値で、どうにかできますか?
>サーバーから送られてくる値を、Flashは受け取った時点で自分のタイムゾーンに変換してしまいます
ここがよくわからん。どうやって送られてくる日付値引っ張ってるの。
サーバーで管理してるUTC時間基準でいきたかったら、そのまんまDATEに変換して、
計算はシリアル値でそのままやって、表示だけ専用のオフセット関数でも作ればいい話だと思うけど。
全般的に意味がよくわからないからいざとなったらこっちで相談してみて。
http://toki.2ch.net/hage/
サーバーからはUTCのUNIX時間がミリ秒で送られてきます Flashでnew Date(timestamp)すると、この時点で各環境毎に時間が書き換えられるため、 日本とアメリカとではgetTime()の値が異なるんです
なるほど。Date.UTC(サーバーから送られてくる値)だと駄目なのかいな。
もう自力では完全に詰んだので誰か助けてくださいorz 設定の警告 symantec. 権限の無いプログラムによって一部のシマンティック製品の設定が変わりました。 これは攻撃者またはウイルスが保護を無効にしようとしたことを示す可能性があります。 問題を避けるために、設定が復帰されて以前の設定に戻り、システムが再起動します。 続行するには[OK]をクリックします。 ここをクリックするとシマンティック社の Web サイトのテクニカルサポートのページが表示されます... 1004.1 @OKボタン ↑ の状態に陥ってしまい、 OKボタンを押しても再起動の後に同じ表示が出ます ×ボタンを押して消しても再起動が掛かってしまい同じ表示が出ます 何とかなりませんでしょうか 誰か助けてください orz
なぜこのスレで助けを求めるんだw 作業データのバックアップはとってあるんだろ? OS再インスコしかないのかな ここへのカキコは違うPC、ケータイから? もしくはセーフモードでかい 復元ポイントからの復帰 ↓ダメ C:(システム)ドライブのバックアップからの復帰 ↓バックアップとってない 作業データのバックアップ後OS再インスコ もしくはシステム関連の他スレで聞くことをお勧めする がんがれ
ウイルススレ行くべきじゃね? 感染してるかもしれんし
素直にテクニカルサポートに電話してやれよ
493 :
473 :2011/09/03(土) 10:34:17.69 ID:XgA5FLZ+
473ですが、自己解決しました。 どうやらreadUTFメソッドを利用していたせいでした
インスタンスの消去についてなんですが インスタンスAからインスタンスAを消すことはできますか? インスタンスAからみると自分自身を消すってことです addChildで出しているのでインスタンス名はありません つけると処理が大変になるのでつけてません
495 :
Now_loading...774KB :2011/09/04(日) 21:23:43.62 ID:oyDJ19b4
表示リストに追加されてるんだったらparent.removeChild(this)で消えるはず
>>494 消すの意味がわからん
addChildで出すの意味がわからん
つけると大変なので〜別に大変じゃないだろ
結論から言うとできる
>>494 addChildできるなら、removeChildもできるだろ
消すってのが見た目だけなら、visible変えれば?
インスタンス名つける必要ないが、そもそもどこにも参照を持たせてないのか?
そのほうが処理が面倒な気がするが
499 :
Now_loading...774KB :2011/09/04(日) 22:49:10.22 ID:oyDJ19b4
>>496 AIRにするとエラーが出力されます
>>497 removeChildしたいのですがAIRでエラーがでます
>>498 参照持たせるって意味がわからないですが上の階層からターゲットに出来なくて処理はめんどうです
501 :
494 :2011/09/05(月) 15:59:01.22 ID:eppdkEkS
>>500 遅れましたがエラー内容はこれです
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at waza1/ch()[waza1::frame1:17]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
タイマー生きててもう表示リストから消えてるのにもう一回消そうとしてんじゃないの。 イベント関係は消す前に全部止めといたほうがいいよ。
503 :
Now_loading...774KB :2011/09/05(月) 18:35:36.03 ID:eppdkEkS
>>502 if文つかって
一度消したら変数の値を変えて2回以上ならないようにはしてます
できてないからそのエラーでてんじゃん。自分の思い込みだけでエラー無くなるなら世話無いわ。
いいから、removeChildするタイミングでそいつに登録されてそうなイベントを「全て」リムーブしとけ
ネットゲー作りたいんだけどサーバー側のプログラムって何で動かすのが普通なの? Javaとか? AS3理解してれば簡単に書けるものなの?AS3理解してないけどw
AS3ならPHP
ネットゲーじゃないけど、ネットランキング機能作った時はPerlでやったな、俺は
AS3ならJava
Adobe Flash Builder 4.5 for PHP Premiumがあるくらいだしな
511 :
Now_loading...774KB :2011/09/05(月) 21:59:05.67 ID:eppdkEkS
>>504 タイマーをストップさせたら出来ました
ご迷惑をおかけしました
初歩的な質問ですいません WinVista CS4 As3.0です。 外部テキストに msg1=メッセージその1&msg2=メッセージ2&msg3...と 5つほどメッセージを書き、フラッシュに用意した変数list1〜list5に 格納しようと思っています。 単純に外部テキストに書いた文章を表示させるところまでは出来たのですが 外部テキストに書いた変数をflashに渡すところでつまづいています。 // System.useCodePage = true; var url : URLRequest = new URLRequest("外部テキストUrl"); // var url_loader : URLLoader = new URLLoader(); // var list01:String=""; ・・・・・ var list05:String=""; // ボタンが押されたときに読み込みを開始 button.addEventListener(MouseEvent.CLICK,doTxtLoader); function doTxtLoader(e:MouseEvent):void{ url_loader.load(url); } url_loader.addEventListener (Event.COMPLETE,URLLoaderCompleteFunc); function URLLoaderCompleteFunc (event : Event) { text_field.htmlText = url_loader.data; list01= url_loader.data.list01;←デバック時にここでエラー表示 } よろしくお願いします
PHPとJAVAでサーバーのスクリプト書く時の利点とかの違い教えて どっちの言語にしても学ぶ気力だけはある(キリ
>>512 URLエンコード形式のものを読み込む場合には、
url_loader.dataFormat = URLLoaderDataFormat.VARIABLES;
が必要かな。
で、そのときは、
System.useCodePage = true;
にしないで、テキストファイルの方の形式をUTF-8にしといた方が楽かな。
テキストエディタとかで保存するときに形式を指定できると思うよ。
>>513 >どっちの言語にしても学ぶ気力だけはある(キリ
ならググッて調べる気力もあるはずだ
エラーが出る人はエラーの名前も書こうぜ… 重要な情報なんだよこれ
Flexを介さない場合のPHPとJavaの比較だと、 出力先がウェブブラウザ(HTML)となるなら、その目的に作られたPHPの方が簡単。 JavaにもJSPという似たようなスクリプトがあるけど、 利用するためにはアプリケーションサーバが必要になる。 このアプリケーションサーバを準備することがほとんどの場合ネックになる。 (最近はVPSサービスが安いから話は変わってきてるけど) そういった環境面での取っつきやすさでもPHPが上。 ただ、今回はサーバサイドな訳だから、 その利点がほとんど生きない。 取っつきやすさ&試しやすさぐらいしか無いかな? まぁActionScript3を勉強するんだったら、 AS3作成に当たっての参考元言語であるJavaのほうが理解しやすいと思うが。 俺の場合は、サーバサイドをJavaで書くから、 ちょっとした宣言の違いがこんがらがって、 イライラする場合が多い。 phpはDB周りのフレームワークを使うと簡単だけど重いから嫌い。 Javaはメモリが無いとつらいからサーバと相談と言う事になる。
>>514 おかげさまで
url_loader.dataFormat = URLLoaderDataFormat.VARIABLES;
を使用して変数を読み込むまでは出来ました。
ところが、読み込みたい変数は日本語の文章なのですが、文字化けしてしまってます。
System.useCodePage = true; を使わなければ、記号ばかり
System.useCodePage = true; を使わなければ、ムツカシイ漢字ばかりになってしまいます
UTF-8で保存してみましたが、文字化けは相変わらずです・・
>>514 テキストをUTF-8、System.useCodePage = true; を使わない。
で、無事きちんと日本語表示できました!!
ありがとうございました
521 :
Now_loading...774KB :2011/09/06(火) 20:28:57.33 ID:NooosCQt
CS3時代の作品(Flash Player9)をCS5.5(Flash Player10.2)で動かそうとしたらワケのわかんないエラーが出て困ってます TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at 作品名_fla::MainTimeline() nullと言われてもオブジェクトはnewしたインスタンスのみです デバッガでは「この場所にはソースコードを表示できません。」と出て ブレイクポイント入れて追っていったらnewしたインスタンス内のENTER_FRAMEイベントの1回目のメソッドの処理が終わった直後に 上記のエラーが出ます もーまったくワケわからん 何が原因なんでしょう?
>>521 CS3はAS3.0だっけ?
メッセージから察するに、CS3時代の古いコンポーネントがライブラリに残ってるとかかな?
たぶん現物見てみないとわからんかも。
523 :
521 :2011/09/07(水) 15:20:21.06 ID:+Yv2/xu6
自己解決しました…… 原因はconstに定数じゃなく変数を代入してた事です 単純なコードで検証したらエラーは出ず中身がnullになっただけだったんですが 実際の作品では 代入した変数というのは外部から読み込んだモノだったのです (読み込まれる前に代入されたというわけではありません varだとうまくいきます) こんなバカなミスをする人なんか想定してなくてエラーメッセージを用意してなかったというオチのかorz
524 :
Now_loading...774KB :2011/09/07(水) 22:34:50.02 ID:VVjgFsfY
flex sdkを入れてないとか?
526 :
524 :2011/09/08(木) 02:22:55.24 ID:oxEKVzXc
>>525 CS4上でflex sdkを動かすということ?
いや、使ってるコンポーネントがflex2で始まってるから、flexsdkは必須なはず。 俺はFlexBuilder使いだから、CS4での設定はわからんが、 flex.swcをパスに指定するような設定がいるんじゃないかい?
528 :
Now_loading...774KB :2011/09/08(木) 05:13:13.33 ID:d9w2RlLd
入れ子の状態のFLVでのContextMenu(コンテキストメニュー)で質問です。 (CS4,AS3.0,WinXP) MC(mcA)内に var vidObj:Video = new Video(); による再生用オブジェクトvidObjをaddChildして contItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contMenu_onSelected); mcA.contextMenu = contMenu; によりmcAにコンテキストメニューを設定しました。つまり、vidObjの親mcAを右クリックすると メニューが現れます。 ここまでは出来たのですが、いざメニュー選択してもコードが実行されません。 function contMenu_onSelected(evt:ContextMenuEvent):void { trace("contexM_evt= "+evt.mouseTarget.width);// これが出ない } 単純にマウスイベントを受け付けないだけかと思いましたが、mcAではクリックイベントの MouseEvent.CLICKが実行されます。 何かアドバイス願います。
>>524 CFFって事は、テキスト表示するのにTLF使ってるんじゃないかな。
そうだとしたら、TLFはCS5からの機能だからCS4のコンパイラでは、コンパイルできないと思うよ。
530 :
Now_loading...774KB :2011/09/08(木) 13:14:29.04 ID:0v5wH3nz
SWFで自身が置かれたパス(ディレクトリ)を把握するコマンド(関数?)は何でしたっけ? AS2の時使った記憶がありますが思い出せません。
>>530 AS3.0なら、 this.loaderInfo.ur lとかかな。
532 :
530 :2011/09/08(木) 14:11:36.33 ID:0v5wH3nz
533 :
Now_loading...774KB :2011/09/08(木) 14:32:11.16 ID:PUSHhn8q
addChildでムービークリップをだしてmc.nameでインスタンス名?をつけたんですが このムービークリップ内に上の階層から変数を宣言することはできますか? var mc.var:int = 1;とやっても1084?エラーのセミコロンをつけてくださいとでました
534 :
Now_loading...774KB :2011/09/08(木) 14:32:49.68 ID:PUSHhn8q
>>533 >var mc.var:int
あたりまえだ。こんな書き方しない
少しは文法を学ぼう
536 :
Now_loading...774KB :2011/09/08(木) 14:48:41.58 ID:PUSHhn8q
上の階層の意味がわからんが、addChild元のこと? なら上からmcにアクセスして.hoge=でいけるんじゃん? MCはダイナミッククラスだから
538 :
533 :2011/09/08(木) 18:32:45.90 ID:PUSHhn8q
>>537 こんな感じです
import flash.display.MovieClip;
var make:MovieClip = new aa();
make.x = 240;
make.y = 400;
addChild(make);
make.name = "mc1";
var mc:MovieClip = MovieClip(getChildByName("mc1"));
var mc.xx:int = 5;
外部swf(フレームごとに画像が並んでる)をloadmovieでmcに読み込み表示しているのですが 画像が追加されたため、さらに別のswf(追加画像が並んでいる)を読み込む必要が生じました データとしては連続なので、本来これらを一つのmcに並べたいのですが loadmovieでは1つのswfを1つのmcに読み込むことしかできないため 表示する画像によって追加画像のmcを表示・非表示させるなど面倒なことになっています 今後もデータが追加される可能性があるため、どうしようかと悩んでいます どなたかご教示いただけないでしょうか?
>>538 makeって宣言してるんだから、mc1なんてnameをつける必要はないよ
makeでアクセスすればいい
getChildByName("mc1")なんてのも不要では?
それから、前のレスにあるようにMovieClipはダイナミクスクラスだから
makeにxxを勝手に定義できるが、makeのプロパティにする必要があるの?
var xx:int = 5;
でいいじゃない
どうしてもmakeのプロパティにしたいなら、aaのクラス定義で宣言しといたら?
とりあえず基本がテキトーすぎだから、基本を勉強しろって
541 :
Now_loading...774KB :2011/09/08(木) 20:29:54.45 ID:PUSHhn8q
>>540 作ったmcは消去するので中に作りたかったんです
>>541 よくわからんけど、やりたいことは単純にこれでできるよ
import flash.display.MovieClip;
var make:MovieClip = new aa();
make.x = 240;
make.y = 400;
addChild(make);
//make.name = "mc1";
//var mc:MovieClip = MovieClip(getChildByName("mc1"));
//var mc.xx:int = 5;
make.xx = 5;//型指定はできない
543 :
Now_loading...774KB :2011/09/08(木) 23:04:28.94 ID:PUSHhn8q
>>542 子インスタンスになるmcにはじめからxxを定義しといて変数を変更するってことですか?
>>543 はじめからじゃない
MovieClipはダイナミッククラスって上で何度もいってるだろ
だから、勝手にプロパティやメソッドを追加できる
詳しくはヘルプとかで、ダイナミッククラスについて読むとかして
ワロタ
546 :
Now_loading...774KB :2011/09/09(金) 13:33:01.34 ID:8ZWoSCP0
暗号化ライブラリの as3crypt について質問です。 暗号化処理をしようと思っているのですがちんぷんかんぷんです。 IVを自分で指定したいのですが、decryptがうまく行きません。 ライブラリの中のIVModeというクラスの中に /** * Optional function to force the IV value. * Normally, an IV gets generated randomly at every encrypt() call. * Also, use this to set the IV before calling decrypt() * (if not set before decrypt(), the IV is read from the beginning of the stream.) */ とあるので、 現状ではIVはライブラリに勝手に生成されるらしいのですが、 同クラスの function set IV() に代入してもうまく行きません。 どなたか詳しいかたご教示お願いします。
547 :
Now_loading...774KB :2011/09/09(金) 13:35:45.23 ID:8ZWoSCP0
以下は試しているサイトからの引用ソースです。 IVをどのタイミングでどういう風に設定してよいのかわかりません。 var type:String='aes-256-cbc'; // 暗号タイプ var key:ByteArray; // 暗号化キー var ivval:int=1263485468; public function encrypt( k:String, s:String):ByteArray { var e:ByteArray = new ByteArray(); var key:ByteArray = Hex.toArray(Hex.fromString(k)); var data:ByteArray = Hex.toArray(Hex.fromString(s)); var pad:IPad = new PKCS5(); var cipher:ICipher = Crypto.getCipher(type, key, pad); pad.setBlockSize(cipher.getBlockSize()); cipher.encrypt(data); e.writeObject(data); if(cipher is IVMode){ var ivmode:IVMode = cipher as IVMode; e.writeObject(ivmode.IV); } e.position = 0; return e; }
548 :
Now_loading...774KB :2011/09/09(金) 13:39:58.72 ID:8ZWoSCP0
複合化です。これがどこでIVを設定するのかわからないです。 public function decrypt(k:String, e:ByteArray):String { var data:ByteArray = e.readObject(); var kdata:ByteArray = Hex.toArray(Hex.fromString(k)); var pad:IPad = new PKCS5(); var cipher:ICipher = Crypto.getCipher(type, kdata, pad); if(cipher is IVMode){ var ivmode:IVMode = cipher as IVMode; ivmode.IV = e.readObject(); } cipher.decrypt(data); return Hex.toString(Hex.fromArray(data)); }
CS5.5 にてアンドロイドアプリを作り始めています。 現在、画像をタップして、画像を動かす場合に startDragにて動かす方法と、 タッチしているポイントにENTER_FRAMAで追従する方法。どちらにするか迷っています。 比較的重いMCを動かしたいと思っているのですが、処理的に軽いのはどちらなのでしょうか。 お教え頂ければ幸いです。
ウチでもそのいわゆる「フリックスクロール」に挑戦してるよ 今のところドラッグとエンターフレーム両方使わないとだめっぽい 通常のクリック&ドラッグで「通常移動」 すばやく移動して指を放した場合「距離に応じた時間、その方向にスクロール」 PC上だとまあまあの出来なんだけどスマフォ側だとカクカクして不自然な感じでむずかしいっす!
>>550 スマホだとTweenクラスとか使ってもカクカクしちゃいますもんねぇ・・
できるだけ小数点計算とかをしないようにチマチマやってるんだけど・・
そのフリック部をクラスファイルにしてるならどっかに.asファイルうpってみてよ うpってくれたらこっちもうpるよw
>>552 技術評論社の「flashではじめるAndroidアプリ開発入門」という本に
スマホっぽい動かし方が出来るクラスが載ってる。
でも、それを実装するまでいってないんだよね〜俺wwww
技術評論社のサイトからサンプルをDLできて、その中にクラスファイルがはいってる。
ただし、DLにはユーザー名とパスが必要。
554 :
Now_loading...774KB :2011/09/10(土) 17:48:55.42 ID:Rb5IcReQ
SharedObject(共有オブジェクト)でlocalhost内に作成したフォルダーを削除する 方法って分かりますか? (AS3,FlashCS4) var sObject:SharedObject; で、 sObject = SharedObject.getLocal(フォルダー名+"/"+適当なSolファイル名, "/"); sObject.data.dataStr = 適当なデータ; sObject.flush(); これでフォルダーが出来ますが、逆に削除する方法が分かりません。
>>554 フォルダーごと削除?それとも、フォルダは残して書き込んだデーターの削除?
556 :
554 :2011/09/10(土) 17:55:49.35 ID:xEnxFVkR
MCのフレームに、var MN:MovieClip = HogeMc;と変数を宣言しています。 カスタムクラスを作り、変数を受け取りたいのですが パブリッシュすると 1046: 型が見つからないか、コンパイル時定数ではありません : MouseEvent。 というメッセージが出てきてしまいます。 クラス外にある変数を利用する時はどうしたらいいでしょうか?
558 :
ラインハルト :2011/09/10(土) 22:24:11.48 ID:s34JxkKP
なんかとりあえず簡単な文法書を1冊やったほうがいいような気がする。 かくいう俺もJavaとかC#はわかるけど、ASは初めてなんだけど、割と素直に書ける感じ。
>>557 エラーが出てくれてる時はそれでググればいいんだよ
まんまググってなかったらエラー番号で
で意味を考えれば自ずとわかる
どういう理由でこのエラーがでてると思う?
>>557 ActionScript3.0エラー辞典みたいの買ってみたらどうだろうか
まぁ検索すれば大抵は出てくるけど
561 :
Now_loading...774KB :2011/09/11(日) 20:49:59.79 ID:WrHV0vvd
AS2です。 JPEG画像ファイルを読み込んだあと、 画像ファイルの縦横のサイズを知りたいのですが 方法はないのでしょうか? またMCにloadMovieやloadClipでロードするのですが この際受け皿となるMCをファイルの縦横に合わせて 自動的に伸縮させるような設定はないのでしょうか? ほとんどの教科書では受け皿となるMCとファイルサイズを あらかじめあわせるようにと書いてありますが、 そんな手作業はできません。 よろしくお願いします。
562 :
561 :2011/09/12(月) 01:06:20.91 ID:U5GN8Wk0
自己解決しました。 受け皿のMCフレームに onClipEvent(Data){ ルートへのパス.function名XX(); } と書いて、データのロードが完了したことをルートの方に送ります。 ルートのほうで function XX (){ 受け皿MC._width; 受け皿MC._height; } と書くとなぜか画像のサイズが表示されました。
strictとwarningをアンチェックしてコンパイルしてますが何か問題ありますか? stcictをチェックするとコンパイルできません。
>>563 そりゃコードが間違ってるからだろ
該当箇所を直せよ
キーコードの値からそのキーの文字を求める方法はありませんか?
ByteArray型オブジェクトのオブジェクトに16bit単位のバイナリデータが格納されていて、それからBitmapData型に変換したいのですが、 その場合自分でPNGやGIFのフォーマットのヘッダーを付加してして、その後にバイナリデータの値を置いて、それを読み込ませるような手間のかかる事をしなければいけないのでしょうか? ByteArray型のオブジェクトは単純に二次元配列の値が入っています。
3.0ならString.fromCharCode(keyCode)
>>566 最初からmx.graphics.codec.PNGEncoderを使えば?
>>568 レスありがとうございます。
完全に自分が所望していた情報です。
ヘッダーから手書きするところでした。助かりました。
XMLに記述されたアドレスから画像を読み込み、コンテンツ内で使用するという事をやっています 「読み込む画像の数」と、「読み込み終わった数」をカウントし、 全てのファイルを読み込み終わったと確認したら、実際にコンテンツがスタートする、という構造にしているのですが、ココで問題が出てきました FlashCS3上で「ムービープレビュー(ctrl+Enter)」した場合と、HTMLに埋め込んで動作させた時には正常に動作するのですが、 CS3の「ムービーのデバッグ」と、.swfファイルを単体で開いた場合には、読み込みが途中で止まってしまい、コンテンツ始まりません 「読み込む画像の数」と、「読み込み終わった数」をtraceしてみると、 どうやら「全く同じファイル」を複数回読み込ませる場合には、初めの一度しか読み込みが終わったと認識されないようです (LoaderInfoのEvent.completeが起こらない) これを解決するにはどうすればいいでしょうか? WinXP FlashCS3 AS3で製作しています
「全く同じファイル」を数えて重複分を「読み込む画像の数」から予め引いておく、じゃダメかね?
>>571 レスありがとうございます
ちょうど今現在、そういった方法の実装も考え、「全てのデータを精査しながら読み込み、その後に画像を必要とするMovieClipに振り分ける」という様に作り変えています
ところで、元々は↓を参考に、一斉にファイルの読み込みを行っていたんですが、
http://www40.atwiki.jp/spellbound/pages/310.html 上記の方法(XMLに記述した順番に読み込む)にしたら、問題自体は解決してしまいました
どうやら「同時に全く同じパスのファイルを読み込むと、先に読み終わった方しか”Event.COMPLETE”を行わない」ようですね
BulkLoadrrつかえば?
教えてください。 on(rollOver) { gotoAndPlay(1); } をおいて、gotoの先には var id = setInterval(go, 15000); stop(); function go() { clearInterval(id); play(); } があります。 同様にボタンを複数個配置すると、15000ミリ秒どころか、0.5秒くらいしか停止してくれません。 エロい人教えてください!!
575 :
574 :2011/09/14(水) 16:01:10.42 ID:3zKvd5Up
あ、すみません。もっと妥当なスレありましたので移動します。。
576 :
554 :2011/09/14(水) 21:53:58.52 ID:x5qX6PH+
【再記】 SharedObject(共有オブジェクト)によってlocalhost内に作成したフォルダーを 削除する方法って分かりますか? SWFのSharedObjectで作ったフォルダを丸ごと消したいです。
ドラクエのような2DRPGを作っています。 マップの描写する際についてなんですが 今は1マス1マスをスプライト継承クラス化して全部addchildしてるんですが このやり方は処理的に重いのでしょうか でっかいbitmap1枚に切り貼りしていった方がやっぱり最適なのでしょうか もし参考になるサイト等あればぜひ教えてください
そこのサイトのサンプルの動きすげえな! ちょっとびっくりした おれもシューティングや単純な絵のアクションゲームではBitmapDataを活用する事に決めたw
flashってgpu使えないから糞 本格的なゲームは作れない
Molehillってもう2010に発表してたよな
gpu使えないっていつのflashよ
もうRCまで出てるのに おっくれてるーう
flashは普通にgpu使えないだろ
3つ前の単語くらいググってから書き込んでくれ
初歩的な質問ですいません。 Win Vista FlashCS5.5 親Mcの中で変数を定義して、親Mcの中に入れ子で子McをaddChildした場合に 親Mcで定義した変数を取りにいくのってどうすればいいのでしょうか?
>>586 親がMovieClipだとしたら、parentで辿って変数名でアクセスする。
こんな感じ。
var mc:MovieClip = MovieClip(this.parent);
trace(mc.hoge);
こんなでもいい。
trace(MovieClip(parent).hoge);
trace((parent as MovieClip).hoge);
階層が崩れると使えなくなっちゃうから 子を作る時に親の参照を渡すのがいいと思うけどな
主要な場所の参照突っ込むオブジェクト作って色んなとこで共有してるな
591 :
528 :2011/09/19(月) 16:18:03.46 ID:QczsILXG
すいません、上記のFLVでのContextMenu(コンテキストメニュー)の質問です。 だれか分かりますか?
「これが出ない」の意味がちょっと曖昧なんだが… リスナー関数自体が実行されないのなら、どこかでスペルミス等の問題がある evt.mouseTarget.widthが期待している値と異なるのなら、Video辺りの問題か、実際は仕様通りの動作であるか はたまたそれ以外の原因がある この程度の情報からではこれくらいしか言えないんじゃないかな
593 :
528&591 :2011/09/19(月) 17:52:16.89 ID:QczsILXG
>>592 レスどうも。
詳しい検証は再度行いますが、「これが出ない」というのはtrace出力パネルで
contexM_evt= 〜 という文字列そのものが出ないという意味です。
つまりは単なる動作確認で、trace出力自体は trace("2ちゃん") でも構いません。
取り急ぎお返事します。
試してみたけど、動画を置いたMCにコンテキストメニュー設定して 動画上でカスタムメニュー選んでも確かにリスナーは実行されないな ビルトインのメニューは動作するから仕様かな? とりあえず、透明に塗ったSpriteを動画の上に重ねることで解決はできた ただ、ContextMenuEventのmouseTargetは当然Spriteになるけど
>>594 検証頂いた透明Spriteの方法でOKでした。
重ねて御礼申し上げまちゅ。
ActionScriptってバグが多いってのは事実上なんだろうか? ちゃんと書いても予期せぬエラーとかありません?
>>597 たしかにFlash Playerが抱えているバグも多いが
ちゃんと書いても動かないということはない
よってお前が悪い
なるほど。 勉強して出直します
バグじゃねえの?みたいな変な仕様はときどきあるけど、書いた通りには動いてるな まぁそんな複雑なこともしてないけど
多分書き方の問題だと思いますけど、同じコードで機能する時としない時があるんですよね。 すごく遅くなる時とかも。 割り込み処理が上手く出来てないんでしょうね
遅くなるのはともかく、機能しない時があるってのは十中八九作ったプログラム側の問題だと思う
603 :
Now_loading...774KB :2011/09/21(水) 00:15:25.90 ID:GYM90OJa
FlashProCS4のAS3でTextArea(インスタンス:txtArea)にCSVから読み込んだカンマ 区切りの文字列を表示しています。 こんな感じ: 麻生君,安倍君,福田君,田中君 70,80,50,65 表示自体は狙い通り行ったのですが、この行数の把握を txtArea.textField.numLines で するとおかしくなってしまいます。 ※10行のデータを23行と返す。 この現象は普通のテキストファイルをTextAreaに表示した時も同じで、30行のTextを112行と 返します。 ※複数行なので txtArea.textField.multiline = true; としています。 考えられる原因は何でしょうか?
numLinesって純粋なテキストデータの行数じゃなくて TextFieldに表示できてる行数(幅が狭ければその分値も増す)だけど その理解はおk?
605 :
603 :2011/09/21(水) 01:55:55.57 ID:RjOAVZ9q
>>604 どうも。
「幅が狭ければその分値も増す」コレ自体はそうだなあと理解しますが、
txtArea.horizontalScrollPolicy = ScrollPolicy.ON; ということで水平スクロールを
可能にしているので表示幅との関係と整合できません。
>>605 適当なので違ってたらスマン。
スクロールしようがしまいが、見えている一行の文字数を
ベースにして、その数で割った行数を返してくれてるとか?
検証してないけど、その可能性が高いと思う。 TextAreaじゃなくてTextFieldだけ作って試してみれば?
608 :
603 :2011/09/21(水) 16:05:05.05 ID:s+IutUfa
>>606-607 さんきゅう。
CSでテキストフィールド(txtFd)を作ってそこに
>>603 の本文(14行)を入れて、
trace("行数:"+txtFd.numLines); で参照したところ、15と表示されました。
※1行多いw
私の文法自体は間違って無いようですが、やっぱりTextAreaだとおかしくなるのかも・・・
とは言っても、txtArea.textFieldでちゃんとテキストフィールドへの参照が取れているので
問題は無いと思いますが・・・ (泣
引き続きアドバイス願います。
609 :
606 :2011/09/22(木) 01:33:44.09 ID:4C7dqqAw
>>608 最後の行の改行まで入れていれば、
きっちり15行になるんじゃないかと思ったり。
諦めて文字列内の改行コードをカウントするってのも手か。
あとは最終的に
>>603 がどうしたいかだな
原因をつきとめるという意味ではもう終了してると思うけど
純粋な行数をとりたいだけなら、改行コードチェックでもいいよね
611 :
Now_loading...774KB :2011/09/24(土) 14:37:15.50 ID:hw9gAfaO
すいません、質問があります。 embedでmp3を取り込もうとしているのですが、 col: 3: Error: unsupported sampling rate (32000Hz) と表示されてしまい、取り込めません。 周波数は固定でしっかりと44100に変換しています。 変換はituneで行いました。 環境はFDK3.3.2、Windows7、iTune10.4.1.14 もちろん、他に色んな周波数で試しましたが、32000が48000になったりするだけです。 どなたかお願いします。
本当に変換できているのかを怪しむことしかできない
actionscriptを使って四角形にグローフィルタをかけたいのですがうまくいきません box.applyFilter(box, box.rect, new Point(), new GlowFilter(0xFFFFFF)); また円の場合、↑の書き方でフィルタをかけることが出来ました
言語も書けない奴には無理
615 :
Now_loading...774KB :2011/09/27(火) 21:08:25.18 ID:7fErkBbq
AS3,CS4でWinXPです。ContextMenu(コンテキストメニュー)のアイテム(ContextMenuItem)を配列で管理 しようとしていますが狙い通りにいきません。 管理用の配列を var conexItemArr:Array = new Array(); として、 conexItemArr[0] = new ContextMenuItem("名無しさん0"); conexItemArr[0].addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, item_onSelected0); conexItemArr[1] = new ContextMenuItem(" 名無しさん1"); conexItemArr[1].addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, item_onSelected1); conexItemArr[2] = new ContextMenuItem(" 名無しさん2"); conexItemArr[2].addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, item_onSelected2); と定義して、 var newMenu:ContextMenu = new ContextMenu(); newMenu.hideBuiltInItems();//既存のメニューを消したいけど無効? メニューを追加します。 for (var idx:int=0; idx<conexItemArr.length; idx++) { newMenu.customItems.push(conexItemArr[idx]);// 要は push(〜, 〜, 〜); と冗長に書きたくない } MC.contextMenu = newMenu;//対象MCへの割り当て この場合メニューは出ますが、「名無しさん0」のみで他が出ません。 また、newMenu.hideBuiltInItems();も無効になってます。 どうしたら良いでしょうか?
言語も書けない奴には無理
>>615 コピペしてみたけどちゃんと出てたよ?
MCをrootドキュメントクラスのthisにしたけど
だからそいつには無理
619 :
615 :2011/09/28(水) 03:24:36.63 ID:bx0t0ruu
>>617 どうも。対象MCはマウスに追従して動くものです。
上記をMC自体のフレームアクションとして記述しましたが駄目でした。
また、正直に
var conexItem0:ContextMenuItem = new ContextMenuItem("名無しさん0");
var conexItem1:ContextMenuItem = new ContextMenuItem("名無しさん1");
var conexItem2:ContextMenuItem = new ContextMenuItem("名無しさん2");
として、
newMenu.customItems.push(conexItem0,conexItem1,conexItem2);
でも駄目でした。
一応、1個だけは出るのでこれで引き続きやってみます。
620 :
sage :2011/09/28(水) 07:40:02.62 ID:7UwmpZpH
すみません。初心者ですが助けてくださいまし>< cs3,as3,win7です。 関数名に配列アクセス演算子を使用したいのですが、上手くいきません。 とりあえず、 var num_array:Array = new Array(num); example.addEventListener(MouseEvent.CLICK,num_array[0]); でイベントリスナーの登録はできるのですが、いざ関数を定義しようして、 function num(event:MouseEvent){ 処理 } では正常に動作するのですが、関数名をnum_array[0]とし、 function num_array[0](event:MouseEvent){ 処理 } とするとエラーが起きてしまいます。 どうしたらいいのでしょうか。。。
621 :
Now_loading...774KB :2011/09/28(水) 08:00:29.42 ID:1UdSNQ33
関数名に[と]が使えないからじゃない?
なんでそれでいけると思えるのかが不思議だわ。 この人自分で自分だけの言語作らないと無理だと思う。
たぶん num_array[0] = function(event:MouseEcent){}; num_array[1] = function(event:MouseEcent){}; ... みたいな感じの事やりたいのかな?
624 :
Now_loading...774KB :2011/09/28(水) 17:52:24.32 ID:l88fzMUz
すみません、質問させて下さい。 CS5、 AS2、 windows7です。 FLVPlaybackコンポーネントを使用してflv動画を配信したいのですが、 プレーヤーの初期設定をミュート(消音)状態にするには どのようなスクリプトを記述すれば良いでしょうか? プロパティの設定だけでは不可能で、スクリプトを記述しないといけない、 という所までは分かったのですが、具体的な記述方法が全く分からない状態です。 よろしくお願いいたします。
>>620 それじゃ動かないのはどうしようもない。
やりたいことがあるのなら(管理の方方とか)、
そのやりたいことを書かないことには助言のしようもない
言語も書けない馬鹿にはなにやっても無理
しつけえな なんなのおまえ
質問スレに1人はいる奴
他いってくれ
631 :
Now_loading...774KB :2011/09/29(木) 00:10:58.44 ID:janZcQlF
FLASHって右クリック判別できたっけ? ASを噛ませて、AS側からイベントを送れる?
できませーん
正確に言うと右クリックは判別できるけどブラウザとユーザーの設定次第で安定運用できませーん。やめといた方が良い。
テキストフィールドに外部XMLからテキストを呼び出そうと思っています。 traceの結果、XMLからはテキストの文章は呼び出せているようなのですが 文章をテキストフィールドに入れ込む段階で上手くいきません。 var Cmt001:String=XML.Date; TextField.text = Cmt001; このままだと、エラーになりますし、 TextField.text = "Cmt001"; だと、XMLの文章ではなく、Cmt001 とだけ表示されてしまいます。 XMLの文章をTextに入れ込む方法を教えてください。
>>634 TextFieldがインスタンスであるという前提のもとで
>var Cmt001:String=XML.Date;
>TextField.text = Cmt001;
一行目ができてたら二行目にエラーがでるわけがない
一行目の時点でちがうんだろ
>>634 エラーが出るなら、エラーメッセージを書くべき
>>635 の言う通り、本来ならエラーなんか出ないのだから、何かが間違っている
そして、何が間違いかは、エラーメッセージに書かれてるはず
638 :
643 :2011/09/29(木) 12:24:20.50 ID:MsipDFGU
説明不足でした エラーではなく、外部XMLに日本語で書かれた文章をflashに読み込み、、 traceすると日本語で出力されるのですが、 それをTextFieldに渡すと表示がされない。という状況です。 たぶん、XMLの内容を「変数:String="XML内容";」に代入すると思うのですが その方法がわからないでいます。
>>638 XMLの読み込みが完了した時点で、値をわたしているのか?
TextFieldやXMLの参照は正しいのか?
XMLではなく、ただのテキストデータなら表示されるのか?
など、問題を切り分けて原因を追及する
traceすると、というが、いったいどの段階でtraceしているのか?
たとえば、
var Cmt001:String=XML.Date;
の直後にtrace(Cmt001)をしたら
ちゃんと値が入っているということ?
640 :
643 :2011/09/29(木) 15:10:24.53 ID:MsipDFGU
>>639 です。
XMLを読み込む関数内でtraceしたり、テキストフィールドに代入したりすると
きちんと表示されるのですが、
読み込み関数外で宣言した変数に代入して使おうとすると上手くいきません。
var 文章:String;
function XML読み込み関数{
文章=XML内文章;
}
読み込んだ後なら表示されるなら、読み込む前に表示しようとしてんじゃね? その関数の中で「文章」とやらに普通の文字列代入したらその値は表示されんのかい。
642 :
643 :2011/09/29(木) 15:53:12.48 ID:MsipDFGU
>>641 いろいろとやってみたところ、XML読み込み関数内では
XMLの内容をrootに配置したテキストフィールドに代入したり、
traceも正常に動いています。
問題はローカルの変数をグローバル変数に移し替えるところが
上手くいってないっぽいです。
var hoge変数:string="あいうえお";
function XML読み込み{
hoge変数=かきくけこ
}
trace(hoge変数);
結果 あいうえお
XML以前の話じゃねーか… 3.0にグローバル変数なんてもんはないよ クラスベースでやってるならインスタンス変数にすればおk
それ関数実行してないだけとかじゃなく? XML関係ないねマジでw
>>642 何度も言われてるが、確実に「読み込み完了」後に代入してる?
実行順序が後だから読み込み終わってるはず、なんて誤解してないか?
それと、グローバル変数に移し替えるとか、オリジナルな用語つくらないように
参照がとれないなら、値が入ってないか、参照が間違ってるか、アクセスできないか
そのあたりだと思う
646 :
643 :2011/09/29(木) 17:15:34.53 ID:MsipDFGU
XMLは読み込めてるんですよね function内では、traceしてもXML内の文章が出てくるし、 それをfunction内からテキストフィールドに代入してもちゃんと表示できています。 ただ、そのデーターをfunctionの外で使おうとすると、nullに なってしまいます。 function内で変数をtraceするとちゃんとXML内の文章がtraceされるのですが function外でtraceすると「null」になってしまっています
全部コード書けよもう。 日本語通じてねーもん。
>>646 話が噛み合ってないような気がするな
XMLが読み込めることはわかっているが、
XMLへの参照が「読み込み完了後」に実行されていると確信できる情報がない
もしも、本当に以下の通りに実行しているなら、trace()の段階で
XMLは読み込まれていない可能性もあるということです
> var hoge変数:string="あいうえお";
> function XML読み込み{
> hoge変数=かきくけこ
> }
> trace(hoge変数);
情報を小出しにするより、具体的なASを晒した方がはやいと思います
非同期メソッドの意味をわかってないんだろうなぁ。
650 :
643 :2011/09/29(木) 18:33:03.20 ID:MsipDFGU
toString();で解決できました。 ありがとうございました
回答者たち : あれこれ推測してあたりをつけてアドバイス 質問者 : 話を聞かず勝手にナナメの方法で解決 回答者たち : 「」 あるあるwwwwww
質問者が日本語読めてないからしゃーないわ
DataGridの特定の行の文字色・背景色を変えたいんだけどどうしたらいいんでしょう? Flash8・AS2ではCellRendererとか使らんといけんかったが
そんな質問で分かると思ってんの?
as3、flashbuilder4.5でaway3dliteとflash10のポリゴン機能を試してるんですが、テクスチャをはるとuv座標が1pxほどはみ出ます 具体的にはUV値に0〜1以外の値が入ってしまい、反対側のテクスチャがリピートしているような現象が起きます どうしたら綺麗にテクスチャを貼れるでしょうか?
>>658 それ、フィルターはかかったけど効果の部分がbitmapDataの矩形外だから出てきてないだけじゃね?
フィルターかかった画像以上の大きさのbitmapDataにapplyFilterで描けば出てくると思う
AIRで画像ビューアを作ろうと思ってます VBの「コントロール配列」みたいな機能ってあります?
661 :
Now_loading...774KB :2011/10/01(土) 01:47:26.46 ID:PUjvfDBw
環境(AS3,CS4,XP)ですが、lineToで点を結んで出来た線(パス)が勝手に閉じて しまい困ってます。 簡単な例として、コ の字に点A-B-C-Dが並んだとき、これは開いた図形の筈ですが、 beginGradientFill()とendFill()を使うとAとDが自動的に(?)繋がりA-B-C-D-Aの閉じた 図形になって内部が塗られてしまいます。 ※ コ → ■ になってしまう 一番良いのは「塗らないこと」ですが閉じ具合で塗りを制御する方法はありますでしょうか?
>>660 コントロール配列は無いけど、表示リストを使って一括してイベント管理する事ならできる。
package hoge { public function test():void { trace("HOGE"); } } みたいにパッケージに公開関数を入れるってのはあんまり使っちゃ駄目?
別にいいんじゃね 公式にもあるんだし
AS2,CS4を使用しています。 質問させてください。 画面上を、自分の色を1色だけ持ったMCが100種類ほど入り乱れています。 その状況で特定の座標の、深度が一番上の色を取得することは可能なのでしょうか。
>>666 MCで管理しちゃってるなら、色を管理するプロパティみたいなの用意しといて、onPressでなんとかなるんじゃない?
function createMC(){
//MC作る
var n = this.getNextHighestDepth();
var mc = this.createEmptyMovieClip("mc"+n,n);
var color = Math.random()*0xFFFFFF;
mc.beginFill(color);mc.lineTo(50,50);mc.lineTo(50,0);mc.lineTo(0,0);
mc._x = Math.random()*500;mc._y = Math.random()*450;
//色を管理するプロパティを用意しておく
mc.color = color;
//クリック用イベントハンドラセット
mc.onPress = checkColor;
}
function checkColor(){
trace("深度:"+this.getDepth()+" 色:"+this.color.toString(16));
}
for(var i=0;i<100;i++)createMC();
as3(Adobe Air) FlashDevelop4を使用しています flash.html.HTMLLoaderを使っていているけど、表示されるWebページのフォントが汚い そこで、表示フォントを埋込みフォントに変更するか、アンチエイリアスをかけたいんだけど何か方法ってある?
一旦Flashで、使うフォントを埋めんこんだswf作って使う。
>>669 すみません、もうちょっと具体的にお願いします
フォントを埋め込むところまではわかるけど、HTMLLoaderにフォントを指定する方法がわからない
embedでfontName付けて埋め込んで、htmlLoaderのwindow.document.styleSheets配列を介して適用とか? それっぽい用語でググった結果見て考えただけなんで、実際出来るかは分からんが
672 :
Now_loading...774KB :2011/10/04(火) 21:49:14.00 ID:aa4x92nM
質問です ムービークリップAとBが重なっていてAは動くとします AがBと重ならなくなったときにイベントを発生させることはできますか?
673 :
254 :2011/10/05(水) 02:00:50.93 ID:ixHpDwGu
>>667 丁寧な回答ありがとうございます! やってみます!!
>>671 やってみたけど、できなかった。
情報も色々探してみたけど、無理みたいだなあ
677です すみません追記で actionscript3.0の場合です
残像って意味がようわからんが、10フレーム分コピーしたいなら10枚BitmapData用意すればOKって事じゃないのそれ。
680 :
Now_loading...774KB :2011/10/06(木) 23:43:52.14 ID:lqOpCymP
エラーの対処法を教えてください TypeError: Error #2007: パラメーター listener は null 以外でなければなりません。 at flash.events::EventDispatcher/addEventListener() at flash.display::Stage/addEventListener() at _fla::MainTimeline/frame1() ▼コード import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; stage.addEventListener(Event.ENTER_FRAME,test("l","r")); function test(a,b){ trace(a + "and" + b); }
test("l","r") = void
>>680 公式リファレンス読もう
リスナー関数に引数渡したいだけなら、test()内で無名関数返せばいい
683 :
Now_loading...774KB :2011/10/07(金) 13:06:39.11 ID:7fBdSC/g
CS5 AS3 1つのfunction関数が定義されているレイヤー3があり、 Scene 1, レイヤー 'レイヤー3', フレーム 1 1084: シンタックスエラー : rightbrace が end of program の前に必要です。 というエラーが起こったので調べてみたんですが、原因と考えられる括弧の抜けもなく、 function a(){ } と中身を削ってプレビューしても同じエラーが発生します。 さらにレイヤーのアクションスクリプトを全部消すと、 今度はその上にあるレイヤーに対して同じエラーが発生します。 これは原因はなんでしょうか。わけがわからないです。
もうfla作り直せば? 見ないとさすがにわからん includeしてるとか全角スペースとかくらいしか思いつかない
>原因と考えられる括弧の抜けもなく } が足りないとそういうエラーが出る どっかにあるはずw もしくはどっかに全角スペースが隠れている 全部NoEditor(フリーのテキストエディタ)にコピペすると見つけやすい
解決しました。 全然違うレイヤーの関数内で括弧が閉じてませんでした。 んなわかるかー
687 :
Now_loading...774KB :2011/10/08(土) 05:06:32.26 ID:MblZZyiY
AS3のソースコード中見慣れないモノを見かけたので下記が何か教えていただきたいです
[Property(toString="true",clonable="true")]//←このメタデータタグ
用途は想像できないでもないのですが、
リファレンス類を見ても見つけられなかったもので
因みにソースは
http://www.farmcode.org/page/Farm-Open-Source-AS3.aspx から落としました。Google Codeのリポジトリは機能していない?ようです
具体的にはorg.farmode.bezier.Pathの27行目などに書いてあります(ほか多数)
誰かアドバイスをくださいな。 今までAS2でゲーム作ってて、今更ながらAS3に移行しようと思ったんだけど、 文法やら何やら全然違ってわけがわからない。何から手をつけていいかさっぱりだ…。 AS3をどうやって学習したらいい? オススメの本とかサイトとかありませんか。
AS2をクラスベースでやってきたかどうかによるな それならイベント周り以外は大体一緒かと
基礎周りの本一冊買って読め。tips系のサイト探し回ってるより結局は早い。
>>689-691 ありがとう!
>>689 のサイト見てみたけど、解説が少なくて今の自分にはちんぷんかんぷんだった。
ぶっちゃけAS2もほとんど理解してないようなもんなんで、最初から学ぶつもりで基礎の本探すことにするよ。
「ゲーム制作向けの基礎のAS3の本」でいいのなんかないかな?
ゲームっつっても結局基礎は一通り必要になるから、 黙ってAS3の基礎を学ぶのが吉
AS3の中に埋め込まれたSWFから どんなイベントが飛んで来ているか 知る方法はありますか? よろしくお願いします。
ねーよそんなもん
>>694 「埋め込まれたSWF」ってのが意味わかんないけど、
イベント名わかってれば普通にaddEventListenerでハンドルできるんじゃない?
とにかくイベント発生させてるかどうか知りたいってなら無理だと思うけど。
697 :
Now_loading...774KB :2011/10/12(水) 19:12:22.04 ID:eFXBf7/8
PrintJobクラスを使ってプリンタからPDFを印刷したいと思っています。 HTMLLoaderで所定の場所からPDFを読み込んだものを PrintJobクラスに渡して印刷すると 紙に真っ黒に印刷されます。 PDFを印刷しようとした場合、 どのような手順を踏んでいけばよろしいのでしょうか? よろしくお願いします。 ソースの一部抜粋になりますが、こんな感じで作っています。 ・PDFの読み込み。 htmlLoader = new HTMLLoader(); htmlLoader.load(new URLRequest("file:///"+"hoge.pdf")); ・PrintJobに渡す printJob = new PrintJob(); if(printJob.start2(null,false)){ printJob.addPage(htmlLoader); printJob.send(); }
プレビューは真っ黒だったん?
699 :
697 :2011/10/13(木) 15:23:02.42 ID:Qnrw8hpa
>>698 プレビューでは真っ黒ではなく、きちんとPDFが閲覧できました。
何がダメなんでしょうか。。。
印刷できないように保護の設定がされたPDFなんじゃね?
701 :
697 :2011/10/14(金) 09:47:29.29 ID:IaN9OcRS
>>700 たとえば、AIRからAdobeReaderをコマンドラインで実行して
印刷処理を行うと問題なく印刷できましたし、
PDF単体をAdobeReaderで開いて印刷しても
問題なく印刷できました。
AIRからPDFを直接印刷するという情報が
ググッてもなかなかヒットしないので、
もしかしたら元々そういったことができないのではないかと
不安になりつつあります。
var vec:Vector.<Boolean> = new Vector.<Boolean>(1); trace(vec[0]); このコードのトレース結果がnullになるのはなんで? Boolean型の初期値はfalseだしnullには設定できないはずだよね?
型のチェックを保証するだけで初期化まで自動で行うわけじゃないから。 長さが不定なVectorも扱うからそうなてんじゃないの?
むしろ何も入れてないのにfalseになったら驚くわ
ボタンクリックで、30フレームづつフレーム移動していきたいのですが どういうスクリプト書けばいいでしょうか? フレーム1で止まってる場合、ボタンをクリックしたら30フレーム目までいき もう一度クリックすると60フレーム目にいくといった感じです。
今のフレーム数みて、それに30足したとこ移動すればいいだろう
止めたいフレームに stop() 書いて、ボタンには play() だけ書くとか。試してはないけど。
外部のxml読み込みで、変数が0のときはMCをストップして 1〜10のときは、それぞれに応じたMCをplayさせたいと思っています。 その場合、どういったスクリプトを書けばよいかわかりますでしょうか?
>>710 さんありがとうございます。
xml読み込みのFLASHは制作実績がいくつかありますので、読み込み方法はわかるのですが
変数がこの値のときに、このMCを動かすといったスクリプトがわからないのですが
お解かりになりますでしょうか?
わかるよ わかるけどだったらxmlという単語はいらなかったんじゃない? 知りたいのは変数に対応したMCを動かす方法だったわけでしょ? 問題の切り分けは大事だよ MCが与えられたら動かせるのかな? だったらいくつかのMCを配列にでもつっこんどけば変数に対応してアクセスできるよ 具体的には言語がわからんから言えないわ
713 :
Now_loading...774KB :2011/10/19(水) 04:09:53.94 ID:HXgcD5j0
CS4,AS3です。FLV再生で質問です。
(以前聞きましたが解決できなかったので再質問)
ループ再生の方法を教えて下さい。
調べたところ、
ttp://web.donnatokimo.com/as3/493 とかで
var netStr:NetStream;
// NetConnectionとの関係は省略
netStr.addEventListener(Event.COMPLETE,replay);
function replay(evt:Event) {//event→evt:Eventとした
netStr.play();
}
としましたが最後で止まったままです。
>>713 NetStreamはEvent.COMPLETE非対応
リファレンス > NetStream > イベント
で送出されるイベント一覧見ましょう
715 :
Now_loading...774KB :2011/10/19(水) 14:34:02.70 ID:NDlguihf
CS5 AS3 FileStream で外部SWFファイルを読み込み さらに本体からSWFを操作する事ってできますか? FileStreamにしたい理由はどうしても非同期で読み込みたいからです 「やってみりゃいいじゃん」と思われるかもしれないですが今ちょっと忙しくてorz 知っている方がいたらよろしくです
716 :
Now_loading...774KB :2011/10/19(水) 22:58:38.82 ID:f0783NbW
AS3です。 addChildでムービークリップAを追加するのですが、 ムービークリップAは2フレーム目にボタンXを持っています。 このボタンXのイベントリスナをroot階層に記述するにはどうしたらいいんでしょうか。 普通に、mcA.btnX.addEventListener(...)とかくと、「Error #1009: Cannot access a property or method of a null object reference.」といわれてしまいます。
717 :
713 :2011/10/19(水) 23:52:49.39 ID:Qc3O47zZ
>>716 ボタンXを1フレーム目から配置しといて
visible=falseとかなんとかにしとく
コマアニメとかでもない限り、AS3ではタイムライン使わない方が楽
719 :
Now_loading...774KB :2011/10/20(木) 12:11:10.57 ID:W9CR3IL9
>>718 ありがとうございます。
もう一点質問です、
GPS情報の取得について、ルーターからの擬似GPS情報が
取得できるらしいですが、デスクトップPCの環境では使用できないのでしょうか。あくまでスマートフォンデバイスが対象なんでしょうか。
自分でデスクトップ環境を試したらダメでした。
GeolocationのisSupportedみれ つーかデスクトップは無理
仕事で、CDから起動するFlashのアプリケーションを作る必要があります。 インストールしなくても動作しなければならないので、AIRは 使えず、プロジェクターの実行ファイルにすることになりました。 プロジェクターにした場合、不要なメニューが表示されるので これをどうにかしなければなりません。 プロジェクターのメニューを消す方法を教えていただけないでしょうか。 あるいは、プロジェクターの代わりになるFlashのプレイヤーが あれば教えてください。3万円以下なら有償のものでも 構いません。 よろしくお願いします。
722 :
721 :2011/10/20(木) 23:32:58.72 ID:NLpLAlP0
723 :
Now_loading...774KB :2011/10/21(金) 10:06:07.43 ID:WIlg0km8
久しぶりにFlashで制作しようとして、 最新のCS5.5でActionScriptを書こうとしているのですが、 本を読むと、AS3はまだ普及していないから、止めておけみたいな記事が多いのですが、 商業サイトでAS3で制作するのはやめておいた方が良いでしょうか? Javaに慣れているので、AS3の方が実装としては好きです。 漠然とした質問で申し訳ありませんが、アドバイスをお願いします。
>>723 >本を読むと、AS3はまだ普及していないから、止めておけみたいな記事が多いのですが、
その本の発行時期を確認した方が良い。
明らかに間違い。
新規の案件で顧客要望でもない限りAS2なんかありえん。
725 :
Now_loading...774KB :2011/10/21(金) 14:07:13.57 ID:3L+egym9
携帯の客も取り込みたいならAS3なんかありえん
最近携帯でFlashの仕事自体が少ない訳だがw
727 :
715 :2011/10/21(金) 15:04:49.65 ID:n05WU8Li
FileStreamでの外部SWFファイル読み込みについて報告 結論:無理でしたorz ファイルストリームでreadObject();ってメソッドがあったのでいけるかと思いましたが エンコードなんたらというエラーでだめでした ByteArrayで読み込んでMovieClipに変換という手も考えて調べましたが サポートしていないとの事でした ちなみにByteArrayは重い画像だと重宝しそうですな
FlashBuilder でアプリを開発しています。 FlashBuilderのスライダーはデザインが悪いので Flashのスライダーを使うよう依頼されています。 Flashでスライダーだけのswfを作り、 それをFlashBuilderに貼り付けて使おうと思っています。 何かもっとよい方法があったら教えてください。 よろしくお願いします。
シンボルとして作れたら、SWCで書き出して、FlashBuilderからライブラリとして使える。
FlashもあるならCatalystもありそうなもんだが。 そっちで作るってのはどうよ。
731 :
Now_loading...774KB :2011/10/24(月) 19:38:05.12 ID:14zSZUCs
クラスの設計で相談があります。 例えばある処理の実装を強制する時には interfaceをimplementsさせますよね。 そんな感じで、例えば、addEventListenerのoverrideを 強制させたいときには、どのようなクラス設計されてますか?? DataGridやTextInputを拡張したクラスを作成する際に addEventListenerの処理にも少し手を加えるようにしたいのですが どのように設計すればよいか悩みました。 アドバイスをよろしくお願いいたします。
インターフェースはそういう使い方しない。ちょっとずれてる。 で、そういうのは他の言語だと抽象クラス(abstractなクラス)を継承する形で実装するけど、 AS3.0にはそういう概念が無い。 じゃどうするかというと、仕方ないから普通の基底クラス作っておいて、そのクラスを継承させ、 イベントハンドラメソッドをオーバーライドする形を取るのがベターってなことになる。 traceで「オーバーライドしてね」って表示するくらいしかできないんじゃないのかな。 ただ冗長すぎるきらいもあるんで、その辺は好きにしてくれって感じかな。
抽象クラスのメソッド呼んだらエラー投げてやれ
734 :
731 :2011/10/25(火) 10:56:50.30 ID:bOgWFmdq
>>732 ,733
ありがとうございます。
今回はDataGridなどのクラスを拡張して行なっていきたいのですが、
普通に基底クラスを作ったとした場合、
DataGridを拡張したクラスとはどのように関連付ければいいんでしょうか?
自分の中ではDataGridやTextInputを継承した各クラスで
addEventListenerをオーバーライドしていくという
手間のかかる案しか思い浮かびませんでした。
736 :
734 :2011/10/25(火) 16:49:36.21 ID:bOgWFmdq
>>735 ありがとうございます。
なるほど。継承元がAbstractであることを
明示する方法ですね。すごく参考になりました。
教えて頂いたサイトも見てみました。
たしかにちょっと直感的ではなくなっているように思いました。
まずは継承元がAbstractであることを明示する方法で
実装してみたいと思います。
ありがとうございました。
ActionScript3.0 フレームのイベント処理(addEventListener( Event.ENTER_FRAME, hogehoge))で hogehogeが毎回呼ばれたタイミングでマウスの左ボタンがクリックされているかを判定することは可能でしょうか?
ダウンとアップでフラグたてとき
739 :
737 :2011/10/26(水) 02:16:46.57 ID:QvOa/x0S
>>738 ムービークリップ内で簡単なラインを書きたいのですが、マスクで一定以上の箇所を書けないようにしています。
マスクの箇所でボタンを話した時に、イベントを取れないので、Event.ENTER_FRAMEのイベントでマウスのボタンが押されていない
ことを取得したかったのですが・・・・・・
マスクの箇所でマウスを離したときに、イベントを取得する方法はあるのでしょうか??
>>739 あるだろう
そもそもイベントを取得できないってのが、おかしい気がするんだが
どういう構造なのかわからんので、なんとも言えない
741 :
737 :2011/10/26(水) 08:02:55.95 ID:gGtI2OSw
>>740 調べてみたけどダメでした。
var ms:Sprite = new Sprite();
ms.graphics.lineStyle(0,0x0);
ms.graphics.beginFill(0x0000ff);
ms.graphics.drawRect(0,0,this.width,this.height);
ms.graphics.endFill();
addChild(ms);
this.mask = ms;
これで、キャンバス(this)以外は書けないようにしてますが、
キャンバス意外でマウスを話すと、MouseEvent.MOUSE_UPが呼ばれません・・・・・
MOUSE_UPだけstageにaddEventListenerしとき
FlashBuilderでCaptiveRuntimeでコンパイルするのにadtコマンドでbundleする。 と見たのですが、何をどうして良いのやら皆目わかりません。 ヒントをください、、。
745 :
737 :2011/10/27(木) 08:16:04.48 ID:HwV7kiTO
>>742 返信ありがとうございます。
ダメでした。 メインのステージでMOUSE_UPを登録してみましたけど、なぜか呼ばれませんでした。
maskを削除すれば呼ばれます。
>>745 んー
stageのMOUSE_UPが呼ばれないはずないとおもうんだけどなあ・・・
>>745 たしかに、その状況はおかしい
リスナー登録とmask周りのASはどうなってんの?
いっそflaあげちゃえば?
749 :
737 :2011/10/29(土) 07:53:07.42 ID:fIrbNzIq
>>747 748
返信ありがとうございます。
勘違いしていまいた。 メインのフレームがstageだと思っていました。
ムービークリップを表示させてるメインフレームで
this.addEventListener( MouseEvent.MOUSE_UP, hogehoge );は呼ばれませんでしたが
stage.addEventListener( MouseEvent.MOUSE_UP, hogehoge );でよばれました。
750 :
Now_loading...774KB :2011/10/31(月) 21:41:33.75 ID:aRjO9dmx
すいません、動画初心者です。 Flashc S3でWINです。 flaで作ったアニメーションを、 FLVで納品しなければいけないのですが AS3も使っています。 この場合どうやって書き出せばいいのでしょうか。。? 探してもやり方が見つからず。。 ご存知の方いらっしゃいましたら よろしくお願いいたします。。
そんなもん無理に決まってんじゃん。 自前で連番PNGにでも書き出すAIRアプリでも作ってみたら? どういう内容かわからんから自分で調整するしかないけど。
「Flash flv 書き出し」でググったらそれらしい情報あったけど・・・?
754 :
Now_loading...774KB :2011/11/01(火) 01:25:59.01 ID:HXRhL4WF
クリックしたら動くとかしこんであるようなやつをどうやったら動画に出来ると思うんだ???
mov書き出しなら出来るんだから、変換したら?
757 :
Now_loading...774KB :2011/11/01(火) 12:02:10.73 ID:1+uCTXWi
FlashBuilderを使用して開発しています。 ロジックとビューを分離する場合について質問させて下さい。 画面はMXMLで作成し、ロジックの部分は IMXMLObjectを実装したクラスを作成しています。 ある画面ではポップアップウインドウを表示する処理を 行なっています。 ポップアップウインドウには親画面から値を渡す処理もしています。 その場合、分離の観点から言うと、MXMLの中にスクリプトを書くのは あまりよろしくないとは思っていますが 子画面のMXMLにScriptタグを書いてその中に setter getterを書き、それらを経由して値のやり取りをしています。 皆さんはロジックとビューを分離したときに、 画面に値を渡したい場合はどのようにされてますか? バインディングとか、同一セッション間で値を持ち回れる コンテナを作成するとか考えてはいるのですが・・・。 ご意見いただけると幸いです。
flex4.5ですが、データプロバイダはメモリ空間のポインタを管理していると思いますが、 list.dataProvider.getItemAt(index)で得られるポインタは、そのデータプロバイダで管理されているポインタそのものなのか、 そのポインタへのポインタなのかどちらでしょうか? と言いますのは、渡されたポインタをデータプロバイダにaddItemAtで新しいインデックス位置に追加したのですが、 addItemAtした方の内容を編集した時に、getItemAtされた方の表示は変わらないのに、 getItemAtされた方を編集すると、 addItemAtした方の表示が変わるからです。 なぜかなと思いました。バカでしょうが重要だと思うので教えて下さい。
外部テキスト読み込みで、UTF8は大丈夫なんですが UTF8Nを読み込むとエラー出るのは仕様なんでしょうか? 中国語テキストがUTF8Nじゃないと表示されないみたいでして困っております。。
760 :
Now_loading...774KB :2011/11/06(日) 16:16:54.07 ID:jN3+5Sl2
>>759 UTF8Nの読みこみもわかるけど
それはそうとさ、
スペックの高いモテ男にとって
家でエロゲやるより、
この現実がすでにエロエロゲだよな。
気に入った子見つけて口説けば
エッチできる。
部屋にお持ち帰りしてしまえば
どんないやらしいことでもできる。
そいつにとって
この現実こそがエロすぎる最高のエロゲー。
考えただけでも勃起してくるぜ。
761 :
Now_loading...774KB :2011/11/08(火) 07:12:04.47 ID:w97NSK6E
CS4のXPでAS3ですが、ラジオボタン(RadioButton)の初期選択が 思う通りに設定できません。 タイムラインのフレームアクションで radioB2.selected = true; とかで設定 できるはずですが、ラジオボタン自体は出るものの無選択のままです。 また、イベントを発生させて無理やり radioB2.selected = true; としても駄目でした。 どうすべきでしょうか?
762 :
761 :2011/11/08(火) 07:23:08.46 ID:w97NSK6E
すいません。自己解決しました。 4個のボタンを2個づつグループ分けし忘れていました。
AS1.0です。講座サイトを見ていると if(hoge){}という分岐を見かけます。 == 0や== trueを入れるであろう部分が省略されているんですが これはどういう意味になんですか?
Boolean型の比較ということだ hogeの中身がtrue かfalseか判定 if ( hoge ){ 中身がtrueなら以下の処理を実行 if ( !hoge ){ 中身がfalseなら〜
ああ 単純に==tureを省略してるって事 ASなら他の型でも省略できるみたいだな if ( hoge ){//int型なら0以外なら以下の処理を〜 if ( hoge ){//String型ならnull、""(何も無し)以外なら以下の〜
失礼 AS1、2ならnullじゃなくてundefinedって扱いだ
たびたびすみません、AS1.0の質問です。 moveTo();lineTo();で描画した直線の深度が一番奥になってしまうんですが 深度を変えるにはどうすればいいんでしょうか? ツールはparaflaを使っていてスクリプトは下のように記述しています。 Edit = false; onMouseDown = function (){ _root.xstart = _root._xmouse; _root.ystart = _root._ymouse; Edit = true; }; onMouseMove = function(){ if(Edit){ clear(); lineStyle(1,0xFFFFFF,100); moveTo(_root.xstart, _root.ystart); lineTo(_root._xmouse, _root._ymouse); }};
>>757 なんかここの話題とはちょっと違うような気もするが。
FxUGとかで聞いた方が間違い無いと思う。ここはFlexの話題がメインじゃないし。
IMXMLObject#initialize(document:Object,id:String)
で元のObjectが取れるんだから、プロパティとかScriptタグで定義しなくても良いと思うんだが。
自クラスで使うには、initializeを上書きして、documentを自前で保持しておく必要はあると思うが。
MXML側(ビュー側)にロジッククラスを書き込んでやって、
<fx:Declarations>
<hoge:HelloWorldLogic id="hello"/>
</fx:Declarations>
ロジック側ASでは
[Bindable]
public class HelloWorldLogic implements IMXMLObject{
...
ってやってやれば、動的にバインドしてくれる。
770 :
768 :2011/11/08(火) 19:24:02.78 ID:EznP+LZe
すみません自己解決しました 空のムービークリップを作って指定したら直りました
771 :
Now_loading...774KB :2011/11/08(火) 20:31:57.34 ID:o+aPH1bP
どなたかご存知の方がいたら教えていただきたいんですが、 Flash(AS2ですが)で外部画像やムービーを呼び出すときは loadMovieで外部画像やムービーを読み込むと思うけど、その画像ファイルや ムービーファイルをサーバに設置するとき、ファイル名を含んだURLを 打たれても見られないようにするにはどうしてますか? ディレクトリのパーミッションを644にして画像は755(705とか)にしてますか? 画像も644(600?)で読み込めるんでしょうか。
実際にサーバにうpって試してみるんだw 結果の報告待ってるよ〜
773 :
Now_loading...774KB :2011/11/08(火) 23:00:34.93 ID:o+aPH1bP
了解です。しばし結果はお待ちください。
AS2で作業をしております。 サウンド再生で行き詰まっていることがあって質問させて頂きます。 ムービークリップ内のサウンドオブジェクトを再生する際、 _rootから変数を使って(=変数名で)指定したいのですが、再生出来なくて悩んでおります。 bgm_mc…サウンドを収容しているmc。 このmc内でサウンドオブジェクトを作成するASを記入している。 oto …サウンドオブジェクト名。 hensu …指定用変数 と仮定して、 _root.hensu = "oto"; // 変数に再生したい音を振り分け _root.bgm_mc.hensu.start(); // 再生 のように書いているのですが再生出来ません。 「_root」の所を削除したり、「_global」で変数で代入して 階層を省略したり、MC内から変数を参照して再生するASを書いてみたりと色々と試して2週間が過ぎてしまいました。 変数を使用せずに直接サウンドオブジェクトを指定すれば、再生されます。 どうかご指導お願い致します。
なんか妙にAS1.0と2.0の質問が多いな。 卒業制作で困ってるのか?
776 :
Now_loading...774KB :2011/11/09(水) 12:07:54.58 ID:NAxBptib
気になるのはuがuみたいに日本語で打ったように見えるところなんだけど
ホントだwよく気がついたなwwww
>>774 です。
uの全角は、手打ち変換していて間違えました。すみません
実際の変数名は「hensu」ではないので、大文字が原因ということでは
ないと思います。
_root.bgm_mc[_root.hensu].start(); こうじゃね?
>>779 鳴りました!本当にありがとうございます。
[]の前にピリオドが付かないんですね。 かなり近い所で何度も書きまくっていたけれども
多分これは気づくことが出来なかったと思います。
ようやく作業が前に進めます。 ありがとうございました。
781 :
Now_loading...774KB :2011/11/10(木) 04:55:28.43 ID:Vkb6/ool
困っています。AS2なんですが、サーバにアップしたときに、
loadMovieで以下のようなディレクトリ構造で画像ファイルを
呼び出そうとしているのですが、画像ファイルのフォルダに
.htaccessがあって、それが画像を呼び出すのを邪魔しています。
[testprogram] --[gazoo]--gazoo.jpg
| |-.htaccess
|-[program]--load.swf
|-load.html(swfを埋め込んである)
.htaccessの記述
SetEnvIf Referer "^
http://www\.testprogram\.com/program/load\.php " ref_ok
order deny,allow
deny from all
allow from env=ref_ok
.htaccessをはずすと画像を読み出すのですが、直リンクやブラウザからの
画像の呼び出しを許してしまいます。どの辺が悪いか何かお気づき
できしたら、ご教示ください。なお、リファラは
http://www.testprogram.com/program/load.php と出てきています。よろしくお願いします。
782 :
Now_loading...774KB :2011/11/10(木) 04:58:44.65 ID:Vkb6/ool
ディレクトリがずれてしまってますが、二行目以下は 一段、階層を下げてずらしてください。[gazoo]の中に 画像ファイルとにっくき.htaccessがあります。
AS1.0の配列についての質問です。 お客さんの好みの食べ物を与えてスコアを稼ぐゲームを作っていて 配列で下のように設定しています。 // 配列の宣言 food = new Array(); type = new Array(); food[0] = new Array(); food[1] = new Array(); food[2] = new Array(); type[0] = new Array(); type[1] = new Array(); type[2] = new Array(); type[3] = new Array(); // 【食べ物の設定】(温かい,冷たい,甘い,辛い,酸っぱい) food[0] = [0,0,1,0,1]; // オレンジ。甘くて酸っぱい food[1] = [1,0,0,1,0]; // カレーライス。温かくて辛い food[2] = [0,1,1,0,0]; // アイスクリーム。冷たくて甘い // 【お客さんの好みの設定】(温かい,冷たい,甘い,辛い,酸っぱい) type[0] = [1,1,1,1,1]; // 太郎さん。特に好きなものも嫌いなものもない(点数1倍) type[1] = [1,1,1,1,0]; // 次郎さん。酸っぱいものは嫌い(点数0倍) type[2] = [1,1,2,1,1]; // 三郎さん。甘いものが好き(点数2倍) type[3] = [0,0,0,0,3]; // 四郎さん。酸っぱいものが大好き(点数3倍)他のものは嫌い(点数0倍) // 【食べ物を与えた時の処理】 score = 100; ↑ここで食べ物の味と客の好みを比較して ・四郎さんに甘くて酸っぱいオレンジを与えると100 * 0 * 3 で0点 ・三郎さんに冷たくて甘いアイスクリームを与えると100 * 2 * 1 で200点 といったような感じでscoreを補正させたいのですがどうすればいいんでしょうか?
784 :
Now_loading...774KB :2011/11/10(木) 17:32:40.16 ID:Vkb6/ool
二次元配列になっているのが問題では・・・ そもそもintegerを足したり引いたりするんじゃないなら、 ルールをcaseで羅列すればいいので、配列にする必要もないのでは・・・
785 :
783 :2011/11/10(木) 18:11:46.19 ID:zRfCwqqf
配列なら要素が増えてもtype[who][hoge]みたいな指定ができて楽なのかなと思ってました 他の方法でももちろん構いません caseは使ったことがなくてif分岐との違いがよくわからないのですが この場合どのように記述するのがベストなんでしょうか?
おれは
>>783 の方針は間違っていないと思うなぁ。
変数名がわかりにくい気がするけど。
foodはintにして、food=1がオレンジとかのほうが直感的だとおもう。
で、今のfoodをtasteに変更するとか。typeももっとどうにか・・・。
まぁ
>>783 の宣言のままとるすと、
var foodIndex = 0 // オレンジ
var guest = 2 // 三郎
for(i=1,i<5,i++) {
if( food[foodIndex][i] == 1 ) {
score = score * type[guest][i];
}
}
動かしてないけど、こんな方針でよくない?
AS1.0よう知らんけど、その手の処理ならマスク方式ってのもありかもね。行数の関係で見にくくてすまん。 var baseScore=100, s=2, m=3;//0〜3の値らしいので2ビット確保 mask値:11=3 //好み&判定用マスク作成ヘルパ関数 function getKonomi(hot,cold, sweet,spicy, sour){ return hot | cold<<s | sweet<<s*2 | spicy<<s*3 | sour <<s*4; } //スコア計算関数 function getScore(kyaku, food){ var v = kyaku & food; //マスク使って被ってるところだけ取り出す var score = 0; for(i=0;i<5;i++)score += (v & m<<i*s)>>i*s; return score * baseScore; } //個人の好み作成 taro = getKonomi(1,1,1,1,1); jiro = getKonomi(1,1,1,1,0); sabu = getKonomi(1,1,2,1,1); siro = getKonomi(0,0,0,0,3); //判定用マスク作成 food1 = getKonomi(0,0,m,0,m); food2 = getKonomi(m,0,m,0,0); food3 = getKonomi(0,m,m,0,0); //けいさん trace(getScore(taro,food1)); trace(getScore(jiro,food1)); trace(getScore(sabu,food3));
ビット演算を理解してないと難しすぎるかもな 途中の計算も2進数で確認できないとデバッグも改造もできんw
n進数表示だったら普通にtoStringで見られるよ。AS1.0はどうかしらんけど。 var num = 3; trace(num.toString(2)); // 11 逆ならparseInt。 num = parseInt("0101010101",2); trace(num); trace(num.toString(2)); trace(("0000000000" + num.toString(2)).substr(-10)); //10文字でゼロパディングする場合こんな感じ
>>786-788 できました!ありがとうございます
ビット演算はとても便利そうなので勉強してみます
3.0以外はビット演算速いわけじゃないけどね
ビット演算ってメンテナンスが難しいし 仕様が途中で変わるような物には利用しない方がいい。 自分しか触らないような物であればそういう問題はクリアされるだろうが。
793 :
Now_loading...774KB :2011/11/12(土) 16:40:26.38 ID:1R4BnCXm
as3.0で質問です。 以下のように生成した配列型のムービークリップがダブルクリックを受け付けません。 原因を教えていただけないでしょうか。 //**************************************** //ライブラリ登録してリンケージでクラス設定した画像"jpg_file"の一部を //動的生成した"max"数のムービークリップの画像にはめ込んで配置する。 //**************************************** //配列インスタンスの設定 var unitArray:Array = new Array(); //インスタンスの生成と配置 for (i = 0; i < max; i++) { // ムービークリップ作成 var unit:MovieClip = new MovieClip(); //画像のクリッピング設定; var myBitmapTiling:BitmapTiling = new BitmapTiling(unit,0,0,100,100,"jpg_file"); //配列インスタンスへの設定 unitArray.push(unit); //配列インスタンスを配置; stage1.stage2.addChild(unitArray[i]); }
794 :
Now_loading...774KB :2011/11/12(土) 16:41:00.21 ID:1R4BnCXm
(続き) ちなみに、ダブルクリックのイベントを割り当てのコードは次のとおりです。 //**************************************** //ダブルクリック //**************************************** unitArray[0].doubleClickEnabled = true; unitArray[0].addEventListener( MouseEvent.DOUBLE_CLICK,dClick_func ); function dClick_func(event:MouseEvent):void { trace("d_click"); } ※仮に[0]のみ処理対象にしています。 これで、unitArray[0]に該当するムービークリップをダブルクリックしても何の反応もありません。 ちなみに、unitArray[0]を、ステージ上に配置してあるムービークリップ"stage_mc"と置き換えると、stage_mcに該当するムービークリップは正常にダブルクリップを受け付け、「d_click」という文字を出力します。 配列として生成されたムービークリップは何か問題があるのでしょうか。ただ、unitArray[0]はドラッグ操作は受け付けていてダブルクリックだけ受け付けないのです。 よろしくお願いします。
795 :
Now_loading...774KB :2011/11/12(土) 16:49:29.18 ID:s/W2vo24
AS3のXPでCS4 オブジェクトの回転で困ってます。ステージ上に置いたオブジェクト(mc0)をある操作で mc0.rotation += 0.5; で回転させようとしています。 対象オブジェクトがステージ中央(stage.stageWidth/2, stage.stageHeight/2)にあれば 良いのですが、オブジェクトをマウスドラッグで中央から移動させて回転操作を起こすと 自身の回転と同時にステージ中央周りでも回転します。 つまり惑星の公転と自転のような感じで動いてしまします。 どう対処すれば良いでしょうか?
796 :
795 :2011/11/12(土) 17:13:30.97 ID:s/W2vo24
(上の訂正) ※マウスドラッグで移動させてると自転せず公転のみです。 ---再質問---- AS3のXPでCS4(Player10) オブジェクトの回転で困ってます。ステージ上に置いたオブジェクト(mc0)をある操作で mc0.rotation += 0.5; で回転させようとしています。 対象オブジェクトがステージ中央(stage.stageWidth/2, stage.stageHeight/2)にあれば 良いのですが、オブジェクトをマウスドラッグで中央から移動させて回転操作を起こすと ステージ中央周りでも回転し、惑星の公転のようになります。 つまり基準点がステージ中央のままこの周りを回転してしまいます。 どう対処すれば良いでしょうか?
797 :
795&796 :2011/11/12(土) 17:39:34.68 ID:s/W2vo24
すいません自己解決しました。 実際はmc0の子をドラッグしていました。
>>794 とりあえず、
trace(event.target);
trace(event.currentTarget);
してみたら?
799 :
793 :2011/11/12(土) 19:17:38.99 ID:1R4BnCXm
>>798 traceダメみたいです。
そもそもダブルクリックの指定関数"dClick_func"を呼び出してないみたいです。
>>799 BitmapTiling クラスが邪魔してるってことはない?
BitmapTilingクラスってのが、ググると出てくるBitmapTilingクラスなら
Bitmap描いたSpriteをaddChildしてるみたいだから、
>>800 で当たりかな
802 :
Now_loading...774KB :2011/11/12(土) 20:57:17.82 ID:f70pOoj3
WinXP-ProでFlashCS4(AS3)使用ですが、3D操作後に入れ子のMCがマウスドラッグ 出来なくなって困ってます。 設定) 親mc0の中に子mc1があり、子は親の中でマウスドラッグ移動が出来る 症状) 親mc0を3D回転、例えば mc0.rotationX = 30; などととすると子がドラッグ移動 出来なくなり、mc0.rotationX = 0 で元に戻しても改善されない。 補足) 子mc1はマウスイベントのMouseEvent.ROLL_OVERは感知出来る。従来の 平面内の回転 mc0.rotation = 30 とかでは普通にドラッグ移動できる。 対処のヒントはありますでしょうか?
803 :
793 :2011/11/12(土) 21:56:22.58 ID:1R4BnCXm
>>801 なるほど。
BitmapTilingクラスの代わりってないものですか?
動的に生成したムービークリップに、
1枚のビットマップの一部を貼り付けたくてBitmapTilingクラスを使ったのですが、
同じ効果でダブルクリックを受け付けてくれる方法がありましたらご伝授ください。
BitmapTilingクラスがコンストラクタでやってる事を、直接生成したMCに対してやればいいんでないの? 見たところ、Spriteを新規に作ってBitmapDataをbeginBitmapFillで描いた後にaddChildしてるから MCに直接BitmapDataを描いてやればいいと思うんだけど
805 :
793 :2011/11/12(土) 23:22:02.52 ID:1R4BnCXm
806 :
802 :2011/11/13(日) 00:39:27.38 ID:dnVwXFOB
(追記)
SWFをUpしました。
http://loda.jp/swfsuksuki/?id=117 ※リンク用URLの下にあるDOWNLOADボタンを押して下さい。
オレンジ色の円がマウスドラッグ対象(mc1)です。
最初rotationX = 0ですが、右上のNumericStepperで緑色の背景(mc0)を
X軸回転の0〜100度で変更できます。
左上のText欄はマウスイベントの状態です。
タッチした瞬間にイベントが発生する様に <s:List id="nanntara" x="10" y="66" width="148" height="531" change="nanntara_buttonDown()" fontSize="27" textAlign="kanntara"> で起きたタッチを protected function nanntara_buttonDown():void で受け止めたのですが、やはり手を離した時まで反応しません。 何か他にタッチしただけで発生するイベントがあるのでしょうか?
>>807 アホかwww
change→mouseDownに変えればおk
>>808 ちょっとまだ意味は分かってないですがちゃんとなりましたありがとう!
810 :
Now_loading...774KB :2011/11/14(月) 13:29:21.66 ID:bC/k1JMn
オワタもなにもモバイル、というかスマホ版Flash Playerは始まってもいなかった
まぁモバイルやめるってことは、必然的にPC向けも、どっちもに対応できるHTML5に移ってくよね IE8使えないXPがどうなるかだなぁー。いちいちChromeとか入れる人の方が少ないだろうし
813 :
802&806 :2011/11/14(月) 23:56:35.40 ID:A8ox6AKc
すいません。どなたか分かりますか? 3D操作中はドラッグ移動出来ないのは納得しますが、元の平面(rotationX = 0)に 戻ったら移動を再開させたいのです。
>>813 俺もちょっとやってみたら、startDragとstopDragじゃできなかったから
ENTER_FRAME使って移動させてみたら3D変形させてもドラッグ(風の)操作できたわ
815 :
802&806 :2011/11/15(火) 02:27:07.93 ID:FLc0c1Xq
>>814 さんきゅうです。ENTER_FRAMEと
mc1.x = mouseX;
mc1.y = mouseY;
でマウス位置に追従させてOKでした。
816 :
Now_loading...774KB :2011/11/15(火) 19:10:57.25 ID:TwZasM9N
任意のオブジェクトにaddEventListenerで 追加したイベントのリストを取得する方法はありますか?
817 :
Now_loading...774KB :2011/11/16(水) 02:27:49.75 ID:xAYiBmm1
>>810 そこ読んだら嫌われ方が尋常じゃない。。。 やばくね?
>>817 フォトショとかプロが使うソフトが高くて買えない人間と、
低スペでFlashのページをまともに表示できない人間が文句言ってるだけにしか見えんw
つまり貧乏人が吼えてるだけかとw
AllFlashサイトへの批判は、Adobeじゃなくサイト側に向かうべきだし、
アップデートが多いってのも、ChromeやFirefoxでもしょっちゅやってるし、
自分の気に入らないことを挙げ連ねてるだけじゃね?
>>818 まあそうかもしれんが
趨勢がそうなると、Flashも隅に追いやられる罠
Soundとそうめん(Thread)のどっちでもいいんですが Web上にアップしているmp3をロードした時、Soundで言うとbytesTotal、そうめんでいうとprogress.totalの数値が 0のまま変わらなくて困っています。 PC内のmp3をロードした時は表示されて、その数値でシークバーを描画していたのでなんとかtotalの数値を取得したいんですが どうすればtotalの数値を取得できるのでしょうか?
ソースはこんな感じです ... _sndt = new SoundLoaderThread(new URLRequest("mp3/***.mp3")); // 絶対パスでも特に差異なし _sndt.start(); // ロード開始 _container.addEventListener(Event.ENTER_FRAME, _check); } private function _check(e:Event):void{ trace(_sndt.sound.bytesTotal); // 0のまま変わらない trace(_sndt.progress.total); // こっちも変わらない trace(_sndt.progress.isCompleted) // 読込完了のフラグは立つ }
ProgressEvent使うんじゃないの?
ProgressEventの部分がスレッドのprogressの中に入ってる(はず)なので・・・ スレッド使わないでやれば普通に成功することなんでしょうか
それくらい自分で試せよアホか
いや、マジでなんで試さないの?
自分で試してみてダメだったけど、普通は成功するものなのかな ということでした 言葉足らずですいません
827 :
Now_loading...774KB :2011/11/16(水) 18:07:24.48 ID:AXCgLZ2Z
AS2,XP,CS4です。 ダイナミックテキストでの文字の表示方法が分かりません。 やろうとしているのは、入れ子にテキストフィールドを持ったMC(リンケージ名はegg, テキストの変数名はtxt)があり、それをステージ上に10個おのおの番号を持って 出現させたいです。 記述は、 for (idx=0; idx<10; idx++) { newMark = "egg"+idx; newMark.txt = idx; prop = {_x:20+idx*50, _y:20+idx*50}; attachMovie("egg", newMark, idx, prop); } つまり egg[txt] の形でtxtに0〜9を表示させたいです。 eggは10個出ましたが番号が表示されません。どうしたら良いでしょうか?
最近HTML5+javascriptを使えだの言われてますが actionscript3.0の具体的な実行速度ってどれぐらいなんでしょう? コンパイル言語だし、actionscriptの方が速度の優位はあるように思うのですが、 描画速度ではなく、純粋に数値計算を繰り返した場合、 javascript(googleV8あたり)と比較して、 それぐらい速度の差があるものなんでしょうか?
Xそれぐらい ○どれぐらい
830 :
827 :2011/11/16(水) 23:47:07.57 ID:QcnKfhjC
(自己解決) 原因が分かりました。attachMovie後にテキスト代入すればOKでした。 attachMovie("egg", newMark, idx, prop); this["egg"+idx].txt = idx;
アンドロイド用に作っているのですが、下のスクローラーに、 <s:Group x="0" y="0" width="480" height="105"> <s:Scroller width="100%" height="100%"> <s:HGroup id = hgGroup width="100%" height="100%"> </s:HGroup> </s:Scroller> </s:Group> 以下の文をボタンで呼び出してテキストエリアを追加する様にしたのですが、 var hoge:TextArea = new TextArea(); hoge.width=148; hoge.height=280; hoge.x = 0; hoge.y = 100; hgGroup.addElement(aTextArea); 画面に収まる数以上のテキストエリアを作るとスクロールする様になるのですが、 一番新しいテキストエリアが画面の一番端に来てしまい、文字を入力しにくいので、 もうちょっと真ん中に持って来たいと思い画面を指でスライドさせても、もちろん バネで元の位置に戻ります。真ん中で固定させるにはどうしたら良いのでしょうか?
↑ごめんなさい一番下の hgGroup.addElement(aTextArea); は hgGroup.addElement(hoge); の間違いでした。
↑ごめんなさいしかも自己解決しました。デザインツールのレイアウトのパディングでなんとか出来るんですね。 ギャップも弄れて便利でした。終わり。
書き換え可能なTLFテキストフィールドを配置してます。 テキストをそのまま編集してるときはいいんですが、 var txt:String=tlfTF.text; tlfTF.text=txt; のように、テキストフィールドの.textをいったん別の変数に保存して、再度.textに代入すると、 微妙に文字間か何かが変わっているのか、文章の折り返しポイントが変わってしまい、 表示がおかしくなってしまいます。 何か修正する方法はないでしょうか?
>>1 に
質問は物凄い勢いじゃなくておk
って書き忘れたわ
>>834 TextLayoutFormatでフォーマットを設定してやればいいんじゃないかな。
>>836 TLFテキストが置いてあるSWFをロードした段階でtextFormatとtextFlowを一旦保存し、
.textを差し替えたのちまたフォーマットを設定し直してもやはりなってしまうようです。
うーん。 ASで全部やればうまくいくけどなぁ。 プロパティインスペクタで設定した内容と合わせるとかしないといけないけど。
839 :
Now_loading...774KB :2011/11/18(金) 00:06:17.60 ID:Bdmo/LNI
sparkのDataGridを使っていて2点質問があります。 1.ヘッダーの文字列を任意の位置で開業することは出来ますか? 2.5列のカラムがあったときに3列目と4列目のカラムのヘッダを結合したいのですが可能でしょうか? ググッてみたのですが、イマイチ情報を見つけることが出来ませんでした。 どうかよろしくお願いいたします。
改行したい位置に &#13;って改行コード入れたらいい (&はわざと全角になってます。) 2は無理。Gridでやってみるとか。 (HTMLだとTableタグのような感じで書ける)
841 :
Now_loading...774KB :2011/11/18(金) 13:03:43.88 ID:Y9KiMzty
CS4(AS3)のWinXPですがTextAreaの書式変更ができなくて困っています。 ググって調べると var myformat:TextFormat = new TextFormat(); myformat.size = 18; //文字サイズ変更 として、TextAreaをtAreaで生成し、ここに文字を入れ込んで tArea.textField.setTextFormat(myformat); か tArea.text.setTextFormat(myformat); で いける筈なのですが文字は出るものの何も変化しません。 ※後者はエラーメッセージ Error #1006: value は関数ではありません。 が出ます。 どうすべきでしょうか?
うる覚えだが 静的に作成したテキストエリアはフォーマット受け付けないんじゃなかったっけか こっちも質問 コードの最大行数っていくつなの? フレームに直接書く場合と外部クラスファイルで差はあるんだろうか
>>841 文法間違ってます
TextAreaがtAreaなら、そこにスタイル適用させないと
textFieldとか、textとか、おかしな場所に適用させようとしてもダメ
うろ覚えだが、 うる覚えは、よくやる間違い なっ
そうだったねw で ファイルに書けるコードの最大行数って何行なんだっけ?(CS5) MX2004時代は4000行とかじゃなかったっけか 4000行超えた処理は無視されて困った経験がある 今携わっている作品もメイン処理部のコードが膨大な量になりそうで悩んでいる 高速化のためにインラインを多用したいんだ 普通は大まかな処理毎にクラス分けするもんなんだろうけど
846 :
841 :2011/11/19(土) 10:08:35.78 ID:N845XXMy
>>843 できました
myformat.size = 18
tArea.setStyle("textFormat"myformat);
でOKでした。
847 :
839 :2011/11/19(土) 19:14:45.66 ID:ZOp6eESM
>>840 ありがとうございます。
おかげさまでヘッダの文字の改行できました。
カラムの結合はできないんですね。。
残念です。。。
FBのデザインツールでGroupの中にTextInputを入れて、もしかしたらと思い GroupのID.TextInputのID.text とドット構文を書いてみたのですが、当然でしょうがエラーでした。 色々試行錯誤して以下の分でアクセス出来たのですが、 var whatGroup:Group = group.getElementAt(0) as Group; var whatTextInput:TextInput = whatGroup.getElementAt(0) as TextInput; シンプルではないですし、インデックスでしかたどれません。 上のドット構文の様な方法でアクセスする方法があれば教えてください。
ドット使うも何も、直接TextInputのID.textって書けばアクセスできる
>>849 ありがとう。
実はアクセスする側の処理を変更せず、生成した全てのグループ内の同IDのコントローラーにアクセス出来る様にしようと思っていたんですが、
そうやって作った場合でも違うIDだと怒られるんですね。インデックスでアクセスします。。
Flash CS4で製作したswfファイル(キャラの各種アニメーションをまとめた物)を FlashDevelopでEmbedして、gotoAndStopなどでアクセスしたいのですが、上手く行かないです…。 [Embed(source = "../lib/sample.swf")] public const SampleSwf: Class; public function Main():void { var sampleSwf:MovieClip = new SampleSwf(); stage.addChild(sampleSwf); // ステージに表示はできる var mc:Object = stage.getChildAt(1); var mc:Object = stage.getChildAt(1); mc.gotoAndStop("walk"); // 歩くアニメーションMCが配置されているフレームに飛ぶ } Embedしたswfをnewして、そのインスタンスをaddChildでステージ上に表示することは出来たんですが そこに表示したインスタンスに対して.gotoAndStopなどをしても、何も起こりません。 どうすればEmbedしたswfファイルに対して、gotoAndStopやgotoAndPlayのアクセスが出来るのでしょうか。
852 :
Now_loading...774KB :2011/11/21(月) 20:06:33.15 ID:V5dkpBcP
WinFlash4 As3です tween1 = new Tween(this.Obi01,"scaleX",Strong.easeOut,1,0.6,duration,true); tween2 = new Tween(this.Obi01,"scaleY",Strong.easeOut,1,0.6,duration,true); 上のようにscaleX、scaleYだけちがう場合に、まとめて1行で書くする方法って ありますでしょうか? よろしくお願いいたします。
ない
アイテムレンダラーで、data(XML)の内容からアイテムに表示するべきコンポーネントの種類を判別し、 UIコンポーネントを生成し分けているのですが、 それらがリストにバラバラと並んでからスクロールさせると、なぜかコンポーネントの種類が ランダム(の様な感じで)入れ替わってしまいました。 画面から消して戻す度に並びが違います。これはなぜなんでしょうか?
Flex3のFLV再生について質問です。 現在Flex3.2でFlvPlayerを作っています。 VideoDisplayコンポーネントを使って動画を再生し、HSliderでシークを実装したのですが、 シークはActionScriptで制御しているのですが、動画によってシークがずれてしまうことがあったり 動画の終盤へシークするとシークされない時があります。 動画によってシークポイントが変わるということまではわかったのですが、 それを制御できるものなのでしょうか? それともしょうがないと割りきってしまわないと行けないのでしょうか どうぞ、よろしくお願い致します。
AS1.0で質問です。 10進数の数値を62進数の文字列にする処理を作ってみたのですが 62進数の文字列を10進数の数値にするにはどうすればいいですか? code = ["0","1","2","3","4","5","6","7","8","9", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]; txt = ""; int = 20111123; // 62進数では1mnOX while (int >= 62){ amari = (int % 62) ; txt = code[amari] + txt; int = Math.floor(int/62); } txt = code[int] + txt; trace("終了!結果は…" + txt);
1文字ずつ取り出す (文字の番号)*62^(何桁目にあったか)を合計する
>>857 できましたありがとうございます
ただ、文字を番号に変換する部分がどうしてもわからなくて
if(hoge == "a"){hoge = 10;} ... if(hoge == "b"){hoge = 11;} ... という感じで62回分岐させたので行数がとんでもないことになってしまいました
もっとスマートな方法あったら教えて下さい
859 :
858 :2011/11/23(水) 13:25:32.69 ID:MW3Hj/SQ
charCodeAt(0)で解決しました すみません
860 :
Now_loading...774KB :2011/11/23(水) 14:10:50.11 ID:gkK298dp
すみません。 ┌タイトル ──────┐ │ │ │ │ └──────────┘ こんな感じで枠組みの線を表示して 枠の中にはボタンなどを配置して、 左上部に任意の文字を表示したいのですが、 どのように実装すればよいか教えて頂けないでしょうか。
>>860 どこまで出来て、どこで躓いてるのか、もっと詳しく
ボタンを押すと、何かアクションを起こすことは出来るの?
ていうか、まず言語とかフレームワークは何なの?
>>860 spark.components.Panel使えばいいだけじゃね
AS3のゲームサンプルってないですか? ネットでも書籍でもいいです。 できればアドベンチャーゲームの サンプルがあるといいです。
アドベンチャーって、テキスト読んで静止画の背景が変わるとか、そういう古典的なタイプ?
Flash CS で作成した部品(ボタン等)を、FlashBuilderで使う場合の テクニックを、細かく書いたドキュメントや書籍があれば 教えてください。 よろしくお願いします。
>>866 そうです。
あとはフラグ(変数)とBGMのコントロールの
仕方が書いてあると嬉しいです。
自分でもFlashの書籍やサイトをさがしたのですが、
初心者向けにはグラフィックツールの使い方
などが中心の本が多く、
それ以上の人が対象の本は急に難易度が
上がってさっぱりと言う感じでした。
AS3でゲームをつくるのに、
とっつき易いいい書籍などが知りたいです。
870 :
845 :2011/11/26(土) 16:45:11.20 ID:EhD49fL+
CS5 最大行数についての報告 結果は…結局わからないんだけど途中までの実験結果の報告w こんなRPGなんかでのトリガー処理を何行実行できるか試していった if ( mapX==10 && mapY==20 && dir==0 ){ enemy.no=60000; textWindowOpen( enemy.no, 0 ); enemy.flg=true; }//60000行目 2万行 問題なくパブリッシュされ最後の行の処理も実行される 4万行 Flashの仮想メモリが足りないとの警告 128Mbから512Mbに増やす メモリ増加後パブリッシュが激重になる 約1分くらい 6万行 パブリッシュに6〜7分もかかったが途中の処理や最後の6万行目の処理は問題無く実行された 6万以上はさすがに無意味だと思い実験終わり
javascriptからflexの呼び出しで呼び出した関数の中に FileReference.save()があるとError calling method on NPObject. となって止まってしまう。 なんとかjavascript空呼び出したいんだけどどうすればいい?
無理。ローカル保存系はウイルス対策もあってボタン操作とかのはっきりしたユーザーからの操作経由じゃないと呼び出せない。 設計がアホ。
なるほど。 FileReference.save()からならウィンドウ開いてから保存だからセキュリティに配慮しているもんだと思っていた
アンドロイドのairアプリを作っています。 protected function hoge_clickHandler(event:MouseEvent):void { } と言うイベントハンドラーを、ボタンのタッチではなくActionScript から呼びたいのですが、引数に何を入れれば良いのでしょうか?
>>874 hoge_clickHandler(null);
でいけるんじゃないかな。
>>875 行けましたありがとう!いらないんだ、、。
>>869 ありがとうございました。
調べてみます。
as3で弾幕STG作るってアホですか? ABA GAMES先生がやってたっけか。。。
モバイルAIRを作っています。 <s:TextInput id="textInputId" x="19" y="83"/> を、 var stream = new FileStream(); var file = File.userDirectory.resolvePath("textInput.bin"); stream.open(file, FileMode.WRITE); stream.writeObject(textInputId); stream.close(); と保存して、 var stream = new FileStream(); var file = File.userDirectory.resolvePath("textInput.bin"); stream.open(file, FileMode.READ); textInputId = stream.readObject(); stream.close(); こうやって読み込んだら、 TypeError: Error #1034: Type Coercion failed: cannot convert Object@194a5581 to spark.components.TextInput. って怒られたんですが、やっぱりこれはコンポーネントを まんま保存読込みしようとした事が悪いと言う事ですか? コンポーネントの保存読み込みの仕方を教えてください。
textInputId = TextInput( stream.readObject() ); ってやって解決したりしない?
>>880 ありがとうございます。
うーん先ほどと同じエラーメッセージが出てダメですねえ。
型は同じだと思うんですが。
suzukaでattachMovieで複数個のオブジェクトを追加して、それぞれバラバラの座標に配置したいんですけど、 下のようなコードを書くと、両方ともX=50に移動してしまいます。 var test1 = _root.attachMovie("img1","TestImg1", 500); var test2 = _root.attachMovie("img2","TestImg2", 501); test2._x = 50; なんででしょう・・・・?
AS1.0の質問です ・ユーザー関数でvar hoge = 0;のように変数の頭にvarをつけるのはどういう意味があるんですか? ・複数のユーザー関数で同じ名前の変数を使ったらまずいですか?(numとかiとか) ・↓のようなMCを複製した場合removeMovieClipされても変数frameがメモリに残ったままになってまずいですか? onClipEvent(load){ frame = 0; } onClipEvent(enterFrame){ frame ++ ; if(frame > 10){this.removeMovieClip();} } 質問が多くてすみません
>>879 registerClassAlias シリアル化
らへんでググるといいかも
ただし保存するクラスはコンストラクタに引数を必要としないクラスに限る
>>883 ・ここで変数宣言したよ、ってのをわかりやすいようにするため
・二回同じ名前の変数作ったとしたら、とりあえず一回目で作った変数の中身が二度と見れなくなるだけ
・変数frameはそのMCの中で定義された物になるので、removeMovieClipされた後そのMCを参照する物がなければ、frameはいつか消える。
でも数値型の変数なら10000個くらいメモリに残ってても気にすんな
>>886 わかりやすい説明ありがとうございます
安心しました
888 :
Now_loading...774KB :2011/12/01(木) 23:29:11.12 ID:Yf8VPcyQ
ド素人ですみません。 いままでFlashLite1.1とかでプログラムを組んでいたのですが いきなりAS3.0に変えてくれ、と言われて四苦八苦してます。 AS3.0ではtellTargetの書き方はどうすればいいのでしょうか? いままでは tellTarget ("aaa") { gotoAndPlay("a1"); } としていたものはどう書けばいいのでしょうか? 宜しくお願いいたします。
>>888 aaa.gotoAndPlay("a1");
かな?
890 :
888 :2011/12/01(木) 23:56:30.67 ID:Yf8VPcyQ
おおおお、ありがとうございます! tellTargetて使わなくなるんでしょうか? と、いうことはaaaの中のbbbというmcの2フレームから再生したい、て時は aaa/bbb.gotoAndPlay(2) とかで良いんでしょうか? 重ねての質問失礼とは思いますがお助けください。
自分で試せボケ
lite1.1→3.0 ってどういう変化だよ ガラケーからスマホAIRにすんのか?
打ち間違いかもしれんが/じゃなくて.なので aaa.bbb.gotoAndPlay(2);すればいける
きょうびtellTargetを書いてるやつとか かわいそうすぐる。。。
>>893 打ち間違いじゃないよ
lite1.1はスラッシュシンタックスだったから・・・
AS1.0の質問です _root━ originalClip 上のような階層関係で_rootにduplicateMovieClip("originalClip","newClip",0);と記述すると _root┳ originalClip ┗ newClip ←ここに複製されますが _root┳ originalClip ┗ hoge ━ newClip ←ここ 上の図でいうhogeというムービークリップの中に複製させるにはどうすればいいですか? できればhogeの中ではなく_rootに書きたいんですが
>>896 duplicateMovieClipだと無理。
originalClipをライブラリに登録して hoge.attachMovie() それか外部SWF化して hoge.loadMovie() とかってしないとだめ。
898 :
888 :2011/12/03(土) 05:51:50.59 ID:QMLfUL2Y
あぁ、こんなにレスが、、ありがとうございます。 >892 まさにその流れです。。 捨てるのはもったいないから改造してくれ、って・・・ がんばって改造続けてみます!
2.0からの移植でも投げるレベルなのにlite1.1からAIRって作り直したほうがマシなんじゃね それ以前に3.0イベントやクラスの概念ちゃんとしたほうがいいと思うけどね
>>897 ありがとうございます
hoge.attachMovie();でできました
モバイルのairアプリを作っています。 actionscript3で使えるsqliteはファイルが大きくなるとアクセスが遅くなると聞きました。 そこでsqliteにオブジェクトのリンクを保存して、 その都度読み込んで使う様な仕組みがあると思うのですが、 検索してもsqliteにそのままバイナリを突っ込む方法しか見つかりませんでした。 何か良い仕組み等があれば教えてください。
902 :
【お絵かきアプリ】はじめまして :2011/12/03(土) 17:36:52.48 ID:hYcW2LU0
はじめまして。 AIRでAndroidタブレット向けにお絵かきアプリを作っています。 絵を描く時の描画が指に遅れて付いてくるので困っています。 PCで動かすと大丈夫ですが、タブレットで動かすと遅れます。 Spriteに絵を描く時に graphics.moveTo(), graphics.lineTo() を使用しているのですが、最初だけ指に追従し、 線が増えると共に遅くなります。 何か手がかりがあれば、教えていただきたいです。 よろしくお願いします。
>>901 sqliteの「その都度〜」っていう暗号はどこで聞いてきたわけ?そこで聞いてくれ。
>>902 lineTo系はタブレットによっては無理。つーかベクター描画で速度出すとかほぼ無理。
touchEventで座標データだけとって、自前でBitmapDataに書き込むと少しはマシ。
setPixel系のメソッド使って自前でlineTo相当の処理を実装するわけね。
>>903 ありがとう。その都度云々と言っているのは、
自分の妄想なので自分で実装して見ます。
Actionscript2.0、FlashCS3を使用しています。 ID1=1; ID2=2; ID3=3; ・ ・ ・ ID20=20; ↑一つ一つ、打ち込んでいくのが面倒だな、と感じています。 一括して処理する方法があれば、ご教授いただけますでしょうか。
>>905 配列アクセス演算子と、forループあたりでいける
907 :
【お絵かきアプリ】はじめまして :2011/12/04(日) 13:33:56.58 ID:sE3VMJZt
>>903 お返事ありがとうございます。
各行がそれぞれ、とても参考になりました。
BitmapDataで試してみます。
AS1.0の質問です 画面をドラッグして放すと直線を描画する関数を作ってみたのですが 直線の長さ(始点から終点までの距離)が一定以上になると長さが上限に固定されて ドラッグしてもこれ以上伸びなくなるようにするにはどうすればいいんでしょうか?(終点の座標も取得したいです) onMouseDown = function () { xstart = Math.floor(_root._xmouse); ystart = Math.floor(_root._ymouse); Edit = true; }; onMouseMove = function(){ if(Edit){ clear(); lineStyle(1,0x000000,100); moveTo(xstart, ystart); lineTo(Math.floor(_root._xmouse), Math.floor(_root._ymouse)); x = (xstart - Math.floor(_root._xmouse)); y = (ystart - Math.floor(_root._ymouse)); rot = Math.atan2(y,x) * 180 / Math.PI * -1; lengh = Math.sqrt( x * x + y * y); }}; onMouseUp = function () { if(Edit){Edit = false;trace("角度:"+rot +"/長さ:"+ lengh);} };
909 :
Now_loading...774KB :2011/12/04(日) 17:15:57.31 ID:bdmoqaQO
AS3(Flex4.5)で質問です。 10列あるDataGridの3列目から4列目の上部に 列のグループ名を表示するLabelを動的に貼ろうと思っています。 今はLabelのxを列1のwidthと列2のwidthを足してwidthについては列3と列4のwidthを足して設定しています。 <s:Label text="hoge" x={column1.width + column2.width} width={column3.width + column4.width}/> ですが、このままだと微妙に左にずれたりしてしまっています。 きれいに各列の位置と合わせるにはどのようにすればよろしいでしょうか。
>>908 なんもわかってねえならわかってないって書けよ・・・
911 :
908 :2011/12/04(日) 18:58:17.32 ID:T69RFnqa
Math.cosとMath.sinでできました スレ汚しすみません
912 :
905 :2011/12/05(月) 06:03:27.85 ID:e8mCD/L+
>>906 アドバイスのおかげで、無事解決致しました。
どうも、ありがとうございました。
for(i=0; i<=20; i++){
this['ID'+i]=i;
}
変数の名前を文字列で得たり、文字列を変数名とした変数を作ったり使ったりするには どうしたら良いでしょうか? 例 var hoge:int;という変数の場合"hoge"という文字列を得る。 "hoge"という文字列を変数名に持つvar hoge:intを作る。 "hoge"と言う文字列を使い、hogeという変数をメソッドの引数に使用する。
配列で解決しろよ
>>914 ありがとうございます。
、、、色々考えましたが、ピンと来ません。もうちょっとヒントください。
具体的にやりたい処理はどんなの? 変数名って基本的に意味を持たないと思うよ
917 :
913 :2011/12/07(水) 10:30:28.54 ID:ozrGkexV
>>915 今回は、アプリ終了時のビューが何であったかをファイルに残し、
再起動時にそれを読み込んでそこに遷移すると言う事をしようとしました。
別の変数に記録し、if~if else文で遷移する可能性のある画面毎に遷移文を書いておけば良いのですが、
今後ビューが増えたりした時のためにメンテナンス性を考えました。
>>917 もう少し具体的に書けない?
自分で作ってるからその説明で自分は納得できても、
他人には想像しかできないし、それが正しいかもわからないし。
画面(ビュー)遷移があるアプリで、その終了時の遷移先を保存しておきたい。
と捕らえたんだが、どう?
しかし、その内容で
>>913 で解決する意味がわからない。
>今後ビューが増えたりした時のためにメンテナンス性を考えました。
というけど、現在のビューの管理がどうなっているのかがわからないけど、
外部に定義したファイルを読み込んで、ビューを表示したいってことなんかな??
やりたいとこはなんとなく分かるけど、時代に逆行してるんだよなあ。 でもJavaScript関係でJSONとかそのまま使ってるのもあるからなあ。 ASでやるなら適当なObjectかDictionary作って、配列アクセス演算子だろうなあ。 var o:Object ={}; o["hoge"] = 10; trace(o.hoge); trace(o["hoge"]); for(var key:String in o){ trace(key); trace(o[key]); }
まあObjectやDictionaryで文字列を変数名に使うようなことはできると思うけど、 やっぱり配列使おうぜ
やりたい事わかる? ビューを保存するのに、そのビュー内で定義した変数名を 動的に保存する必要がわからないんだが。 そのビューが動的に生成されるにしても、 定義は動的ではないだろうし。
シリアライズして復元したいんでしょ。
923 :
913 :2011/12/07(水) 13:36:35.89 ID:ozrGkexV
ごめんなさいみなさん色々ありがとう。 先ほどから出先なのでコードが載せれません。 また帰ってから返信させていただきます。
924 :
913 :2011/12/07(水) 14:56:54.95 ID:ozrGkexV
シリアライズではないんですごめんなさい。 そうですね読み返して見るとあの文章ではそう思われても不思議はないですね。。 (と言うか今は状態保持の為にビューごと保存しちゃうのが流行りですか?) 遷移時、特定のビューの指定として例えばviews.hogeと言うポインタ名をメソッドの引数の所に入れると思うのですが、 そのポインタをファイル化して次回起動時にメソッドに渡しても無意味だと思います。 そこで、そのviews.hogeポインタ名を文字列にして保存し、 次回起動時にその文字列をポインタ名に戻して遷移メソッドに代入出来れば、 その時にはそのポインタはその時のビューを差してるので、 便利だなと思いました。 また帰ってからコードを書きます。。
>>924 それだと、次回起動時にはポインタの先の内容は全く別のものになってるんじゃ?
オブジェクトごとまるごと保存するのが良さそうな
926 :
913 :2011/12/07(水) 15:43:06.35 ID:ozrGkexV
>>925 システムが起動毎にその名でそのビューを指すポインタを作るので、
保存した文字列からポインタ名を作られれば良いのですが、
やはり時代は丸保存なのでしょうか。
それなら、変数名(=ポインタ名)がhogeだったとして、その変数の親をparentとすると、 parent['hoge']で呼べるんじゃなかったかな それよりASでポインタって言葉出てこないよな?
なんか話が進んでるが、まだよくわからん。 みんなよくわかってるなぁ。 ビューhoge、その他があり、そのビューのリストがviewsとして、 画面遷移させるには、画面遷移用のメソッドにビューを引数として渡す こういう仕組みだということなんだろうけど、 >そのポインタをファイル化して次回起動時にメソッドに渡しても無意味だと思います。 ここがまるでわからない。 >システムが起動毎にその名でそのビューを指すポインタを作るので、 >保存した文字列からポインタ名を作られれば良いのですが、 保存した文字列から作らないといけない意味がわからない…。 起動時にどのビューで終了したかを保存して、それを再生したいだけ? それならやりたい事はわかるけど、そういう方法じゃなくてもいいよな。 >やはり時代は丸保存なのでしょうか。 JavaとかならXMLEncoderとか使って簡単にできるから丸ごとでも良いかもしれないけど、 ASだったらそんな事したくないなぁ。
自分ルールで「ポインタ」って言われても何のつもりなのかわからんなこりゃ。
>>927 みたいな感じなのかな。メソッド実行したいなら「オブジェクト["メソッド名"]();」てな感じで。
継承関係とかがわかるクラス図ありませんか?
>932 ありがとう class diagramで検索したら何個かでかいファイル見つかりました
934 :
913 :2011/12/08(木) 02:12:18.56 ID:AOuL997P
みなさま昨日一日おつきあいすみませんでした。 今更ですが、関係ソースは以下のメソッドの第一引数に遷移する先のビューを入れると そこに遷移するというものだけでした。 navigator.pushView(views.hoge,null,null); まずこれが遷移前にいたビューの名前の文字列をファイルから取り出した処理だと仮定して、 var hogeString:String = "hoge"; 以下の文を実行しても、viewsパッケージを値として使用できませんとエラーが出て出来ませんでした。 navigator.pushView(views[hogeString],null,null); 何かviewsは特別の物のようです。。 ASではアドレスの入った変数の事を特に何と言えば良いのか分かりませんでしたすみません。 単に「オブジェクトの変数」で良かったのかな。
やっと、Flexでモバイルアプリ開発してるんだろうなということがわかった。
最初に書いておけばなんて事は無いのに。
>何かviewsは特別の物のようです。。
たぶんあなたの書いたviewsってパッケージの事じゃ無かろうか。
>>928 とかの内容に答えていればもっと的確なアドバイスがもらえただろう。
で、何がやりたいの?
次回起動時に指定のviewで始めたいだけじゃないの??
936 :
913 :2011/12/08(木) 17:37:20.62 ID:AOuL997P
>>935 >最初に書いておけば
その様ですね。こちらはASのスレなので、、
とかいらない事を考えてました。
>>928 とかの内容に答えていれば
はじめのうち内容が理解できませんでした、、。
>viewsってパッケージの事じゃ
そうですね。views;とだけ書いても
それは値として使えないと怒られました。
>次回起動時に指定のviewで始めたいだけ
そうなんです。そのシンプルな方法を探していました。
>>936 >>1 には
> ●質問する時は自分の環境を書く(AS2,AS3の別も)
> ●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く
とあるわけだが。
> >次回起動時に指定のviewで始めたいだけ
> そうなんです。そのシンプルな方法を探していました。
pushViewの引数に指定するのは、Classなので変数名がわかってもしょうがない。
viewsパッケージ内であなたが作ったHoge等のビューを指定する。
なので終了時に保存するのは、終了時のViewのクラス名。
クラス名はflash.utils.describeType()を利用して取得が可能。
この返値がXMLなので、終了時のview内でdescribeType(this).@name として、E4X形式でアクセスする。
で、コレを文字列として保存したら良いのでは無かろうか。
で、起動時にそのviewにするには、
flash.utils.getDefinitionByName()を利用する。
返値がClassなので、getDefinitionByName(保存した文字列)で取得したものを
pushViewの引数に渡せばいいはず。
試してないから色々落とし穴があるかもしれないけど。
938 :
913 :2011/12/09(金) 00:21:54.02 ID:I1e5l29r
>>937 おおありがとうございますそんな方法があるんですか。
自分でも時間だけはかけて色々探したんですが。。
試して見ます。
ビューを再起動時に再現すると言う意味ではセッションパーシスタンスと言う
仕組みがある様ですが、技量が無いのでデータ再現までは辿り着けていないですが。
939 :
Now_loading...774KB :2011/12/09(金) 09:51:07.11 ID:0dt/EFyR
現在AIRで製作していますデスクトップアプリなのですが、 フルスクリーン表示で、大量のPNG画像のアニメを使用しており ユーザーのモニター解像度によっては激重になってしまいます。 StageQualityも、AIRは画質調整が高画質と最高画質しか対応しておらず、 flash版の低画質のような全画像のスムージングを切る選択肢を入れたいのですが、 良い方法はあるでしょうか。
ゲームとかで制限時間(30秒くらい)はかるのって 毎フレームgetTimerして設定時間と比較するのが普通でしょうか?
941 :
940 :2011/12/09(金) 11:33:43.01 ID:H6wF/FaK
書き忘れました。AS3.0です 他には毎フレームcount++してfpsで割るのと、setIntervalくらいしか思いつきませんでした
タイマーイベント
>>942 あー。
普通はタイマーイベント使うってことでしょうか?
んだ ヘルプ見てみ あれは色々便利だお
946 :
Now_loading...774KB :2011/12/10(土) 22:27:04.82 ID:BRPjSHBT
AS3,WinXP,CS4です。BetweenAS3のベジェTweenの対象個数で質問です。 (すいません、長文です) ステージ上に2個のMC(mcA,mcB)があり、同じステージにベジェTweenを起こすMC(twM)を 置きました。 つまりmcA,mcB,twMは兄弟の関係で、上下構造はの下記ようになります。 上側) [ twM ] [ mcB ] [ mcA ] (下側 最初、mcAにベジェTweenを設定して動作できたので、これを解除してmcBに設定したところ、 mcBにもベジェ動作が起こりましたが、同時にmcAも解除した筈のベジェ動作が起きました。 前の名残が作用した感じでです。 ※事実上パラレル動作になる Tween解除はtwMをremoveChildして更にこれをnullにしています。また、設定の際は毎度twMを newしています。 (常に新規のベジェTweenを起こすMCが設置される筈ですが・・・) 実際のベジェTween記述は下記で、var iTween:ITween; でITweenオブジェクトを定義し、 ボタンのMouseEvent.CLICKで下が実行されます。 iTween = BetweenAS3.bezier( ターゲットMC(targetM), カーブポイントなどのベジェ曲線の記述, 所要時間, BackEaseOutなどのTweenタイプ ); iTween.play(); trace("情報:"+targetM, iTween);//動作情報を知る ここで不思議なことに最後の行の trace("情報:"+targetM, iTween); はボタンを1回しか押していないのに 名残動作がある場合に2回実行されます。 つまり、現設定+名残の2個です。 なぜこのような(パラレル動作的な)現象が起こるのでしょうか?
また失礼します。モバイルAIRアプリをMXMLとASで作っています。Groupに登録されたTextAreaとその書かれた内容をひとまとめに保存しようと思っています。 まず<s:ViewNavigatorApplication>にpersistNavigatorState="true"を追加して、以下の様に[RemoteClass]付きのGroupクラスを継承したクラスを作り、 package HogeGroup { import spark.components.Group; [RemoteClass] public class HogeGroup extends Group { public function hogeGroup(){ super(); } } } 以下の文でそのHogeGroupにTextAreaを作り、起動して適当に文字を入力します。 public var hogeGroup:HogeGroup; public var textArea:TextArea; protected function hoge_creationCompleteHandler (event:FlexEvent):void { hogeGroup = new HogeGroup(); textArea = new TextArea(); hogeGroup.addElement(textArea); group.addElement(hogeGroup);//groupはMXMLで定義されているGroupコンテナのid } そして以下のボタンでhogeGroupをdata.hogeに返してから終了。 protected function toData_clickHandler(event:MouseEvent):void { data.hoge = hogeGroup;} で再起動して以下のボタンでhogeGroupに戻した時に、変換出来ませんとエラーが出ます。 protected function fromData_clickHandler(event:MouseEvent):void { hogeGroup = data.hoge; group.addElement(hogeGroup); } [RemoteClass]を付けたので変換出来ると思ったのですが、何がダメでしょうか?
949 :
Now_loading...774KB :2011/12/11(日) 03:11:09.88 ID:jVmMrWN7
てす
950 :
947 :2011/12/11(日) 13:00:29.36 ID:em69GtDU
951 :
947 :2011/12/12(月) 01:24:34.31 ID:3UP+0msg
教えていただいた方法含め色々試した所、結局カスタムクラス等を作る必要もなく、 [RemoteClass]ではなくregisterClassAlias()をGroup用にもTextArea用にも、 各々インスタンスの宣言前、dataの入出両方の手前にも各々載せたらTextAreaに書かれた文章も 再起動時に現れました。自分しか知らない当たり前の事だったのかもしれませんが。。 しかし手軽に出来てよかったです。ありがとうございました。
952 :
Now_loading...774KB :2011/12/15(木) 00:03:38.44 ID:X33CnN5C
て
私ばっかり質問して申し訳ございませんが、モバイルAIRアプリを作っている者です。 sharedObjectを色々いじくっているウチに、nullオブジェクトにアクセスしたという正体不明の エラーが出て困っています。試しに同じソースをテストプロジェクトにペーストして 実行するとエラーは出ないのです。そこで何かファイル上に残ったsharedObjectファイルが悪さ しているのかなと思い探したのですが、それがどこに保存されているのかが分かりません。 FlashBuilderのandroidシミュレーターでsharedObjectを保存した場合、それはどこに 保存されているのでしょうか?
>>954 おおすごく有用なページご紹介ありがとうございます。
ググらずにHDの中ばかり探してました。。
プロジェクトのシミュレーター実行時も.solで保存されているかなと思い、検索しましたが、
そうではないようです。。結局ソースを全て新規プロジェクトに引っ越しして難を逃れましたが、
何の学びも無いので、FB上で共有オブジェを消す方法を探しましたが、やはりわかりませんでした。。
ただ、data = new Object();とか今考えたら無茶な事をした直後におかしくなった様な気がします。
956 :
955 :2011/12/17(土) 01:13:30.82 ID:mPXqslXW
FB上で共有オブジェを消す方法、プロジェクトのプロパティでデバッグ設定を選び、 項目をダブルクリックすると「アプリケーションのデータを起動毎に消す」という 項目があったので、それを一度チェックしてから起動したら、ちゃんと共有オブジェ 消えたせいか、ちゃんと起動しました。。ど忘れしてました皆さん知ってる当たり前の 事を言ってると思いますが。。
ソフトハウスキャラのOPで良いんじゃよ あこがれの風とかin your sideとか
誤爆
またまたすいませんairモバイルアプリを作っています。
制作を進めている途中、自分ではファイルを移動したり名称変更したりした後の事だと思うのですが、
initial content not foundが出て実行失敗してしまうようになりました。その後色々試した後、
ファイル移動と名称変更を戻しましたが、なぜかまた同じエラーが出てしまいます。
ググってみてAIRSDKのバージョンと<application xmlns="
http://ns.adobe.com/air/application/3.1 ">
のバージョン名が同じか確かめたり、
プログラム名-app.xmlの<content>以下を<content>プログラム名.swf</content>にしてみたりしても
変化はありませんでした。
何か考えられる事があれば教えてください。。
とりあえず全部見ないとわからんなw 貴方が確かめた内容で正しいかもわからんし。
>>960 またまたありがとうございます。
initial content not foundというものがデバッガで実行しても何も処理されず言語道断で出るので、
悪いのはFBやプロジェクトの設定等の事と思っていましたが、試しにXが表示されていた.asファイル
(とは言っても行にはXは表示されていなかった)を削り削り試してみると、この共有オブジェクト
の記述を消すとエラーが出ませんでした。。なお以下の文のビュークラスを他プロジェクトに移植して
実行してもエラーが出ます。
package views
{
public class Test
{
import flash.net.SharedObject;
var so:SharedObject = null;
so = SharedObject.getLocal("test")
}
}
もしかしてspark.components.viewでないからspark.components.View.data():Object
どころかSharedObject.getLocal("")で作る共有オブジェクトが使えないのだろうか、
とかも思いましたが、他のサンプルとかを見ても使えている物が散見されるのでやはり
分かりませんでした。自分でも今調べていますがなぜなんでしょうかね。
import文の位置おかしくね? 普通はクラスの外じゃね
963 :
959 :2011/12/22(木) 06:46:45.06 ID:DW88PMRM
>>962 そうですねすいません色々位置を動かして試したままになっていました。
あの分の内容ではあのimportの位置でも結果はかわりませんでした。
つーかさ、これソース的におかしくないか?? FBで書いてなんでこうなるのかわからない。 2行に分けるなら、コンストラクタ上とかでやるしかない。 package views { import flash.net.SharedObject; public class Test { var so:SharedObject = null; public function Test() { so = SharedObject.getLocal("test") } } } これでダメなら想像が付かない。
965 :
Now_loading...774KB :2011/12/22(木) 11:25:58.14 ID:PDijFfD/
mx.controls.NumericsStepper の Stepper 部分を左側に変更する方法ありますか? わかるかたお願いします。
sparkじゃなくてmx? saprkだったらskin作って指定したらすぐなんだが。
967 :
Now_loading...774KB :2011/12/22(木) 14:01:48.11 ID:PDijFfD/
>>966 Flex3.4ベースです
環境構築時のライブラリとの整合もあって
968 :
959 :2011/12/22(木) 14:03:41.61 ID:DW88PMRM
>>967 なら自作しかなかろう。NumericStepperクラスを親クラスにして、
ボタンのxとかyとか弄ってるメソッド上書きかなぁ。
う、すまん、ソース覗いたらその方法じゃ無理っぽい。
971 :
959 :2011/12/23(金) 00:53:33.24 ID:wWO5nGGh
>>964 すいません教えていただいた並びに文を置くと、何も無く起動し、共有オブジェクトも無事働きました。
その後試しにダメだった時の並びに置くと、それも起動しました。何が起こったがよくわかりませんが、
とにかくうまく行きました!何度も何度もお教えいただきありがとうございました。
AS3で、不思議なダンジョンのゲームのような自動生成ダンジョンを作ろうと考えています
自動生成ダンジョンということで、手描きでダンジョン全体を作るのではなく
壁や床などのマップチップを作り、それを使ってスクリプトでダンジョンを自動生成しようと思っています
そこで具体的なスクリプトの組み方を調べてみたのですが
できればビットマップデータではなくマップチップも自分でFLASHで描いた物を使いたいのですが
参考にしようとした解説サイトがどれもフリー素材のビットマップデータによるマップチップを用いたものでした
その中で一番参考になりそうなサイトが↓なのですが
http://d.hatena.ne.jp/o_healer/20081215/1229316573 配列については調べていくうちに理解できました
しかし自分で作成したマップチップを、どう応用すれば使えるようになるのかがわかりません
どなたかベクターデータで作った場合のマップチップの使い方を教えてください
まず、マップチップをどう作ったのかがわからないと何とも言えないっていうのと、 ActionScriptの話ではないってのが。 ベクターデータのマップチップはFXGなの?svgなの?
1.MCとしリンケージしてつかう 2.IDEから画像に書き出す 3.swfにして読み込む
マップチップは床と壁を80×80ピクセルで描いた物を1枚ずつムービークリップにしただけです とりあえずチップは今のところこの2枚だけです この床のムービークリップや壁のムービークリップを、どのようにActionScriptに記述すればいいのかがわかりませんでした 自動生成は置いておいて、とりあえず 壁壁壁 壁床壁 壁壁壁 このようなマップを作ってみたいです
>>974 なるほど、リンケージするという方法があったのですね
勉強不足でした。ありがとうございます
977 :
Now_loading...774KB :2011/12/23(金) 08:14:06.83 ID:mZ6yXGhU
>>969-970 すみません、なぜ無理なのか教えてください。
NumericStepper クラスのメソッド updateDisplayList() をオーバーライドして
nextButton.x と prevButton.x をともに 0(左端のつもり)にしてもだめなのですか?
978 :
Now_loading...774KB :2011/12/23(金) 08:22:05.24 ID:mZ6yXGhU
>>977 補足
当方、Flex はほとんど mxml で UI 作成とイベントリスナーだけに用いているので ActionScript はにわか勉強だし、クラス作成もした経験がありません。
もし上記可能ならこれから学習してやってみます。(ナマクラですみません)
979 :
Now_loading...774KB :2011/12/23(金) 11:18:29.97 ID:mZ6yXGhU
>>978 それで出来る?mx_internalでnamespace切ってあるから、nextButtonはサブクラスからみえんでしょ?
ああ、最後見てなかった。 ソースが見えるんだからNumericStepperクラスをそのまま自前で組めばいいことになるけど、 そうすると、includeを処理するのが面倒になる。
>>976 draw()使ってbitmapにオブジェクトを書き込む手もある
ぬめりはボタンとテキスト使って自分で作っちゃうのが早そうだね
AS2.0の質問です createTextField("tf",0,0,0,120,24); tf.selectable = true; で選択可能にしたテキストフィールドをマウスで選択してCtrl+Aすると黒文字が白文字になって背景が黒になりますが このCtrl+Aしたときの文字の色と背景の色を変えることはできますか?
大量の"画像や音声じゃない"データをswfに収める必要があるのですが、 外部からダウンロードする以外に、何か方法はありますかね? このデータをクラス化すると20万行も使ってしまい、コンパイルすらままなりません。 クラス化すると、圧縮時で1.45MB、解凍・展開すると60MBくらいになります。 しかし、大元のサイズは4MB程度です。方法はありますかね?
>>976 一旦BitmapDetaにチップ別に書き込んで、
そこから表示用のBitmapDetaにコピーしていく方法が、
速いしわかりやすいと思う。
>>985 とりあえずテキストエディタに"a"だけ4MBまで打ってStringに入れたら普通にコンパイル通ったがw
そういうことではなくて?
>>985 確かXMLファイルとかも埋め込めたと思うが・・・
そういう事じゃないのかな?
>>988 乙
990 :
Now_loading...774KB :2011/12/25(日) 08:13:55.31 ID:t6km4YDk
設計がアホとしか思えないけど、普通にバイナリストリームとして埋め込めんじゃないの。
>>987 Array型で記述して収めると、18万行・10.76MBで、ここだけでコンパイルにはメモリが1GB必要。
これをコンパイルしてライブラリにすると1.45MBになります。
それを展開すると、展開に10秒前後の時間を消費後、60MBのメモリを食います。
ですが、データの塊をバイナリとして書きだすと圧縮時で365KB、解凍時で4.45MBでした。
これをByteArrayに読み込ませると、5MBのメモリを使うだけで、
高速に読み書きできることを確認しています。
>>988 乙
>>989 バイナリが大きすぎて、base64デコードで5秒以上かかりました。
貧弱なCPUだと、コード実行のタイムアウトに間に合わないので、XMLは無理かも。
>>990 結果的にByteArrayに収められるように同封する方法があればお願いします。
ただし、テキスト化やbase64化は、もう試したので、それ以外で・・・。
>>993 どうすればって、バージョン分からんけどフツーに埋め込めないんかいな?
[Embed (source = "埋め込みたいバイナリへのパス", mimeType = "application/octet-stream")]
var Data:Class;
var bytes:ByteArray = new Data();
swfでデータ読み込んでbyteArrayにして保存すれば? でそれを埋め込み
>>993 ありがとうございます。Flexだけかと思ったら、FlashCS4以降でもEmbedできるんですね。
組込み出来ました。ありがとうございます。なんとかなりそうです。
(Flashって、char型で大丈夫なサイズの変数でもInt型に収めないといけないので、
効率悪いですよね・・・。特に、ゲームでデータベースが必要な場合、
データベースをバイナリ化してByteArrayで回した方が軽いし・・・。)
>char型で大丈夫なサイズの変数でもInt型に収めないといけないので よくわからん 埋め
>>995 データベースをバイナリ化ってSQLiteでも使ってるの??
AS3以降で出来るだけ小さくしたいならしょうがないけど、
携帯端末でもないのに大量のデータで困るとか想像できない。
パラメータデータなんかより、画像とか音とかのリソースのほうが容量食うし。
でっかいByteArrayでランダムアクセスするほうが速いにきまってるだろうけど、
それより一気にクラスにしてプログラムが簡単で見やすいほうが良いけどなぁ。
質問させてください。全くの初心者です。Flash Professional CS5.5でAS3.0です。 フルフラッシュのサイトを作りたいのですが、外部XMLのテキストをLabelに引用することは出来ますでしょうか。 例えば <data> <ad1>../home.html</ad1> <comment1>ホーム
ここはホームです</comment1> <ad2>../index.html</ad2> <comment2>インデックス
ここはインデックスです</comment2> </data> 上のXMLの<comment1>~</comment1>をインスタンス名「Label1」に、comment2はLabel2に呼び出して管理したいのです。 Labelの数は4〜6個です。 AS冒頭は以下のとおりです。
import flash.net.URLRequest; import flash.net.URLLoader; var url:String = "data.xml"; var myXML:XML; var xmlLoader:URLLoader = new URLLoader(); xmlLoader.dataFormat = URLLoaderDataFormat.TEXT; xmlLoader.addEventListener (Event.COMPLETE, onXMLloaded); var urlRequest:URLRequest = new URLRequest(url); xmlLoader.load (urlRequest); function onXMLloaded (event:Event):void { try { myXML = new XML(xmlLoader.data); } catch (err:TypeError) { trace (err.message); } } (以下略) textAreaならイメージ通りに呼び出せたのですが、下にボタンを配置することや枠線の関係上、Labelで実装したいです。 スレを跨ってしまうと思いますが、どなたかアドバイスいただけないでしょうか…。
1000 :
995 :2011/12/27(火) 06:46:52.56 ID:K0rqbgIP
>>997 確かに、クラス化したほうが可読性は高いですが、
as3は基本の数値型が豊富ではないので、無駄にRAMを圧迫するんです。
200MBもRAMを使うflashはこうでもしないと軽くできなくて・・・。
ByteArrayランダムアクセスするようにしたら、70MBまで減らせましたし。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。