【AS3】FlashDevelop【フリー】 (601レス)
1-

123: 2009/07/27(月)00:19 ID:UfNVhzWS(1) AAS
>>122 テンプレじゃなくて >>86-94 の辺りは読んだのか
124
(1): 2009/07/27(月)02:42 ID:OpPt/EHP(1) AAS
なんか話が食い違っているように見える

>>120が言ってるのはメニュー表示やら設定画面での日本語化をしたいってことだよね?
自分が知っている範囲では、3.0.1RTMまでは日本語化ファイルを公開してくれている方がいるね
「FlashDevelop 日本語化」でググれば見つかると思うよん

ただこの方法は設定ファイルを上書きする方式だと思うから、
「交互に切り替える」なんてことは無理だと思う
あと日本語化されるのはメニュー部分だけだろうね

>>121が言ってるのは、アプリのUIやコーディングのフォントを変更する方法だね
125: 120 2009/07/27(月)12:27 ID:LjRzadcV(1) AAS
>>124 さん、ありがとうございます。

まさに、その通りです。
設定ファイルを書き換える方法しかないようですので、諦めて古いバージョンで我慢します。
126
(1): 2009/07/31(金)22:41 ID:0BZ92BWl(1) AAS
コンパイルできなくて詰まっています。

昨夜インストールしました。
参考にしたのはここ↓
外部リンク:clockmaker.jp

javaに関しては java -versionで
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
と出てるので問題なさそう。

.NET Frameworkは3.5 SP1が入ってます。

上のページのサンプルを動かそうとしたところ、
コンパイルができませんでした。
「would you like to open the AS3 context settings to configure the compiler」
というダイアログが出てきてしまいます。

ググってみると、
外部リンク:tinyboat.net の [FlashDevelop] コンパイルにひっかかる という記事があり、
解決法らしきものがありますが、試しても代わりません。

何か他に対処法はありませんか?
127
(1): 2009/08/01(土)02:12 ID:md9O1YcS(1) AAS
>>126
最初に参考にしたところの、Step.4、Step.5あたりを良く読んでもう一度設定してみるといいかも
・「Flex SDK Location」のパスをちゃんと指定できているか
・テンプレートで上から2番目の「AS3 Project」をちゃんと選択しているか
 (間違えて「Flash IDE Project」を選んでないか)

FlashDevelopは、Flash CS3/CS4を持ってる場合と、持ってない場合で使い方がちょっと違う
前者のURLは無い場合、後者はある場合で解説されているよん
128: 2009/08/01(土)06:33 ID:d7/CM7yX(1) AAS
>>127
ありがとうございます。
>FlashDevelopは、Flash CS3/CS4を持ってる場合と、持ってない場合で使い方がちょっと違う
これはわかりませんでした。参考になります。

んで、解決しました。
Flex SDK LocationのC:\flex_sdk_3をC;\flex_sdk_3と誤入力してました。
なんてことないイージーミスでしたorz

