【AS3】FlashDevelop【フリー】 (601レス)
上下前次1-新
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 パラメータに
渡されたファイル名を確認してサイズを調べるというような
簡単なスクリプトを書いたりするのも良いかもしれません。
省1
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();
省4
140(1): 2009/08/09(日)09:15 ID:VHnq37kK(2/4) AAS
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 で書かれたコードを、
省5
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 するだけで表示したり消したりできる方が
省2
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 {
省6
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 {
省9
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)
省6
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 に値を代入したかのように拡大縮小されますね。
「後からサイズを変える」 という効果はあるようです。
省11
153(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/14(金)23:24 ID:H3Ft1e6v(3/3) AAS
最後の行の書き方がおかしかったですね。
0 / value;
というような式だと、結果は常に 0 になるので、
最初に width・height を設定すると、その段階で
scaleX、scaleY が 0 になってしまうと考えられます。
154: 2009/08/15(土)14:53 ID:srGxDtlq(1/4) AAS
>>152-153 ああなるほど。確かにそうかも。・・ってか、こういう風に利用者側が動きを想像しないと
動作の正解が見えないってのはどうなんだろうな・・ww 困るわ、モヤモヤがいつまでも晴れなくて。 色々と
上下前次1-新書関写板覧索設栞歴
あと 447 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.259s*