また何か質問するかもしれません。そのときはよろしくお願いします。
129
(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/04(火)11:21 ID:NE4Ij/QG(1/2) AAS
>>41 のものですが、サンプル集の URL 変更になりました。
よろしかったらまた使ってください。
外部リンク[php]:hikipuro.is-a-geek.org
130
(1): 2009/08/04(火)12:16 ID:d57xYwwQ(1) AAS
>> 129
ありがとう!
参考にします。

ところで、オリゼの画像とか勝手に使って大丈夫なの?
131: ひきプロ ◆HIRO2ZQ2Xo 2009/08/04(火)13:41 ID:NE4Ij/QG(2/2) AAS
>>130
もやしもんの画像は著作権的にまずそうですよねw
ゆくゆく問題になりそうなものは入れ替えようと思います。
132
(2): 2009/08/06(木)00:52 ID:BIlthKR7(1) AAS
条件付コンパイルかぁ・・・何かに使えそうだ
でも、何に使えるのかな
133
(1): 2009/08/06(木)01:17 ID:FbtIO6V/(1) AAS
>>129 条件付コンパイルとか出来たのか・・・ 知らなかった。

>>132 他言語でよくあるのは、例えば例にも出てるデバッグモード時の動作とか。
主にログ出力や、トレース
134
(2): 2009/08/07(金)17:08 ID:vF9qZ0RK(1) AAS
スレチかもしれないけど、FD + Flex SDK だけで作ってるのでとりあえずここに。

AS3 Project with Preloader を使ったプロジェクトの Preloader 内で
複数の外部画像をそれぞれ Loader に読ませて
Main で利用したいと思ってるんだけど、プログレスバーの分母に
外部画像のサイズ合計を使うにはどうしたらいいのかな。
Loader.load(req) する前に調べられるとベスト。

せめて Event.OPEN 時に画像サイズがわかればいいんだけど、
OPEN ハンドラ内で Event.target の LoaderInfo.bytesTotal 見ても 0 になってるし・・・
135
(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/07(金)20:34 ID:kF/vEctb(1) AAS
>>132-133
ぼくもこないだマニュアル見てたら偶然見つけました。
でもあんまり有効な使い道って思い浮かばないですよねw
>>134
ProgressEvent の1回目で取れるかもしれません。
たぶん HTTP の Content-Length パラメータを見てるのかなと。
でも Web サーバの種類とか、場合によっては Content-Length が入らない場合もありそうですね。
もう一歩先に確認する方法として、PHP とかで GET パラメータに
渡されたファイル名を確認してサイズを調べるというような
簡単なスクリプトを書いたりするのも良いかもしれません。
これだと Loader のほかに URLLoader も使わないといけないので若干面倒ですね。
136: 2009/08/07(金)20:45 ID:u2+EPbai(1) AAS
>>134 出来そうで出来ない事の一つのような。
LoaderInfo.bytesTotal は読み込んだサイズだったと思うから、0なのは当たり前だった気がする。
HTTPヘッダでも読めれば行けるような気もするけど、Content-Lengthはイコールでファイルサイズじゃなかった気もする
Socketで接続して実験してみるとか
137
(1): 2009/08/08(土)03:36 ID:Xf8YSrUw(1) AAS
やっぱり多少トリッキーなことをしないと難しそうだね。
ちゃんと作るなら >>135 の通りサーバサイドのプログラムに頼るのが一番信頼できそう。
俺のはちゃんとしてないので、ひとまずロードが完了した画像数を出しておいた。
数が多すぎなければ画像の数だけプログレスバーを出してもいいかも。

ProgressEvent.PROGRESS の時点なら利用できることは確認したけど、
ここから合計プログレスバーを作ると読み込み中に分母が変わっていきそうで微妙かなと。
合計サイズが揃うまで読み込み待機とか器用なことができたらいいけど
ASのイベントモデルをちゃんと理解してないので週末使って調べてみる。
でも close() しか見あたらないので難しそうな予感(他に使い道ないし)
138: 2009/08/08(土)16:37 ID:e1CUMyK1(1) AAS
あいつ生きてたのか
139
(4): 2009/08/09(日)09:01 ID:VHnq37kK(1/4) AAS
質問させてください
以下のように、2つ以上のファイルを使ってオブジェクトを生成する場合、
実行画面に何も表示されません。階層などの問題なのでしょうか?

Main.as
package {
 import flash.display.Sprite;
 import flash.events.Event;

 public class Main extends Sprite {
  public function Main():void {
   var tokei:DigitalClock = new DigitalClock();
  }
 }
}

続く
140
(1): 2009/08/09(日)09:15 ID:VHnq37kK(2/4) AA×

141
(1): 139 2009/08/09(日)09:26 ID:VHnq37kK(3/4) AAS
ちなみに、「DigitalClock.as」の中身は、
「Main.as」の中に組み込めば普通に実行できたので
一部省略しました。
階層の問題でしょうか?
142
(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/09(日)09:58 ID:KDLSuSt/(1) AAS
>>137
ロードした画像数を表示するのが一番作りやすそうな形ですね。
ProgressEvent.PROGRESS でファイルサイズ取れましたかー。
途中でロード処理を一時停止することはきっとできないと思うので、
複数のファイルをロードする時は、ProgressEvent では
容量を割り出してから というわけにはいかなさそうですね。
なにかわかったら教えてくださいっ!
僕も興味あります。
>>139-141
たぶん、>>139 で書かれたコードを、

var tokei:DigitalClock = new DigitalClock();
addChild(tokei);

と 1 行足すと画面に表示されると思います。
Main の画面に addChild しないと画面に出てこないんですよねw
僕も最初詰まりましたw
143
(1): 139 2009/08/09(日)11:15 ID:VHnq37kK(4/4) AAS
>>142
できました!
ありがとうございます!!

具体的には、
「addChild(tokei);」
をちょっと変更して、
「addChild(tokei.getClock());」
としたらできました。もちろんDigitalClock.as でゲッターを用意しました。

Mainに書き込まないといけないんですね、勉強になりました。
144: 139 2009/08/10(月)08:17 ID:B1VXl5B1(1) AAS

145: ひきプロ ◆HIRO2ZQ2Xo 2009/08/11(火)20:43 ID:mz96ONGl(1) AAS
>>143
DigitalClock は Sprite を継承しているので、
addChild(tokei.getClock());
とせずに、
addChild(tokei);
というコードで時計の画像が扱える方がよりスマートな設計になると思います。
tokei.getClock() は、たぶん DigitalClock の内部にもう一つ画面表示要素を作って
それを Main に渡す構造になっていると思うのですが、
その場合、 DigitalClock は Sprite を継承しない設計にすることができますね。
tokei を addChild 、 removeChild するだけで表示したり消したりできる方が
コードが読みやすくなるし、間違いも起こりにくくなると僕は思います。
とここまで書いて、好みの問題な気もしてきましたw
146
(1): 2009/08/14(金)01:11 ID:w4LLHFJe(1/5) AAS
もう解決したが、謎仕様にハメられた・・・

例)
[SWF (width=800, height=600, backgroundColor=0xffffff, frameRate=20)]
public class Main extends Sprite
 public function Main():void
 {
  if (stage) init();
  else addEventListener(Event.ADDED_TO_STAGE, init);
 }
 private function init(e:Event = null):void {
  // ここで stage.stageWidth と stage.stageHeight
  // を取った時・・・ ローカルで直接swfを叩くと 設定値がちゃんと取れる
  // しかし WebServer上に上げて 外部リンク[swf]:hogehoge のようにして実行するとなんと 0 が返る
  // 挙動が変わるとはこれいかに
 }
}
147: 2009/08/14(金)01:14 ID:w4LLHFJe(2/5) AAS
>>146 の解決策

例)
[SWF (width=800, height=600, backgroundColor=0xffffff, frameRate=20)]
public class Main extends Sprite {
 public function Main():void
 {
  if (stage) init();
  else addEventListener(Event.ADDED_TO_STAGE, init);
 }

 private function init(e:Event = null):void {
  removeEventListener(Event.ADDED_TO_STAGE, init);
  addEventListener(Event.ENTER_FRAME, ent);
 }

 private function ent(e:Event = null):void {
  removeEventListener(Event.ENTER_FRAME, ent);
  // EnterFrameを一段カマせば、ブラウザ越しでもローカル実行でも取れる
  // ※サイズはその時のステージのサイズ
 }
}
148: 2009/08/14(金)01:17 ID:w4LLHFJe(3/5) AAS
ちなみに、謎仕様と言うか動きから察するに、win32で言う所の、
WM_PAINT が実行されたタイミングでサイズ決定してるんだろうなぁという感想

stage.stageWidth と stage.width の違いも知らないと多分間違うし、結構罠が多い…
無駄に時間食ってしまった
149: ひきプロ ◆HIRO2ZQ2Xo 2009/08/14(金)14:25 ID:H3Ft1e6v(1/3) AAS
Web ページに配置すると init イベントで stageWidth 取れないんですか。
なぜか 0 になってしまう時があるなーと思ってたんですよねw
詳しい内容載せていただいてありがとうございました。
勉強になります。
150
(1): 2009/08/14(金)21:08 ID:w4LLHFJe(4/5) AAS
あとこういう謎仕様と言うか、Flashの中の動きを想像して予想しないと
一見何でも無いような事すら書けないってのはちょっと苦痛な気もする・・・ 理由わかる?

例1)
var w:int = 200;
var h:int = 50;
var sp:Sprite = addChild(new Sprite()) as Sprite;
sp.graphics.beginGradientFill(GradientType.LINEAR, [0xffffff, 0x000000], [1.0, 1.0], [200, 255]);
sp.graphics.drawRoundRect(0, 0, w, h, 8, 8);
sp.graphics.endFill();

例2)
〜例1と同じ前略〜
var sp:Sprite = addChild(new Sprite()) as Sprite;
sp.width = w;
sp.height = h;
〜例1と同じ後略〜

空の Sprite の width/height を設定するかしないかで描画の内容が変わるって一体・・・
151: 2009/08/14(金)21:15 ID:w4LLHFJe(5/5) AAS
あ、ちなみに誤解の無いように言っておくと、不満色々書いてても
俺根本的にFlash好きだからなww ブツブツ文句言いながら追いかけて楽しんでる
152
(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/14(金)23:21 ID:H3Ft1e6v(2/3) AAS
>>150
この問題はなんで起こるんでしょうねw
ぼくも疑問に思っていました。
width・height への値の代入は、
「描き始める前に領域を確保する」
という効果が出ないようですね。
これは直感と反する動作なので謎の仕様に見えてしまいます。

試しに、図形を描き終わった後から width・height を再設定してみると、
scaleX, scaleY に値を代入したかのように拡大縮小されますね。
「後からサイズを変える」 という効果はあるようです。

trace(sp.scaleX);

を表示してみると、再設定されていることが確認できました。
ということは、最初に width・height に値を代入すると、
scaleX、scaleY が 0 に設定されてしまうことになり、
その後の描画内容が画面に出ないという動作になってしまいます。

以上のことから想像すると、width・height のセッターの動作が、
function set width(value:Number):void {
  this.scaleX = this.width / value;
}
というようになっているのではないかなと。
width の初期値は 0 なので、何か値を掛けたとしても 0 になってしまいます。
1-
あと 449 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.032s