ActionScript 誰かが物凄い勢いで解答するスレ30
いちおつ
AS3で質問です
ムービークリップにフィルタをかけると、widthプロパティの値がフィルタのぶんを含んだ値になりますよね?
たとえば、本体が64pxの円オブジェクトにぼかし15pxくらいの光彩フィルタとかかけると、160くらいの数値が返ってきます
ここからフィルタの分を除外して、本体の64pxという値を得るのに賢い方法ってないんですかね?
一応、下の感じでいったんフィルタ無効にして、変数に格納してからまた有効にすれば取得自体はできるんだけど、なんかすごく頭の悪いことをやっている気がする今日この頃
var my_filters = this.filters;
this.filters = [];
realWidth = this.width;
realHeight = this.height;
this.filters = my_filters;
AS3,CS4でタイルリスト(TileList)のスクロールで質問です。
SWFはうpしています。
http://www1.axfc.net/uploader/Flash/so/2122 → 「再生する | click here to view.」
MC(mcA)内に内包されたTileListの各タイル(要素?)にMC(mc0〜mc9の10個)をソースとして
設定し、mcAをステージに置いています。 親子構造は下記のようになります。
親側) Stage -- mcA -- TileList -- [各要素(mc0〜mc9)] (子側
これでUpしたSWFのようにスクロールは出来たのですが、どれかのタイルをクリックすると
スクロールが元に戻ってしまいます。
traceで動作確認したところタイルクリックの度に初期化されるようで、mcA で定義している
addEventListener(Event.ADDED, this_newed, false, 0, true); は removeEventListener
したはずですが関数this_newed がクリックで呼び出されます。
案としては verticalScrollPosition で位置を把握し、戻ったスクロール位置を再度設定する
方法を考えましたが、もっと良い方法を探しています。
※というか、何故も初期化?(元に戻る?)
何かアドバイス願います。
5 :
4:2011/12/27(火) 22:32:31.37 ID:W0UWpmkT
(追記です)
UpしたSWFの右上のボタンを押すとmcAに内包されたTileListが表示されます。
ブラウザでの表示手順も修正します
http://www1.axfc.net/uploader/Flash/so/2122 → 「Flash_2122.swf をダウンロードします」のボタンを押す
→ 「再生する | click here to view.」 をクリック
----------------------
ちなみに、昔から使っていたSWFアップローダー
http://swfup.info/upload.php は下のエラーが出て使えないです(Firefox8.0.1使用)
Warning: fputs(): supplied argument is not a valid stream resource in /var/www/domain/swfup.info/upload.php on line 306
>>3 サイズ取得って、当たり判定とか取るの?
とりあえず一番簡単な方法は、表示用のMCとサイズ取得用のMCを宣言すること。
場合によるけど、フィルターをかける場合はBitmapDetaに一旦落としてそいつにかけると軽いよ。
特に、ほとんどフレームが変わらないMCや、大量に同じMCを使う場合に置き換えると効果が高いよ。
書込み元のMCはaddChildしてなくても、BitmapDetaには書き込めるので、表示する必要はなし。
詳しいやり方は、「AS3 プリレンダリング」でググればいい。
>>6 >とりあえず一番簡単な方法は、表示用のMCとサイズ取得用のMCを宣言すること。
さっそくのレス感謝です
なるほど、そのほうがシンプルですね
>場合によるけど、フィルターをかける場合はBitmapDetaに一旦落としてそいつにかけると軽いよ。
忠告どうもです
プリレンは一度試したいと思っていたので、この機会に勉強してみます
8 :
4&5:2011/12/28(水) 08:36:52.18 ID:mF2anYSO
(TileListのスクロールについて)
色々試しましたがやっぱり変な動作をします。
どうやらASファイルを使ってMCを継承作成したオブジェクト内にTileListを
addChildするとダメのようです。 ステージに予め設置したMC内にaddChildしたら
問題なく動作するのですが・・・
とりあえず回避策で対処しました。 ありがとうございました。
9 :
Now_loading...774KB:2011/12/28(水) 08:44:21.71 ID:O/rnH8fA
AS3でCS4のWinXPです。 MovieClipのClass型への変換が分かりません。
まず mc0 = new MovieClip(); として、mc0.name = "aBoxes" と名付けました。
これで var class0:Class = mc0 as Class;
と
var class0:Class = getDefinitionByName(mc0.name) as Class;
2パターンを試しましたが、前者は traceで null になり、後者は
ReferenceError: Error #1065: 変数 aBoxes は定義されていません。
という警告がでました。
どうしたら良いでしょうか?
>>9 なぜ、MovieCripをClassに代入?
(継承元のため)Objectには代入できるけど、これではだめ?
あなたの実装でClassに代入する理由を教えてください。
11 :
9:2011/12/28(水) 17:58:11.77 ID:jSHZmBJI
>>10 どうも。経緯を説明しますと、
>>4-5でTileListの生成を試みた者ですが、一応目的の
形状でタイルが並べられました。
このとき、タイルの要素の元データを dataProvObj = new DataProvider(); で設定するため
var sheetProp:Array = new Array();
sheetProp[0] = {label:"my first-baby", source:R};
sheetProp[1] = {label:"Morning", source:G};
・・・
・・・
sheetProp[9] = {label:"Hello", source:X};
for (var idx:int=0; idx<sheetProp.length; idx++)
dataProvObj.addItem(sheetPropArr[idx]);
}
として表示させました。 ここでsourceの「R」とか「G」はCS4のライブラリ(リンケージの
書き出し名が「R」とか「G」)に由来したもので、これらを他のオブジェクト(MC)に随時変更
できるようにしたく思いました。
※つまり、TileList要素(タイル)の中身をダイナミックに変更したい。
trace(sheetProp[0].source) で調べてみると、[Class R] とか [Class G] だったので
上のように
var class0:Class = mc0 as Class; または
var class0:Class = getDefinitionByName(mc0.name) as Class;
として
sheetProp[0].source = class0;
で代入すれば良いと思ったのですが、Class型に変換できなかったです。
まとめると、「TileListの要素に任意のMCを随時変更して使いたいから型変換したい」ということです。
変換とかしなくても、constractorプロパティを入れてやればいいんじゃねーかな
sheetProp[0].source = mc0.constractorてな具合に
13 :
9&11:2011/12/28(水) 22:25:57.29 ID:UnuOUtn6
>>12 さんきゅうです。なんとなく出来ました。
mc0 = new MovieClip();
// mc0にgraphicsでベタ塗り矩形を描画
sheetProp[0].source = mc0.constractor;
trace(sheetProp[0].source) は以前は null だったのですが、[class MovieClip]
と出ました。 ・・・ ただし、TileListの要素(ベタ塗り矩形が出るはず)は真っ白です。
そこで、
mc0 = new R();//リンケージの書き出し名が「R」とか「G」
sheetProp[0].source = mc0.constractor;
ではTileListの要素に目的の図形が出ました。
どうやら、(ASファイル由来はどうか分かりませんが)ライブラリのリンケージから
呼び出せばOKのようです。
以上、お礼と報告まで。
そりゃMovieClipクラス入れてもねぇ・・・何も出るわけ無いわ
そのRとかGってのは、MovieClipクラスを継承して作られたクラスであって
ただのMovieClipクラスとは別物だし
15 :
Now_loading...774KB:2011/12/29(木) 17:53:44.36 ID:xY81hYht
なんだよ一応って・・・・
またお邪魔しますモバイルAIRアプリをFLEXで作っている者です。
実はあるビューが遷移時やアプリ終了時等に破棄される直前に送られるイベントを探しているのですが、
生成時のものは幾つか見つかるのですが、その破棄される時の物がなかなか見つかりません。
どなたかその様なものがあれば教えてください。
ちなみに自分で見つけたうちの一つdeactivateは画面が切り替わった時だけ、もう一つexitStateは多分ビューが破棄された後に出されているのでしょう。あるビューにそのリスナーを置いても反応が有りません。
18 :
Now_loading...774KB:2012/01/01(日) 13:19:10.26 ID:eTMrIMfJ
すんません。教えてください。
画面にtextinputとlistを設置してtextinputに入力された値に応じて動的にlistの中身を変化させたいのですが
(googleなどで検索する時に途中まで入力すると検索候補が出てくるようなイメージです)
どうやれば実装できるのでしょうか?ヒントだけでもいいいので教えてください。
>>18 文字入力毎に発生するイベントを調べて見たら良いかもしれません。
20 :
Now_loading...774KB:2012/01/06(金) 03:25:09.59 ID:Z1+yebMA
AS3,WinXP-Pro,CS4(Player10.0,AIR1.5)
テキストフィールド(tF0)をUIScrollBarでスクロールしながらここから複数行(12行分)
抽出し、別のテキストフィールド(tF1)に代入していますが、ある特定の文字列に差し
掛かったときスクロールが無効になり、複数行抽出ができなくなって困っています。
※SWFでもAIRでも同じ症状として出ます。
具体的には、tF0が100行くらいあったとき
0行目〜11行抽出 →(スクロール)→ 1行目〜12行目抽出 →(スクロール)
→ 2行目〜13行目抽出 → ・・・ n行目〜n+11行目抽出 ・・・
のとき、tF0の n 行目に path という単語と var という単語が出現すると抽出が出来ず
スクロールも不可になります。
試しに、pathを pat とか pat0 にすると問題なく動作し、var も va とか va0 でOKでした。
抽出は、n行目とn+11行目の文字位置を tF0.getLineOffset(行インデックス) で把握し、
tF1.text = tF0の文字列.substring(開始位置, 終了文字位置);
でしています。
動作が止まった場合、もう一度UIScrollBarを操作するとSWF(AIR)ウインドウの上部の
SWF(AIR)のタイトルの横に (応答なし) というメッセージが出ます。
考えられる原因は何でしょうか?
-------
なお、スクロールイベントは try 〜 catch (errorEvt:Error) {// エラー時の処理 }
で対処するようにしていますが、何も出ません。
※ErrorクラスにはIllegalOperationErrorとか色々ありますが、このtry 〜 catch 用に
適切なものは何かありますか?
それってエラー無く動いてるswfでダイナミックテキストからテキスト入力へ
クリック→ドラッグ選択、コピペしようとしてるって事?
実際に見ないとわからんな 現象が現れる最小限のコードでのswfをどっかにうpってみてよ
var camera:Camera = Camera.getCamera();
var video:Video = new Video(320,240);
var pngEncoder:PNGEncoder = new PNGEncoder();
var bytes:ByteArray = pngEncoder.encode(bmp);
if (camera){省略}
btnCapturer.addEventListener(MouseEvent.CLICK,createStill);
function createStill(eventObject:MouseEvent):void
{var bitmpdt:BitmapData = new BitmapData(320,240);
bitmpdt.draw(video);
var bitmp:Bitmap = new Bitmap(bitmpdt);
bitmp.x = 400;
bitmp.y = 50;
addChild( bitmp );}
var loader:URLLoader = new URLLoader();
var file:FileReference =new FileReference();
file.save("data","xxx.png")
カメラの映像からキャプチャした画像をデスクトップに保存したいのですが、
『未定義である可能性が高いメソッド PNGEncoder の呼び出しです。』
というエラーが出てしまいます。
(上記したasはぐぐって調べたものを張り合わせたものです。)
cs5使用です。大変初歩的で申し訳ありませんが、教えていただけるとありがたいです。
importしなきゃならないやつなんでない?
PNGEncoderはmxパッケージだろ
Flash Lite 3.1 対応の携帯用に
電子辞書みたいな機能を持つswfを作りたいのです
今suzukaで作ったフラッシュに
再生したり停止したりするボタンを付けたところ
PC上ではマウスでクリックしてうまく動いたのに
携帯でタッチしても停止してくれませんでした
どうすればいいんでしょうか?
ボタンにはこういうスクリプトが入っています
マウスでクリックしたらきちんと止まったのに
携帯上でボタンをタッチしても何も起きないですOTL
on (release) {
this.stop();
}
よくわからんな そのケータイってスマホだよね?
スマホならPCと同じようにボタン(インスタンス)クリックで動作すると思うんだけど
27 :
25:2012/01/08(日) 12:08:46.38 ID:+r5EsgFW
28 :
25:2012/01/08(日) 12:17:09.03 ID:+r5EsgFW
今少し状況が分かってきました
上下左右キーでフォーカスを動かしてOKボタンで停止させることは出来ました
ただ画面にタッチすると停止してくれないようですOTL
29 :
25:2012/01/08(日) 12:44:54.01 ID:+r5EsgFW
30 :
25:2012/01/08(日) 13:41:09.46 ID:+r5EsgFW
>>30 ケータイがFlashのタッチに対応してないんじゃない?
タッチ時のonイベント内でtraceさせても何も出ないの?
ダイナミックテキストエリアを画面内に作ってトレースしたい情報を出力して確認してみ
それからどんなボタンインスタンスかわからないけど ボタン内のヒットエリアはちゃんと付けてる?
ヒットエリア無しのテキスト文字のみのボタンだとスマホ側で超反応しづらい
それからsuzukaってのが気になるw
33 :
25:2012/01/08(日) 16:00:05.38 ID:+r5EsgFW
>>30 ああああああああああああぁぁぁぁああああOTL
>>31 「ダイナミックテキストエリアを画面内に作ってトレースしたい情報を出力して確認してみ」
意味が全く分からないです・・・
文字を■にして文字の黒い部分を増やしてやってみましたけど駄目でした
34 :
25:2012/01/08(日) 16:09:29.92 ID:+r5EsgFW
色々と勘違いしてるっぽいな 「通過」ってなんだおw マウスオーバーの事だろ?
ケータイにはマウスオーバーやロールオーバーの機能は無いじゃん
だからオーバー時のコードはケータイでは実行されない
あと基本的な事はハクヒンさんとこで勉強してくれ
ttp://hakuhin.jp/
37 :
25:2012/01/08(日) 22:12:22.54 ID:+r5EsgFW
>>37 もしかしてAdobeFlashじゃない?
おもいっきりsuzuka言ってるじゃん
>>39 すまぬ
suzukaはflaファイルに出力できないの?
41 :
25:2012/01/09(月) 02:33:32.83 ID://yupwrT
>>40 ごめんなさい、昨日初めてフラッシュ作ったばっかりなんで
ソフトの機能もまだよく分かってないです
メニュー見てもfla出力っぽいものはなさそうですし・・・
あるわけねえだろ…
44 :
Now_loading...774KB:2012/01/09(月) 13:10:12.36 ID:X+iaJWwT
サウンド関連の質問でつ(AS3)
サウンドクラスを作成 通常サウンドとループサウンドの2種類があり
ループサウンドのみSoundChannelインスタンス、ボリューム設定メソッドをstaticにしてクラス名でアクセスしてます
ボリューム値も2種類用意しループサウンドはstaticにしてます
ループサウンドを再生中に通常サウンドを再生するとループサウンドの音量が若干下がります
インスタンス、ボリューム値を分けているにもかかわらずなぜ干渉してしまうのか?
もしかして全体の合計音量にMAXがあって自動で調整されてるって事なの?
45 :
Now_loading...774KB:2012/01/09(月) 14:18:07.65 ID:jSHWDpi+
安藤優子、木村太郎は、某プロパイダの社外取締役、かつ、安藤は、フジ社外の人間にもかかわらず、フジテレビジョンのM&Aの最中、フジのホワイトナ
イトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。
46 :
25:2012/01/09(月) 22:39:06.71 ID://yupwrT
>>43 携帯でも
stopのボタンがクリックできます
>>46 FlashLiteのASは1?2?
1ならon(release){であってて
2ならムービークリップ.onMouseDown=function(){
っぽい
48 :
25:2012/01/10(火) 01:52:09.75 ID:KsJABN96
>>47 すいません
意味が良く分からないので調べてきます
有難うございます
49 :
25:2012/01/10(火) 02:10:26.98 ID:KsJABN96
>>47 もしかして
Flash Lite 3.1 はActionScript2っていう仕様で作ればいいっていうことは
以前調べて分かってたんですが
その事でしょうか?
>>49 そう
AS2で作ればいいと思う
FlashProでもFlashLite3.1は初期設定がAS2だから
AS1で作りたいなら設定を変えるかFlashLite1.1にするかしかないと思う
ちょっとどこで聞いたらいいか分かんないので
ここで聞かせてもらいますが、wordpressで
swf上げたんだけど、その中で読み込むimageや
xmlのURLが指定してるのと変わってしまうみたい
なんだけどどなたか分かる人、教えて下さい。
52 :
25:2012/01/10(火) 13:56:47.89 ID:KsJABN96
>>50 なんか、作るんなら
FlashPro買った方がいいのかと悩みますが
新しい携帯買ったらアンドロイドになるだろうし
そうしたらフラッシュじゃなくて他の言語で作りそうな予感・・・
うううううん・・・
53 :
25:2012/01/10(火) 15:01:34.19 ID:KsJABN96
suzuka専用スレを見つけたんでas2行けるのかとか聞いてきます
アンドロイド向けのほうがAIRいいのに
つか静的なモノならHTMLとJavaScriptで作った方が早いんじゃないかと
57 :
25:2012/01/10(火) 21:00:04.33 ID:KsJABN96
>>56 それも考えたんですけど
メーカーの方で
スクリプト設定をOFFにしておかないと個人情報が
どうのこうのという携帯の機種なもので・・・
58 :
25:2012/01/10(火) 23:52:05.48 ID:KsJABN96
すいません。
戻ってきました。
だいぶん色々出来る様にはなってきたんですが
(パスはpです)
http://loda.jp/0tm/?mode=pass&idd=1672 結局、
onMouseDown=function(){
の使い方が全く分かりません
動いているキノコ(インスタンス名ugoku)がスプライトで
そのスプライトに
ugoku.onMouseDown=function(){
stop();
}
というのをくっつけてみたんですけど
「onClipEventまたはonが必要です」
っていうエラーが出てしまって
そもそもクリックされたら動いてるキノコがとまるんじゃないの???
っておもってしまいます
少し解説をお願いできないでしょうか?
paraflaだとタイムラインに
on(press)
途中で書き込んでしまった
エラーメッセージのまんまなんだけど
ムービークリップ(suzukaでいうスプライト)にスクリプトを記述する場合は
onClipEventかonで始まるイベントハンドラを使わないといけない
ttp://www.geocities.jp/para_core/kouza/as.html ugoku.onMouseDown=function()を使ってキノコをクリックしたときに何かさせるなら
(_root)
1フレーム スプライト(ugoku)
2フレーム スクリプト(ここにugoku.onMouseDown=function(){)
3フレーム 停止
これでできんじゃね?
61 :
Now_loading...774KB:2012/01/11(水) 09:50:28.52 ID:DcygMYzI
フルフラッシュサイトを作っている途中で、
ボタン作成中に行き詰ってしまっています。
POLICYボタン BUISINESSボタン、PARTHER、COMPANYなど、4つのボタンに逆再生のロールオーバー、アウトをいれたいのですが、
以下のプログラム文(
>>61)を他のボタン4つにも適応させるにはどうすればよいでしょうか?
全くの初心者ですがお願いします。
62 :
61:2012/01/11(水) 09:53:45.85 ID:DcygMYzI
//再生を停止
but_policy.stop();
// 各変数の初期化と宣言
var nMove:int = 0;
var nNextFrame:int;
// 鉢植えMC に EnterFrame イベントリスナーを登録 実行関数 playalp
but_policy.addEventListener(Event.ENTER_FRAME,plaYalp);
// 関数 plaYalp の定義
function plaYalp(evt:Event):void {
if (nMove != 0) {
var nNextFrame = evt.target.currentFrame+nMove;
if (1<=nNextFrame && nNextFrame<=evt.target.totalFrames) {
evt.target.gotoAndStop(nNextFrame);
} else {
nMove = 0;
}
}
};
63 :
61:2012/01/11(水) 09:55:20.08 ID:DcygMYzI
// policym MC 内の policyボタンに
// RollOver イベントリスナーを登録 実行関数 potRollOver
but_policy.policy.addEventListener(MouseEvent.ROLL_OVER,potRollOver);
// 関数 potRollOver の定義
function potRollOver(evt:Event):void {
nMove = 1;
}
// policy,MCの policyボタンに
// ROLL_OUT イベントリスナーを登録 実行関数 potRollOut
but_policy.policy.addEventListener(MouseEvent.ROLL_OUT,potRollOut);
// 関数 potRollOut の定義
function potRollOut(evt:Event):void {
nMove = -1;
};
64 :
Now_loading...774KB:2012/01/12(木) 01:10:57.43 ID:2viD3KHu
Actionscript2 で上から落下してきたオブジェクトがバウンドして
バウンドの幅がだんだん小さくなって行って止まるというのは
どのようにしたらよいのでしょうか。
横に弾んでいくのではなく、同じ場所で縦にバウンドする動きです。
Flex4.6でアンドロイドのアプリを作っています。
<s:Scroller width="500" height="100">
<s:HGroup >
<s:TextArea></s:TextArea>
<s:TextArea></s:TextArea>
<s:TextArea></s:TextArea>
</s:HGroup>
</s:Scroller>
とMXMLを書いて実行、どれかのTextAreaに文字を書いて
スクロールさせると一瞬文字がスクロールに付いてこない現象が起きます。
直す方法は無いでしょうか?
67 :
51:2012/01/12(木) 01:56:10.40 ID:DrwfIRSA
絶対パスで行けました
68 :
Now_loading...774KB:2012/01/12(木) 14:36:17.08 ID:qUbfsc5v
検索でうまく答えがみつからないので質問させて下さい。ほぼ初心者です。
【使用ソフト】Adobe Flash Pro CS5 / AS2.0
【やりたい事】外部テキストを読み込んで中身を配列に取り込んだ後、htmlを維持したまま表示させたい。
【困っている事】外部テキストを配列に取り込んで順番に表示させる事はできているが、htmlが反映されない。
例)
「一行目
二行目」と表示したいのに
「一行目<br />二行目」と表示されてしまう。
【実際のソースの一部】※
System.useCodepage = true; //文字化け防止
myLV = new LoadVars(); //読み込む器の準備
myLV.load('text.txt'); //外部テキストファイルを読み込む
myLV.onLoad = function () { //外部ファイルを読み込んだら実行
html = new Array(); //配列の準備
html = myLV.html.split(','); //外部テキストの要素を「,」で区切って配列に入れる
text.text = html[0]; //配列の一番目を表示←〓ここでhtmlが効かない〓
}
-------
※内容を順番に表示させる為の処理は長くなるので省略しました
インスタンス名「text」で変数は設定していません。
また、テキストのプロパティで「htmlにレンダリングする」にはチェックを入れてあります。
-------
【試してみた事】
単純に外部テキストを読み込んで、インスタンス名をつけず変数名を指定したテキストエリアではhtmlが反映されました。
動的に表示を変化させるエリアではhtmlを反映させる方法はないのでしょうか?
ようわからんがtextでなくhtmlTextなんじゃないのそれ。
70 :
68:2012/01/12(木) 14:50:22.43 ID:qUbfsc5v
>>69 さん
おっしゃる通りに
text.htmlText = html[0];
にしたところ、問題なく反映されました!
すみません、そんな事も知りませんでした。
ありがとうございます。助かりました!
頑張って完成させます!
71 :
65:2012/01/13(金) 10:31:35.12 ID:teGxBykJ
すいませんAIRスレで聞き直します。
72 :
Now_loading...774KB:2012/01/13(金) 17:55:50.49 ID:z6vu9drW
as3で質問です
ステージに複数のシンボルhogeがあって、以下みたいにまとめて記述したいのですが、エラーになります。
どこがいけないのでしょうか?
for (var i=1; i<=10; i++) {
this["hoge_" + i].addEventListener(MouseEvent.MOUSE_DOWN,function(event:MouseEvent){
this["hoge_" + i].startDrag();
});
}
>>74 hogeの後のアンダーバーを消したら行けた
76 :
Now_loading...774KB:2012/01/13(金) 19:01:42.75 ID:z6vu9drW
>>75 行けねえっすよ…
this["hoge_" + i].startDrag()
のiに値が渡ってないっぽい??
どうしたら…??
>>76 同時にDragはできないんではないの?
MouseOut時にstopDragするとか
ひとつだったらできるんでしょ?
>>77 うーむ
実際はstopDragも書いてるのだが…
hoge_1〜10にドラッグアンドドロップのアクションをまとめて付けたいだけなのです
>>78 マウスオーバーしたやつにStartDragつければ、
全部書く必要なくない
これでいけるよたぶん
for (var i=1; i<=10; i++) {
this["hoge_" + i].addEventListener(MouseEvent.MOUSE_DOWN,function(event:MouseEvent){
event.target.startDrag();
});
}
こうやわ
for (var i=1; i<=10; i++) {
this["hoge_" + i].addEventListener(MouseEvent.MOUSE_DOWN,xMouseDown);
}
function xMouseDown(event:MouseEvent):void{
event.target.startDrag();
}
83 :
20:2012/01/15(日) 00:19:49.24 ID:WlMHhbaj
>>21 レス遅くなりすみません。原因が分かりました。
「特定の文字列に差し掛かったときスクロールが無効になり」と書きましたが、
文字列の中身には関係無く、その位置が代入先のテキストフィールド(tF1)の文字
インデックス0のときに生じるトラブルでした。
これは、各行頭に意図的に半角スペースを入れて誤魔化すことで回避出来ました。
※抽出アルゴリズム上で細工しても解決しなかったので。
つまり
abc012// エラー
efg345// エラー
つまり
abc012// OK
efg345// OK
となりました。
84 :
Now_loading...774KB:2012/01/15(日) 00:47:08.00 ID:ptj4quGH
AS3,Player10.0,CS4です。
テキストフィールド(txt)は tf:TextFormat = new TextFormat(); としたとき
tf.url と tf.target と txt.setTextFormat(tf, 始点, 終点) で文字列内の指定部分に
ハイパーリンクを設定出来て、指定部分ではマウスカーソルが自動的に指マーク
になりますが、マウスカーソルの変化を感知するにはどうすれば良いでしょうか?
例えばテキストフィールド(txt)に
東京電力[福島第一]原子力発電所の調査委員会
を仮定し、[福島第一]にリンクが設定してあった時にマウスカーソルが縦棒線(I ビーム
カーソル)→指マークになったことを感知したいです。
マウスの位置で文字列位置をgetCharIndexAtPoint()で把握し、そこから[福島第一]が
含まれるかどうかという方法を考えましたが個々の文字毎にEvent.ENTER_FRAME処理
をしないといけないので処理が重くなりそうなので別案を探しています。
AS3 CS3です
1フレーム目にはstop();と記述してあり、MCが一つ配置されている
このMCを最後のフレームまで再生し終わった後、メインタイムラインの2フレーム目に移動するにはMCの最後のフレームに何と書けばいいんでしょうか?
parentを頭につけるだけでは駄目でした
超初歩の質問ですみません
MCの最終フレームにparent.gotoAndPlay(2)は?
>>86 こんな時間にスレタイ通りに早い回答ありがとうございます!
しかしparentでは1061のエラーが出て駄目でした…
>>87 parentが、DispalyObjectContainerになってるとか言われてるんでしょ?
その場合は、MovieClipにしてやればOK
MovieClip(parent).gotoAndStop(2)
90 :
Now_loading...774KB:2012/01/15(日) 05:38:04.28 ID:7i+f/Epu
AS3でCS5を使用しています
シンボルにマウスオーバーすると音が流れ、マウスアウトすると音が消えるようにするにはどうしたらいいのでしょうか?
最初はボタンでやろうかと思ったのですが
音が流れたままになってしまったのでアクションスクリプトにすることにしたのですが、よく分からず…教えてください
>>90 addEventListener マウスイベント MouseEvent
でググる。
シンボルが子を持つ場合には、MOUSE_OVERとROLL_OVERの違いに注意。
92 :
84:2012/01/15(日) 06:50:45.22 ID:ptj4quGH
(自己レス)
マウスカーソル変化の感知自体は出来なかったのですが、txt.getTextFormat(A, B)
でTextFormat設定の有無を感知して処理することが出来ました。
またEvent.ENTER_FRAMEでなく、MouseEvent.MOUSE_MOVEを使えば軽くなりそうです。
93 :
90:2012/01/15(日) 10:16:07.18 ID:7i+f/Epu
>>91 有り難うございます。
マウスオーバーして音がでるようにはなったのですがアウトした時に停止できません
var sound_obj : Sound = new soundmusic( );
btn1.addEventListener(MouseEvent.MOUSE_OVER, onOver);
btn1.addEventListener(MouseEvent.MOUSE_OVER, onOut);
function onOver (e:MouseEvent):void {
var sound_obj : Sound = new soundmusic( );
sound_obj.play();
}
function onOut (e:MouseEvent):void {
var sound_obj : Sound = new soundmusic();
var channel : SoundChannel = sound_obj.play();
channel.stop();
}
となっているのですがどこを直したらできるでしょうか?
SoundChannelをメンバ変数にしないとだめかも んでSoundChannelで再生、停止をする
// サウンドを再生
var channel : SoundChannel = sound_obj.play(0,3);
// サウンドを停止
channel.stop();
詳しくはハクヒンさんとこ見るんだ
ていうかどっちの関数もMOUSE_OVERにaddしてるっていう
97 :
90:2012/01/15(日) 12:37:43.03 ID:7i+f/Epu
>>94-96 ありがとうございます。
何度も何度もすみません、有り難うございます。
ハクヒンさんの見ても同じ文になってしまい…メンバ変数というのは
var sound_obj : Sound = new soundmusic();
var channel : SoundChannel = sound_obj.play();
channel.stop();
ではできていないのでしょうか?
sound_obj.play()の中に入る0,3は開始時間と繰り返す回数ですよね。
あとMOUSE_OVERが二つあるのは直しました。
98 :
Now_loading...774KB:2012/01/15(日) 13:47:15.51 ID:SlJtb9Gt
>>97 var channel : SoundChannel
関数の中で変数を宣言してるのでchannel変数はローカル変数になり
スコープ{}の外からアクセスできない
onOverで再生してonOutで停止しようと思ったら
どちらからでもアクセス可能な場所にchannel変数を用意する必要がある
addEventListener(MouseEvent.MOUSE_OVER, onOver);
addEventListener(MouseEvent.MOUSE_OUT, onOut);
var channel : SoundChannel = null;
function onOver (e:MouseEvent):void {
var sound_obj : Sound = new soundmusic( );
channel = sound_obj.play();
}
function onOut (e:MouseEvent):void {
if(channel){
channel.stop();
channel = null;
}
}
99 :
90:2012/01/15(日) 15:35:48.05 ID:7i+f/Epu
>>98 ありがとうございました!できました
前の書き方だとOnOutしかアクセスできなくて駄目だった…ということでしょうか?
アクションスクリプト勉強します
本当に有り難うございました
SoundChannelはSound.play()するたびに個々の音に対応したものが作られるが
>>93ではonOutの中で新しくSoundChannelを作っていて、そっちを操作してて
onOverの中で再生を始めた音の操作ができていなかった
>>88 ありがとうございました!いけました
もうひとつ質問があります
同じくAS、CS3
ステージ上には10個のボタンが配置されており、それぞれ対応する10個のMCがremoveChildで非表示になっている
「1」のボタンを押すと「1」のMCがaddChildされ、最後のフレームまで再生されてそこでstop
その状態で例えば「5」のボタンを押すと「1」のMCがremoveChildされ、「5」のMCがaddChildされ、最後のフレームまで再生され、そこでstop
これの「5」のボタンを押したとき、既にステージ上に存在する「1」のMCをremoveChildさせる方法がわかりません
ステージに表示されてるMCの数を取得し、1以上ならremoveChildさせる変数を
作ればいいのかなと試みたのですが、上手く動きません
AS1.0のサウンドオブジェクトの再生について質問です
var sound_obj = new Sound();
sound_obj.attachSound("bgm");
sound_obj.start(1.2); //1.2秒後から再生
このstart()メソッドの開始時間(1.2)はPCの処理能力によってズレたりしますか?
>>101 削除対象を参照するMCを var sakujyoMC:MovieClip とかで定義して
予め sakujyoMC = addChildされたMC と記録しておいて、他のボタンが押された時に
removeChild(sakujyoMC) とすれば?
でも sakujyoMC = null にしないと本当に削除されたことにはならないよ。
>>102 AS1.0でのバッファ読み込みは分からんが、対象音源の大きさも関係すると思う。
※AS3ならバッファ時間を指定できる。
104 :
Now_loading...774KB:2012/01/16(月) 01:19:58.57 ID:Tk7Ev53z
チェックボックス(fl.controls.CheckBox)で選択状態を再現出来なく困ってます。
環境はFlashCS4,XP,AS3です。
MC内に4つのチェックボックス(chBox0〜chBox3)があり、それぞれは操作後に選択情報を
オブジェクト(propSet)に記録します。 そして親のMCを一旦消して再度生成してステージに
置いた時に下記の記述で再現しようとしました。
chBox0.selected = propSet.linkF;// propSet.〜は trueまたはfalse
chBox1.selected = propSet.commF;
chBox2.selected = propSet.kasenF;
chBox3.selected = propSet.boldF;
しかし困ったことに、各chBoxのselectedは2つ以上true設定していると1個しか再現できません。
(※まるでラジオボタン状態)
また、chBox0.selected に至っては true 設定していた場合は false で再現され、『マウスでなぞると』
本来のtrue(選択状態)になります。
つまり、●を選択状態とすると ○○●○ か ○●○○ しか再現出来ず、左端のchBox0は
(MouseEvent.ROLL_OVERみたいに)マウスを上に乗せた時に記録した情報の通りに
チェックマークが入ります。
問題点は @複数のチェック状態の再現 AchBox0.selectedとマウスオーバーとの関係
です。 すいませんがアドバイス願います。
その説明じゃイマイチわからんな
>そして親のMCを一旦消して
消したってどういう風に?
フレームを移動させて静的配置のを消したのか 単にremoveChildでリストから削除したのか
わからんけど最初の操作時のインスタンス変数が生きていて再度の生成時に悪さしてるような感じがした
>>103 ありがとうございます
恥ずかしながら超初心者で
sakujyoMC = addChildされたMC
の部分の書き方が分かりません
色々書いてみても強制変換型に失敗しました、などとエラーが出てしまいます
>>105 レス有難うございます。
「インスタンス変数が生きていて」がヒントになり、解決できました。
問題点は、CS4のオーサリングで予め設置しておくとダメみたいで、chBox0〜chBox3は
親が生成される度に
var chBoxN:CheckBox = new CheckBox();
// X,Yの位置指定
addChild(chBoxN);
のようにスクリプトで設置したらOKでした。 ・・・ newするのがポイントかも。
なお、親のMCを消す際にはremoveChildを使っていますが MC = null にしていても不十分なようで
CheckBoxは上記のように毎回初期化する必要があるみたいです。
>>106 型変換覚えないとこの先辛いだろw ちなみにキャストよりもas演算子での型変換の方が速いそうだ
var mc:MovieClip = new MovieClip();
mc.name = "abcdefg";
var obj:DisplayObject = mc as DisplayObject;//as演算子による型変換
var obj:DisplayObject = DisplayObject( mc );//キャストによる型変換
//var obj:DisplayObject = new DisplayObject();//エラー DisplayObjectはコンストラクタが無いのでインスタンス化できない
//obj = mc as DisplayObject;
trace("name:"+obj.name );
var sp:Sprite = new Sprite();//コンストラクタがあるクラスならインスタンス化後の型変換可能
sp = mc as Sprite;
trace("name:"+sp.name );
型変換できるかどうかはクラスの継承関係による MovieClipの親の親の親の親にDisplayObjectが
あるので型変換可能 継承してないクラスへの方変換は不可能
MovieClip→Sprite→DisplayObjectContainer→InteractiveObject→DisplayObject→EventDispatcher→Object
>>106 そもそも、型が違うって状況を理解してないんじゃ?
状況を理解してないから、同じ問題に出くわしても型変換という発想にならない
>>109が親切に書いてくれているけど、それでもよく判らないなら
いったんクラスの概要について、基本的な解説を読んどいたほうがいいよ
継承構造を知らないと、この先何度も同じようなとこで躓くことになる
>>110 横レスで補足:
継承ってのは進化というかバージョンアップと解釈できる。つまり、
旧ザグ→量産ザグ→湿地帯用ザク って感じ。
型変換にも関わるけど、同じジオンでもリックドムの動力部分をそのままアッガイに
転用しようとするとエラーになるのと同じ。 変換が必要。
下手な例えほど理解を妨げるものは無いな
asの方が遅えってどっかで読んだ気がしたんだけどどっちだっけ…
114 :
Now_loading...774KB:2012/01/17(火) 15:04:04.18 ID:jhCompjR
FlashCS5,AS3,AIR2.0ですが、パブリッシュすると下のメッセージが出て困ってます。
http://uproda11.2ch-library.com/331375krZ/11331375.png AIRの中身は3つのコンポーネント(ボタン,テキストエリア,テキストインプット)で構成され、
ローカルのHTMLファイルを読み込んでテキスト表示し、これを別名で保存するというものです。
※ASファイルは読み込み&開き、及び保存用の2つだけです。
CS5でのプレビューは問題なく出来ますが、AIRとしてパブリッシュしようとすると上のようになります。
試しにテキストエリアを単なるテキストフィールドにしてみても同じでした。
XMLのAIR アプリケーション記述ファイルに間違いがあるという意味のメッセージですが、このXML
自体はCS5から自動生成されるのでどうしようもありません。
考えられる原因は何でしょうか?
115 :
114:2012/01/17(火) 15:19:56.67 ID:jhCompjR
(自己レス)
すいません。(確定ではないのですが)原因が推測出来ました。
ファイル名(AIR名)の先頭に半角の [ を付けていた為だと思われます。
日本語と半角(2バイト+1バイト)文字の混在自体はOKですが、先頭の半角は
ダメのようです。
>>103 ありがとうございます
AS3の勉強してみます
AS3でxmlから読み込んだスライドショーを作っています。cs5winxp
画像をすべて読み込んで表示したい画像をalphaで調整しています。
(ボタンを作成しボタンをクリックすると対応する画像を表示することはできました。)
あとはタイマーで画像を自動的に変えたいのですがその部分がうまくいきません。エラーは出ないけど動かない状況です。
はしょってますがソースは
var selectNowPage:Number = 0; // 現在表示されているページを格納する変数
//スライドショーのために用意した変数
var nn:int = 1;
//関数「moveA」を定義
function moveA(e):void {
if( nn == selectNowPage ){
//対応する画像を表示、それ以外を非表示 imageObject_mc.getChildByName("img"+nn).alpha = 1;
selectNowPage = nn;
}else{
imageObject_mc.getChildByName("img"+nn).alpha = 0;
}
//(ここでトレースするとnnの値は表示されます)
//もしnnが写真の総枚数より少ない場合nnに1を加算
//写真の総枚数であれば1にする
nn = (nn < totalCount) ? nn+1 : 1;
}
var tmerA:Timer = new Timer(2000,0);
tmerA.addEventListener(TimerEvent.TIMER, moveA);
//タイマースタート
tmerA.start();
です。どこがおかしいですか。
>var selectNowPage:Number = 0;
これで、
>var nn:int = 1;
>nn = (nn < totalCount) ? nn+1 : 1;
これでは、(nn == selectNowPage)がtrueになることはないんじゃないか?
119 :
117:2012/01/17(火) 23:11:51.44 ID:0gMwQPqH
>118
すみませんはしょってしまいました。
>var selectNowPage:Number = 0;
と
>var nn:int = 1;
の間にXMLから画像を読み込んで表示する記述があり、はじめに表示した画像(つまりvar selectNowPage:Number = 1;)になっていました。
ややこしくして申し訳ありません。
120 :
117:2012/01/17(火) 23:16:19.46 ID:0gMwQPqH
var selectNowPage:Number = 1; ではなく
selectNowPage = 1;
です。さらに書き間違えてすみません。
なるほどね・・・
動作を予想すると、一回目にifの中に入った後にnnは2になるけどselectNowPageは1のままで
次にif文に入るのはnnが一周した時だな
表示したいページをalpha=1に、それ以外をalpha=0にしたいなら、
ループで回してやらないとダメなんじゃね?
122 :
117:2012/01/17(火) 23:53:12.33 ID:kHhiCCjy
ありがとうございます。
ループでやってみます。
AS3・CS3winXP??
画面にボタンが3つ、押すとそれぞれ別の外部swfファイルを読み込ませたいです??
読み込ませたい場所に空のMC、emptyを配置しておき??
var??loader_obj:Loader??=??new??Loader()??;??
empty.addChild(loader_obj);??
btn1.addEventListener(MouseEvent.CLICK,??function(event){??
var??url:URLRequest??=??new??URLRequest("1.swf");??
loader_obj.load(url);??
});??
btn2.addEventListener(MouseEvent.CLICK,??function(event){??
var??url:URLRequest??=??new??URLRequest("2.swf");??
loader_obj.load(url);??
});??
btn3.addEventListener(MouseEvent.CLICK,??function(event){??
var??url:URLRequest??=??new??URLRequest("3.swf");??
loader_obj.load(url);??
});??
このスクリプトだと「定義urlにコンフリクトが存在します」というエラーが出てしまいます??
どうすれば解決できるのでしょうか…
124 :
123:2012/01/19(木) 01:54:15.09 ID:vminT5AC
何だか半角スペースが妙な感じに変換されてしまいました…
勿論元のスクリプトには・はついてないです
あともう1つ、読み込んだMCがなぜかレイヤーの一番下で再生されてしまいます
emptyを一番上のレイヤーに置いてみても変わりません
何が悪いのでしょうか
>>124 通常のWebブラウザから書き込んでるの? 2ch専用ブラウザ(無料)を使ったら?
あと毎回urlを宣言するんじゃなくて。
var loader_obj:Loader = new Loader();
empty.addChild(loader_obj);
// n番目の場合 ボタンがStageにあるとき
this["btn"+n.toString()].addEventListener(MouseEvent.CLICK,
function(event){
loader_obj.load(new URLRequest(n.toString()+".swf"));
}
);
では? これなら同じ様なスクリプトが1個で済む あと、レイヤーの一番下になる原因は推測できん。
>>123 いい加減な酔っ払いだけど適当に答えてもいいのかな
暇だったからコピペして「・」消してemptyっていうインスタンス名のmcとbtn1〜4作って
作業フォルダに適当なswf置いてそれをURLRequestで指定してやってみたら普通に動いたよ
ASの記述他、一通り見直すしかないんじゃない?
ちなみにコンフリクトが存在しますっていうのはこういうのもあるみたい↓
http://www.nanlow.com/blog/archives/2009/01/140124.php ただ、蛇足になるけどこの記述だけだとロードしたswfをremoveやunloadする記述がない
ボタンを押せば押した数だけ同じ動画や画像がloadされて重なって表示される事になる
音声付の動画ならわかりやすいんだけど、音も重なっていくメモリもガンガン食う
その都度、loader_obj.の中身を空にしてからloadしたほうがいいように思う
一番下で再生されるって言うのも言ってる事がよくわからないが
そういう風にすればそういう事もなくなるんじゃない?かな
127 :
123:2012/01/19(木) 06:55:14.00 ID:eTox4xg+
ありがとうございます
CS5.5で同じファイルをひらいたらエラーは出ませんでした
レイヤーの一番下に配置される問題も解決できたのですが今度は別の問題が…
swfファイルの座標指定が効かずとんでもない場所に表示されてしまいます
この場合などんな原因が考えられるでしょうか?
空のムービークリップの位置を動かしても関係ありません
>>127 結局、ASはなにも変更してないってこと?
エラーは、「同じ名前の変数を複数つくるな!」って意味
少なくとも、それぞれvar url、var url2、var url3とかにすれば
エラーも出ないし、問題なく動作する
まずはそこをクリアするべき
この先を考えれば、
>>125や
>>126のアドバイスに従って、書き換えたほうがいい
129 :
Now_loading...774KB:2012/01/19(木) 21:11:51.40 ID:QOnzQ8HN
AS3,XP,AIR2.0
MC(mc0)内部のLoader(loaderObj)にSWF(タイムラインの単純ムービー)を読み込んで表示
させていますが、この再生を停止・再開する方法が分かりません。
※SparkプロジェクトのForcibleLoaderを使ってPlayer8以前のSWFも読み込めるようにしています。
var mc0:MovieClip = 対象オブジェクト as MovieClip; でキャストして出来たmc0でPlayer8
以前のSWFでは trace(mc0.loaderObj.content)は [object AVM1Movie] と表示されswf本体に
アクセスできるのですが、mc0.loaderObj.content.stop() はエラーになります(下記)
Player8以前のSWFでは
Error #1069: Property stop not found on flash.display.AVM1Movie and there is no default value.
Player9以降(AS3)のSWFでは
Error #1009: Cannot access a property or method of a null object reference.
どうしたものでしょうか?
テキトーなレスで申し訳ないが
var mc0:MovieClip = 対象オブジェクト.content as MovieClip;
mc0.stop();
でもだめ?
>>130 レス有難うございます。
「対象オブジェクト,対象オブジェクト.content」はtraceすると、[object Loader], [object AVM1Movie]
となって間違いは無いようですが、as MovieClipするとnullになってしまいます。
※AVM1Movie型を持っているが、キャストするとnullになる。
だただらと長かったプログラムを
for文使ってすっきりさせてパブリッシュ
出来上がったファイルは元より容量が増えていた
そんなもんなのだろうか
>>132 よくあるな
モバイルFlashの時はそれで困ってたわ
>>131 自分の環境では、
>>130の方法で動作している
キャストするタイミングが違うとかでないなら、そちら固有の問題
(たとえば、ForcibleLoaderなど)に原因があるのだと思う
136 :
129&131:2012/01/20(金) 08:49:58.91 ID:pWZx6SRu
>>134-135 レスさんきゅう。 対象オブジェクト.content as MovieClip; はやっぱりnullです。
しかし更に検証する、となんと実はForcibleLoaderは適用されていなくて(!)、 実際に使うと
SecurityError: Error #3015 が発生し、
Loader.loadBytes() is not permitted to load content with executable code.
at flash.display::Loader/_loadBytes()
が出ます。
う〜ん分からん。
いよお ウチでもForcibleLoader使って試してみた これは元々libsparkさんトコのじゃねーか
勝手にパッケージ簡略化してはいかんw(参照先のやつ)
ウチでは問題なくMX時代のクソ古いSWFをMovieClipに変換できて stop() gotoAndStop() で制御できたお
同じようにAirでセキュリティエラーが出てその記事の修正当てたら直った
ウチの環境はCS5.5 AS3 通常パブリッシュはFlash Player10.2 AirはAIR2.6だ
まずは無改造でそこのURL
>>134のサンプル通りにやってみ
出来ないなら…もうわからんw
>>133 やっぱりあるんだ、やる気なくすなぁ
forじゃなくてwhileとかを使った方がいいのかな
140 :
Now_loading...774KB:2012/01/21(土) 01:27:39.90 ID:RDkx9xL3
環境:AS3,CS4,AIR1.5
凄く単純なところでつまづいています。
dataTというテキストフィールド内の文字列全部をマウスイベントでのsetSelectionで
選択状態にしたいのですが何も選択されません。
private function _onClick(e:MouseEvent) {
trace("長さ= "+dataT.length);
dataT.setSelection(0, dataT.length);
}
traceはちゃんと文字列長を示すので、これで上手くイクはずなのですが・・・
文字列は優に30個を越えているので試験的にdataT.setSelection(0, 30); としても
何も選択されないという不思議な症状です。
明示的にdataT.selectable = true; にしてもダメでした。
このような経験はありますか?
>>139 ループ系は容量増えやすいからあまり変わらないと思う
AS3です
MP3の音楽の再生を任意の位置で停止して、その停止した時の音を鳴らし続けたいのですが
方法を知ってたら教えてください。よろしくお願いします
paraflaで使える文字のサイズが小さくても読みやすいフォントってありますか?
アンチエイリアスがかからないデバイスフォントがドンピシャなんですけど
環境によって使われるフォントが変わる(=デザインが崩れる)と聞いたので・・・
ビットマップフォントって使えないですよね?
144 :
143:2012/01/21(土) 14:22:38.47 ID:z+03vdra
すみません誤爆しました
>>142 > その停止した時の音
この部分の意味と、実際に出来ることをもっと具体的に。
実際は、停止した時点で音はないと思うので
おそらくは、停止した瞬間から、そのちょっと前までという短い間の音楽を
ループさせたいということではないかと推測するのだが、どうだろうか?
>>145 レスありがとう。その通りです
具体的に言うと、「あいうえお」という曲があって「う」の時に停止したらずっと「うーーーー」と音が出て欲しいです
今、音を止めた時のpositionから1フレームだけの再生をループさせてみたのですが
うぇうぇうぇうぇ、という感じになってしまって出来なかったです
>>142 おもいつきだけどフレームレートを変えてみたらどうでしょうか。
actionscript 2.0を使用しています。
test=Array["mc_1","mc_2","mc_3"];
↑このような配列があります。
配列の中に納めたムービークリップ名を抜き出して、
使いたいと考えています。
//現在作成中のサンプル
test[1].onRelease = function() {
trace("test");
}
↑このままでは、何も反応が起こらない状態です。
どのような記述を行えば良いでしょうか?
おすすめの無料効果音素材サイトはありますか?
欲しいのは
コントでスリッパで「スパン!」とぶん殴る効果音
(みなさまのおかげですでチェッカーズの歌歌って殴るあの音)
とか
>>149 解決しました!ありがとうございます。
Flash板は5年生の先輩から教えてもらったんですが、
こんな物知りなFlash使いの人達がいる掲示板があったのは初めて知りました。
今後も利用させていただきます。
ありがとうございました!
配列アクセス演算子って何回回答したかね。
まあググれるワードじゃないから仕方ない
AS3でちょっとした疑問なんだけど
親Sprite
┣MovieClip
┣Sprite
┣・・・
こういうかんじでオブジェクトをaddChildしてる時、
親Spriteだけremoveしちゃえば、子オブジェクトは全部解放されるの?
それとも子オブジェクトそれぞれremoveしないと解放されない?
解放というのがガベージコレクションという意味ならどちらも表示リスト外れようが他に参照持たれてたらされない
他に参照持たれてなければ親がremoveChildされた時点で子もGC対象になる
>>142 簡単なやり方だと、1つMovieClip作ってその中に、サウンドをストリーミング配置して、切りたい音のポイントごとにラベルで切るのとフラグ用に変数立てて、サウンド停止時に flag=true;みたいにする
んで切ったラベルの最後に if(flag)this.gotoAndPlay(“う“); みたいにすればいけると思う
157 :
Now_loading...774KB:2012/01/23(月) 08:38:48.65 ID:F9CY73VL
一つのアプリケーション内で複数のstageを持つことってできますか?
stage上x-y平面で動かしたオブジェクトの座標を取得して
そのオブジェクトの動作を3D表示できるようにしたいです。
3Dライブラリとしてpapervision3Dを利用しようと思っていますが、
3D表示用のstageを確保しなければならないのではと思い上記の質問しました。
>>154 ガベージコレクションでなくその場で即刻解放 というわけにはいかないか
もう一つ質問だけど
mcとかObjectはdelete使えないってのは知ってるが
delete mcとかやってもエラー出ないんだけど、これは特になにも処理されてない ってことでいいのかな
>>157 Stageは1個だけだい >3D表示用のstage ってのはDisplayObjectを継承した描画用クラスなら何でも可じゃないかな
たぶんpapervision3Dで用意されてる
>>158 deleteは参照切るだけ delete mc;実行後に参照するとnullエラーが出る
すまん deleteで削除できるのは「動的に定義されたプロパティだけ」だそうだ
実行後に参照するとnullではなくてundefainedが入ってた
普通はインスタンスだろうが固定プロパティだろうがnull入れればおkなんだ
deleteは単にMX時代からの遺物だね
>その場で即刻解放
しないね
>>160 なるほどサンクス
deleteでエラー出なくて、null入れるとエラー出るといったんだけど、なんだか
MC内で delete thisと入れた場合はエラー出ず
親Sprite上で delete mcとやるとエラーが出る
MC内で this=nullとやるとエラー出て
親Sprite上でmc=nullとやるとエラー出ない
という感じになった。
わかりそうでよくわからんが、この辺は適当にやるよ。
上記の現象はMCはダイナミッククラスってのが関係してんじゃね
下記のは自分をnullにはできないってことで
基本的に参照切るならnullを使う
即時削除(明示的なGC)はFPでは基本的にはできない(デバッグプレイヤーなら可、裏技あり)
AIRなら出来たかな
ただしBitmapDataのみ即時解放ができる
163 :
142:2012/01/23(月) 18:57:55.37 ID:kekHgWc7
>>147>>156 ありがとう。やってみたのですが、どうも「プツ」っという音が入ったりして上手くいかなかったです
なので諦めました。ごめん
早期に諦めるというのも一つのテクニックだな。
166 :
Now_loading...774KB:2012/01/24(火) 00:32:00.89 ID:t+zu2/RW
spriteのrotationXorYorZを変化させると
spriteのクオリティが下がってすこしぼやけた感じになってしまうのですが
これは仕方がないのでしょうか
>>166 それはクオリティが下がってるんじゃなくてベクタからラスタに変換されてるの。
最初から大きいベクタを用意して操作すれば、ある程度は軽減される。
>>159 ありがとうございます!3D表示できました。
追加質問なのですが、
>>157の状態で各オブジェクト視点のカメラ設定ってできますか?
169 :
Now_loading...774KB:2012/01/24(火) 14:03:20.55 ID:JFNBQGyk
CS4(AS3,Player10.0) WinXP
extends MovieClip でMC化したCheckBox(チェックボックス)をメインのタイムラインの
2フレ目で出したいのですが下記エラーが出てしまいます。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at fl.controls::CheckBox/drawLayout()
at fl.controls::LabelButton/draw()
at fl.core::UIComponent/callLaterDispatcher()
流れとしては、1フレ目で外部SWFを5秒間実行した後に、2フレ目でフレームアクションに
var chBox:MovieClip = new CheckBox_01(パラメーター);
addChild(chBox);
と書いています。 クラスCheckBox_01の中身を抜粋すると
var chBox:CheckBox = new CheckBox();
public function CheckBox_01(引数) {
// 引数をパラメーターとして処理
chBox.label = "選択・非選択";
chBox.addEventListener(Event.CHANGE, showData);
addChild(chBox);// これを無効化するとエラーは出ませんが・・・ (泣)
}
private function showData(event:Event):void {
// 選択時の処理
}
単純にCheckBoxをステージにaddChildするのとほぼ近い記述なのですがエラーがでます。
どうしたものでしょうか?
できないと3Dの意味ないだろ オブジェクトの位置と見たい方向をカメラにブッ込めば可能のはず
papervision3Dのヘルプ見れ 日本語のがあったはず
>>169 とりあえずデバッグモードで走らせてエラー出た行番号のコードを確認
変数が複数あるなら「デバッグパネルの変数」のとこ見てnullの変数を確認
なぜnullになるのかわからなかったらもう1回質問してくれ
172 :
169:2012/01/24(火) 20:29:22.65 ID:aJ0wywHx
>>171 レス有難うございます。 原因が分かりそうです。
通常、CS4では使用するコンポーネントを一旦ステージに置いてライブラリ化(ライブラリウインドウ内
に表示)して使用するのですが、このライブラリ化したものを一旦削除して再度ライブラリ化するとOK
でしてた(つまり更新しました)。
CS4をメインで使っていますが、このところCS5も併用していたので、もしかしたらですがCS5の
コンポーネントを何らかの形で(意図せずコピペしたりして)利用していたのが原因かも知れません。
(不適切なfl.controls.ComboBoxを使っていた??)
173 :
Now_loading...774KB:2012/01/24(火) 23:19:17.67 ID:8KydtSY4
環境)WinXP,AIR1.5,CS4
特にAIRとかCSシリーズに限定した話ではないのですが、EventDispatcherを継承した
クラスをインスタンス化して内部の記述が実行されたことを感知するEventクラスの
パブリック定数には何がありますか?
つまり、public class Test01 extends EventDispatcher として、このコンストラクタが実行
されたとします。 ここで予めコンストラクタ中に適切なイベント Event.XXYY を考慮して
addEventListener(Event.XXYY, doneFunc); を含めておいて、リスナー関数
function doneFunc(evt:Event):void {
try {
// 処理内容
trace("実行されますた");
removeEventListener(Event.XXYY, doneFunc,);
} catch (errorEvt:Error) {
trace(errorEvt.message);
}
}
によりEventDispatcherを継承したクラスTest01の実行終了を他のインスタンスに通知したいです。
※ここで求める処理はXMLを読み込んで解析することです。
試しに、Event.XXYYをEvent.ACTIVATE,Event.COMPLETE にしましたがリスナー関数は実行
されませんでした。
ああもしかして カスタムイベントクラスのコンストラクタの実行時で反応が無いって事かな?
dispatchEventはコンストラクタじゃイベントを送信しないぽい カスタムイベントクラス内の何かのメソッドで
条件を満たしたら以下を実行で インスタンス.addEventListener(Event.XXYY, doneFunc);が反応するお
dispatchEvent( new Event( Test01.XXYY ) );//イベントをイベントフローに送出
ああごめん インスタンス側の記述はこうだな
var e:Test01 = new Test01();
e.addEventListener( Test01.XXYY, doneFunc );
AS3で質問。
●class Super
┗public var num
●class Sub extends Super
●Sprite
┗var sub = new Sub();
とやった時、sub.numと参照できないんだが・・・
Subクラスの中にpublic var n = super.numとかやれば
sub.nって感じで参照できるっぽいが、なんか気持ち悪い。
sub.numを使えるようにするにはどうすればいいだろう?
ああ getterとかもなるべくなら使いたくないんだけど
そういうのしか手はないんだろうか
>>177 うーん?普通に出来てるけど
public class Superとかpublic class Subにしてみるとか?
子SWFロード方式において、子SWFをアンロードする時に、参照が残っていると
ガーベジコレクションが行われないということは、色々なWEBページを見て理解しましたが、
以下の場合はどうなるのでしょうか?
子SWFが以下だったとします。
public class Child extends MovieClip {
var obj:Object;
var array:Array;
public function Child (){
obj = new Object();
array = new Array(2);
}
}
子SWFをロードして、以下でアンロードした時に、
子SWFのobjや、arrayはガーベジコレクションの対象になるのでしょうか?
親SWFのアンロード時の処理
loader.unloadAndStop();
removeChild(loader);
loader = null;
unloadAndStop()を使って子SWFをアンロードする時に、
リスナーを削除する以外に、何をしないといけないのでしょうか?
上記のような、インスタンス変数にオブジェクトを格納している場合も、
明示的にnullをセットしておかないと、子SWFは解放されないのでしょうか?
loaderにnullをいれてんのは参照切るためだよ
loaderに別のインスタンス入れてももとのオブジェクトの参照は切れるよ
>>179 え できるのか・・・ なんか忘れてることがあるのかな
177では省いてたけどclassもpublicにしてるし・・・
183 :
174:2012/01/26(木) 16:12:47.63 ID:V23ba8rS
>>174-176 レス有難うございます。 目的の流れは、
EventDispatcherを継承したカスタムクラス(XML.as)でXMLを読み込んで解析
→ 「完了しました」の情報を別クラス(AB.as)(インスタンス)に通知
としています。 XML解析はXML.asのコンストラクタ内で終わらせてこれを通知
できれば良いのでコンストラクタ内のaddEventListener(Event.XXYY, doneFunc);
には拘っていません。
※処理完了を示すEvent.XXYYを探していましたので
ということで、dispatchEventを使ってご紹介頂いたリンクや
ttp://d.hatena.ne.jp/kamip/20091017/1255804628 のコードでとりあえず通知させる
仕組みは出来ました。
色々有難うございました。
>>182 出来ないわけ無いから、最低限のソース全部貼った方が早いと思うが。
あの〜、
Stage.scaleMode = "noScale"; でMCサイズが拡大縮小しないようにしてるのですが
ブラウザのウィンドウサイズが一定の大きさより小さくなった場合に
MCを縮小するってことはできるのでしょうか?
>>184 改めて試したんだができるようになってたわ・・・
なんかすまんかった
なんで前はエラーでたんだろう・・・
>>181 回答ありがとうございました。
もう一ついいですか?
1.親でaddChild()して子を追加。
2.子でaddChild()して適当な描画オブジェクトを追加。
こういった場合に、親の参照を切れば、メモリリークの心配はないのでしょうか?
それとも、親にぶら下がっている全てのオブジェクトを調べて、
全部removeChild()しないとメモリリークになるのでしょうか?
>>187 >>154で言ったとおり親の参照が表示オブジェクトツリーから切れても他に持たれていたら親が残る
よってその子も残る
親が他から参照なければ子も表示オブジェクトツリーからの参照は切れる
でも子が他から参照持たれてたら子は残る
その場合たぶん子のparentには親が入ったままだから親も残るかもね
質問の答えとしては
親が子の参照を持ち、子が親の参照を持つだけの状態で表示オブジェクトツリー以外の参照がない場合、親をremoveすれば子もGC対象になるよ
他から参照なければね
>> 188
回答ありがとうございました。
大変勉強になります。
今、作っているコンテンツが、
どうもリークしているようで、
調査に苦戦してます。
回答いただいた内容を参考に、引き続き
調査してみます。
190 :
Now_loading...774KB:2012/01/27(金) 08:46:59.84 ID:xzIvTLon
FlashProCS5 ver.110を使用(CS4からのアップグレード版)
AS自体の質問ではないのですが、CS5のタイムライン記述(フレームスクリプト)での語彙
検索機能(文字列検索機能)で質問です。
CS5のアクションパネル(フレームスクリプトのパネル)に普通にコードを書いて、普通にコード内の
文字列を検索しよいうと思い、パネル上部の検索アイコン(「ターゲットパス挿入」の左隣の虫眼鏡マーク)
を押して『置換して検索』ウインドウを出しました。
ここまではCS4以前と変らないのですが、検索文字欄に文字列を入れて『検索』ボタンを押すと
同一タイムライン記述内に他に同じ文字列があるにも関わらず何も検索されず、更には開いていた
タイムラインのスクリプト欄も閉じてしまいます。
(質問したらイジけて引き篭ったような状態。 ASファイルだと無問題)
MX2004からCS4まで使っていたのですが、こんな酷い検索機能は初めてで悶絶しそうです。
(検索なんて基本機能中の基本なのに・・・)
そこで質問です。
Q1) このアホ検索機能はCS5のデフォですか?
Q2) CS5でデフォならCS5.5では改善されてますか?
すいません、宜しくお願い致します。
そんな事ねえだろうw
うちはCS5.5だが当然無い CS5でも大丈夫だと思う
再インスコしてもダメならAbodeに報告するしかないな
CS5で試してみたけど普通に検索できたよ。
俺もまだCS5だけど、OK
195 :
190:2012/01/27(金) 13:59:10.92 ID:xzIvTLon
>>191-194 再インストールしましたけど症状は同じでした。
因みにOSはWindowsXP-Pro(SP3)でメモリー3.3GB,CPU:Core2DuoのE6550です
ググりましたが同じような症状の報告が無いので、もうちょっと調べてからAdobeに聞きます。
最悪、CS5.5を入れるかも知れませんが・・・
>>192 スレ立て有難うございます。
超基本的な質問スレが無かったのでここで聞きました。
AS3で数日ハマっているので質問させてください。
やりたいことは親swfから外部の子swfを読み込んで、
その子swfが外部の.pngを読み込む。それを親swfで表示する。
なのですが、,pngが表示されません。
子swfのシーンに乗ってるものは親swfで表示してます。
子単体では正常に表示してます。
もしかして子swfから外部画像を読み込んだものを
親swfで表示するのはそもそもできないのですか?
>>196 要は子が参照しているPNGを親で見るってこと?
ならば、子のPNG変数(URL)を親に渡すってことで、 SWF 親 子 変数 アクセス
でググると吉かも。
注意点は、親子SWFが同じAS3なら良いけど、万が一、子がAS2の場合は変数に
アクセスできない。 その場合はライブラリ「ForcibleLoader」とかを使う。
>>196 普通に表示できるよ
ロードや表示に関するASやflaを晒さないと原因はわからんが
どこかで間違ってるか何かを勘違いしてるのだと思う
199 :
196:2012/01/29(日) 13:46:14.22 ID:TwlN1FpD
>>197,198
レスを参考に試行錯誤してみます。
どうしもだめな場合はダメASを披露しにきますw
ありがとうござました。
200 :
196:2012/01/29(日) 17:52:14.17 ID:TwlN1FpD
解消できなかったのでご教授お願いしにきました。
>>196です。
//親swf1フレーム目
var mc:MovieClip = new MovieClip();
var req :URLRequest = new URLRequest("01/01.swf");
var loader:Loader = new Loader();
loader.load(req);
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoadComplete );
function onLoadComplete( e:Event ) {
mc = loader.content as MovieClip;
container.addChild(mc);
mc.gotoAndStop(1);
}
//子swf1フレーム目
var ld:Loader = new Loader();
var url:URLRequest = new URLRequest("pic/01.png");
var context :LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
ld.load(url,context);
ld.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoadComplete );
function onLoadComplete( e:Event ) {
addChild(ld);
}
//子swf2フレーム目(以降02.pngの部分が3フレーム目は03とフレームと同番)
url = new URLRequest("pic/02.png");
ld = new Loader();
context.applicationDomain = ApplicationDomain.currentDomain;
ld.load(url,context);
ld.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
環境:FLASHCS5.5 Win7 AS3.0
ディレクトリ階層:ルートフォルダ内に親swfと01フォルダ、
01フォルダ内に子swfの01.swfとpicフォルダ、picフォルダ内に01.png〜
201 :
196:2012/01/29(日) 17:58:22.60 ID:TwlN1FpD
200に追記
container.addChild(mc);のcontainer定義はここの投稿時に
行数警告でその行を削除しましたが、
var container:Sprite = new Sprite();
addChilde(container);
と記述してあります。
そのコード試そうかと思ったがメンドイので止めたw
そもそも何でそんなヘンテコな構造なんだ
DisplayObjectContainer使って コンテナ用意してその中に
pic01, pic02 …とSpriteかMovieClipのインスタンスを追加していき
そのインスタンス内にロードして表示、非表示等の操作をすれば楽だし改造し易いお
>var req :URLRequest = new URLRequest("01/01.swf");
フォルダ名って数字のみでおkだったっけ? ↑
203 :
196:2012/01/29(日) 21:38:15.40 ID:TwlN1FpD
>>202 ディレクトリの数字のみの件は、子swfのシーンは表示しているのでリンクはOKなようです。
ためしに01からobjとフォルダ名を変えてみましたが結果は同じでした。
外部に画像を出しておくのが仕様で、子swfを頭から連続再生させたり途中から再生させた
かったので各フレームに読み込んで後は親が子swfをプレイすればよいかと考えたのですが
構造をかえてみます。ありがとうございました。
>頭から連続再生
ってまさかアニメ? それならアニメ詰まったのを1個読み込むのが普通だろ
なんで画像を1枚づつ読み込むんだ まあ…がんがれ
205 :
Now_loading...774KB:2012/01/30(月) 21:29:37.73 ID:lCMdSn8T
質問失礼します。
Adobe Flash Professional CS5 で開発をしているのですが、
traceで出力パネルに出力した文章をコピー&ペーストして.txtとして保存すると
テキストの形式がShift-JISで保存されます。
そこで、出力パネルに出力される文字コードをUTF-8にしたいのですが、
traceで出力する際に文字コードの指定などはできないでしょうか?
>>205 保存するときにUTF-8にすればいいんじゃない?
>>205 テキスト貼付けるエディタのデフォの設定がShift-JISなんだろ?
エディタを何とかしろ
208 :
Now_loading...774KB:2012/01/31(火) 16:52:45.97 ID:2xuTHBYb
スレ違いだったら申し訳ありませんが、質問です。
ActionScriptにはJAVAのヒープ領域のようなメモリ領域はあるのでしょうか?
あるなら、どのくらいのサイズが確保されるものなのでしょうか?
Chrome以外で自分のSwf見ると挙動がおかしい・・・
Operaだとクリックした時にしかマウスポインタが手に変化しないし、
IEだとFLASHのバナーしか表示されないし・・・
このへん詳しいこと書いてるサイトとかないかな?
FlashはIE基準じゃなかったかな ちょっと前はクロームでキーボード入力受け付けないとかあったけど…
IEで挙動がおかしいのは直さないとダメだな ちなみにIEのバージョンとかは?
SafariはAppleなのでFlashの挙動が変なのは諦めるしかない
Chromeはキーボードも受け付けてるし一番問題ないな
IEバージョンは9だったけど、スクリプトだけ色々いじってたらとりあえずIEは表示されるようになったよ・・・原因わからない
Safariは持ってないし確認しようないから置いておいてる
せめてOperaのボタンのカーソルくらいは直したい・・・
今はSprite継承の自作クラスの中でthis.buttonMode=trueでやってるけど、これが原因だろうか
あとついでに質問だけど、今の状態だとFLASHをドラッグしてしまえるんだけど(テキストドラッグしたみたいに青くなる)
これをドラッグさせないようにするのはHTMLとかjavascriptの範疇?
実際のインスタンス(のターゲット変数).buttonMode=true;にしてる?
ドラッグして青くなって選択状態になるのはしょうがないお
してない、が外から内からもbuttonMode=trueとしてみたけど変化なかった。
問題のSpriteは
MySpriteA ←this.buttonMode=true
┗継承━MySpriteB
┣mc1(適当な絵描いてるMC)
┣mc2(〃)
みたいにやってる。
SpriteAがボタンの機能持ってて
SpriteBは、例えばmc1がaddChildされてる時に、mc2を表示したくなったら
関数呼び出すとmc1をremoveしてmc2をaddする、みたいにできてる。
mc1をaddChildする時に mc1.buttonMode=true;
mc2をaddChildする時に mc2.buttonMode=true;
これでだめならもうわからん Operaの方が対応してないぽい
216 :
Now_loading...774KB:2012/02/02(木) 20:13:16.06 ID:4HNnzc9t
AS3というかASの基本的な質問です。
ある配列 arr0 に別の配列 arr1 を丸ごと追加するにはどうしたら良いでしょうか?
arr0.push(arr1) だと arr1 が可変長引数扱いされて arr0 の長さが1個しか増加しません。
ググりましたが、要素単位で追加する説明はありましたが丸ごと追加の説明は
見つかりませんでした。
218 :
216:2012/02/02(木) 21:17:57.35 ID:RCR9XpAS
>>217 早速さんきゅう。 でも、できません。
trace("Arr0= "+Arr0.length);// 30
Arr0.concat(Arr1);// 配列の追加 10個
trace(" Arr0= "+Arr0.length);// 30
長さが変化しないのですが・・・
>>218 リファレンスを読み直しましょう
ちゃんと例のとおりにつかっていますか?
221 :
216:2012/02/02(木) 21:56:11.78 ID:KAFsu2jP
>>219 すいません。。。 左辺が必要でしたね。
>>221 そうそう。そういうパターン実はいくつかあるから注意だね
逆にそういうパターンにしてほしいのに複製作られずにいじられちゃったりするパターンもあったり
223 :
Now_loading...774KB:2012/02/03(金) 06:20:56.65 ID:i7tdhhgt
TextAreaへのTextFormatによる特定区間の文字の色付け(青色)で困っています。
AS3,AIR1.5,WinXP(FlashCS4)
TextArea(tArea)内の文字列を var str0:String = tArea.text;
テキストフィールドを var tFd:TextField = tArea.textField; として
var tfm:TextFormat = new TextFormat(); tfm.color = 0x0000FF;
tFd.setTextFormat(tfm, po0, po0+6);// フォーマットの適用 po0は任意の位置
としても何も変化がなく、po0を変数とせずに tFd.setTextFormat(tfm, 5, 11); としても
同じでした。 テキストフィールドはtFdで参照が取れているのですが色が変りません。
TextAreaのテキストフォーマットは tArea.setStyle("textFormat", tfm) とかで
出来ますが、これだと全文が青色になってしまいます。
どうすべきでしょうか?
224 :
223:2012/02/03(金) 06:26:57.42 ID:i7tdhhgt
(上の追記)
tFd.getTextFormat(5, 11)で調べると確かに [object TextFormat] と出て、
テキストフォーマットが設定されてはいるようですが・・・
226 :
220:2012/02/03(金) 09:50:16.05 ID:0qxNACgm
>>215 やってみたんだができなかった・・・
普通のムービークリップ.buttonMode=trueもやってみたけど、
Operaだとクリックして動かさない間しかマウス変化しない・・・
それでFlashProでテスト用のSWF作ってみたが、こっちではちゃんとできてた。
FlashBuilderで作ったのが悪いんだろうか・・・
227 :
223:2012/02/03(金) 13:46:33.71 ID:81rqqVrX
>>225 どうも。 TextFieldに文字列を流し込んだ後にsetTextFormatを使用してます。
ちなみに、TextAreaでは文字列が内部に存在しなくても
var tArea_tfm:TextFormat = new TextFormat(); tArea.setStyle("textFormat", tArea_tfm);
で文字サイズなどの変更が可能です。
またvar tFd:TextField = tArea.textField;として
tFd.setTextFormat(tfm, 5, 11); で trace(tFd.getTextFormat(5, 11).color);
で文字RGB色を取得すると、ちゃんと青の255が出ます。
つまり、テキストフォーマットは設定されているものの、反映されない状態です。
というか、
「TextAreaでなく最初からTextField使う場合は意図したとおりに適用されてる?」
をもう少し詳しく解説願います。
TxtArea(コンポーネント?)を使わずに単にTextFieldを表示させてる時に意図した通りの見た目になってるか、だよ
問題がTextAreaなのかTextFieldなのか切り分けるの
229 :
223&227:2012/02/03(金) 15:43:48.90 ID:81rqqVrX
>>228 さんくす。
TextFieldのみを使った場合、上手くいきました。 TxtAreaは文字単位の色付けといった
細かいことには不向きなのかも知れません。
230 :
Now_loading...774KB:2012/02/03(金) 21:30:52.09 ID:mFRFMtJq
初心者すぎる質問です。すいません。
最初にステージに50個インスタンスを配置して
Aボタンを押すと
ステージにおいてある50個のインスタンスを全て非表示にして、
その中の1だけ表示(表示したいインスタンスをaとする)、
Bボタンを押すと同じように
ステージにおいてある50個のインスタンスを全て非表示にして、
その中の1だけ表示(表示したいインスタンスをbとする)
Cボタンを押すと‥‥というような
スプリクトを作りたいのですがうまくいきません。
50個のインスタンスをまとめてシンボル化して、
まとめたインスタンスを非表示にして、その中の子インスタンスを1つだけ表示しよう
としてもダメでした。
adobe FLASH CS5.5を使用しています。
>>230 50個のインスタンスを配列(Arr)の要素に格納して
for each (var element:Object in Arr) {
element.visible = false;// 一旦全部非表示に
}
Arr[n].visible = true;// 1個だけ表示
でもダメってこと? これならAS2でも動く筈。
232 :
230:2012/02/04(土) 00:36:03.84 ID:on1pbUkS
まだまだ勉強不足でArrすらわかりません…。
ネットで調べてみたけど難しい。勉強せねば。
例えばインスタンス名がそれぞれA.B.Cという3つのムービークリップを作った場合、どう要素を格納して、どう表示 非表示の記述をすればいいですか?
アクションスプリクト3.0を使用しています。
ちなみに最終的にはムービークリップが300個くらい(swfに書き出すと約180kb)になるのですが、ホームページにのせた場合重くなるのか心配です。スクリプトは前述のような動作です。
>>232 簡単なサンプルが多く載ってる本を2,3冊買って色々イジりながら試すのが近道。
今回の例では
var arr:Array = new Array();// 配列の宣言
arr.push(A);// 配列に格納
arr.push(B);
arr.push(C);
for each (var element:Object in arr) {
element.visible = false;// 一旦全部非表示に
}
arr[1].visible = true;// 0〜2の1だけ表示
SWFのサイズと重さはあまり関係無いよ。 あくまでもアルゴリズム次第。
同年代の古時計でもメンテナンスや内部機構によって滑らかに動くかどうかが変るのと
同様のこと。
なお、AS3ならメモリー使用量は下記で簡単に参照できる。
var mem:uint = System.totalMemory;
先ずは、変数と型の関係を理解しませう。
234 :
Now_loading...774KB:2012/02/04(土) 12:07:04.30 ID:XPBxIAgs
235 :
Now_loading...774KB:2012/02/04(土) 14:08:20.86 ID:xlKx4hNr
>>233 ありがとうございます!
本を買っていろいろ勉強してみるつもりです。
ちなみに、ボタンの上にムービークリップやテキストがある場合
下のボタンを触れるように出来るのでしょうか?
それとvar mem:uint = System.totalMemory; の使い方よく分かりません…。
236 :
233:2012/02/04(土) 14:31:10.25 ID:TQq7Q4sJ
237 :
Now_loading...774KB:2012/02/04(土) 15:29:22.28 ID:on1pbUkS
>>236 試しに今作っているFLASHのボタンの1つに totalMemoryを記述してみました、クリックするとムービークリップを表示するボタンです。
出力に49049600と出ました。ちなみにそれを非表示にするボタンは51654656でした。
単位はバイト?これはどのくらいを意味している?
表示中でも表示するボタンを押すとメモリーがかかる、
それと非表示ボタンのほうがメモリーが高い、頭の中が混乱してきました…。
表示時は表示インスタンスがグラフィックRAMに記憶され
非表示時は全部(のデータ)が通常メモリに記憶だからじゃね?
そもそもGCあんだから瞬間的なメモリみても意味が無い
気にすんな
>>236 上にテキストやMCがあっても、それらのmouseEnabldがfalseであれば
下のボタンを操作できるよ
>>237 単位はバイト?これはどのくらいを意味している?
参考リンク嫁
>>239 デバッグ版プレーヤーなら gc()があるけど、GCって(基本)気まぐれなんでしょ?
しかもオブジェクトが無参照になってnullにならないとダメとか。
242 :
Now_loading...774KB:2012/02/04(土) 18:54:17.28 ID:on1pbUkS
>>240 mouseEnabldやってみたらできました!
233さんで教わったばっかりの配列(Arr)も使用してみると
var arr:Array=new Array();
arr.push(a);
arr.push(b);
for each(var element:Object in arr){
element.mouseEnabled = false;
element.mouseChildren = false;
}
みたいなこともできるのですね!
AS1.0の質問です
Stage.scaleMode = "showAll";
createEmptyMovieClip("stage_mask",12345);
with(stage_mask){
lineStyle();
beginFill(0,100);
moveTo(0,0);
lineTo(Stage.width,0);
lineTo(Stage.width,Stage.height);
lineTo(0,Stage.height);
lineTo(0,0);
endFill();
}
_root.setMask(stage_mask);
上のソースはFlashの外側(はみだし部分)を隠すスクリプトなんですが
他のMCや画像はマスクで隠しつつ一部のMCだけ隠さずに表示することはできますか?
隠したくないMCの深度をstage_maskの深度12345より大きくしてみたんですがダメでした
_rootにマスクするのやめたら?
CS5を使っております。
タイムライン上に画像や適当なコンポーネントを配置した
SWFをChild.swfとします。
Child.swfを適当な親SWFからロード→アンロードしたとき、
アンロード時には、タイムライン上の画像等は勝手に解放されるのでしょうか?
それとも、何か後処理しないとメモリリークになってしまうのでしょうか?
>>247 回答ありがとうございました。
・Loaderのリスナーは弱参照で登録して使ってました。
→明示的にremoveするように変更しました。
・Loaderはnullに出来てました。
上記をやっとけば、とりあえず問題ないってことですね。
ありがとうございました。
>>248 そうそう。弱参照ね。
ちなみにPapervision3Dには、不要になった3Dオブジェクトを削除するために
オブジェクト.material.destroy(); というのがある。
すいません
デバッグができなくて困っています。Flashdevelop4.0.1、AS3プロジェクトです
リリースで実行するとFlashplayerが表示され実行されるのですが、
デバッグで実行するとFlashplayer自体は表示されるのですが、実行されず
ステータスバーに「Flashplayerを待ってデバッガーに接続します」と表示されます
原因を調べると、特定の自作クラスを参照すると駄目なようで
static const な定数を参照するだけでデバッグできなくなります
なにかデバッグできなくなる原因の記述があると思うのですが
その自作クラスは基幹の大きいクラスのため「1か所消してコンパイル」を繰り返して特定するのはかなり時間がかかりそうなのです
ので、何か手がかりを知っている方が居たら教えてください
よろしくお願いします
251 :
Now_loading...774KB:2012/02/09(木) 18:52:17.71 ID:R+rqbmsZ
age忘れました
252 :
Now_loading...774KB:2012/02/10(金) 12:19:45.22 ID:NiE7UKI7
flash CS5 win7 です
今Asを勉強しているのですが
function onMoveStart(event:MouseEvent):void {
clickY = event.stageY - McName.y;
}
というコードを外部クラスで動作させる場合に、
eventが定義されませんと、エラーが出ます。
ぜひお教えくださいよろしくお願いいたします。
>>250 デバッグはFlash CS5とかなり違うんだろか
デバッグ時の画面、挙動がどういう状態なのか少しわからないと答えるのむずいお
255 :
226:2012/02/10(金) 19:30:56.22 ID:jEUJ5txX
今更だけど規制解けたので
どうもFLASHのウィンドウ設定を透明に設定すると、今回のようなバグがでた
調べたら透明の時はなんか微妙に色々起きるらしいな
気づくの時間かかった
256 :
250:2012/02/11(土) 01:38:15.67 ID:fz4rwvJH
>>254 レスありです。CSとの違いは分からないです
挙動というか、とにかくFlashPlayerが表示されるだけで何も実行されません
今、古いSDKを使ったら一応デバッグできたので急な要件ではないのですが
何か知っている方がいらっしゃったらよろしくお願いします
AIRの質問なんだけど大丈夫だろうか?
this.stage.nativeWindow;
↑このNativeWindowってやつに困ってる。
SWF書きだした時にnullだったり中身入ってたりと、ばらつきがある。
100%nullじゃないようにしたい場合はどうすればいいんだろう。
nullが出た時は、そのあといくら待ってもnullなのでイベントリスナーも意味ないし。
分かる人いればレスお願いします。
>>259 リファレンスは見たけど、その辺は書いてない気がするんだよな・・・
ちなみにソースというか、そのまんま
nw = this.stage.nativeWindow;
trace(nw) ←null か object NativeWindow という感じ
FlashBuilderにFlashPro連携させてやってるんだけど、
色々試して、Builderから書きだすと初回はエラー吐いて、2回目からはちゃんと起動するということがわかった。
初回から成功して欲しい。
FlashProからやると、多分◯◯-app.xmlを読み込まないから絶対失敗するのかな、と。
Android向けのサイトで使うFlashをとりあえず10、AS1.0で作っています
loadSoundで読み込むサウンドデータでmp3以外(具体的にはAACエンコしたm4a、もしくはogg)の圧縮フォーマットを
使うことは未だにできないのでしょうか?
ぐぐっても2004年頃の「できない」という情報しか出てこず、最新の事情を知りたいです
FlashやASのバージョンでも違ったりする?
AS2か3なら使えるのでしょうか?
10なのにAS1を使う理由がまったくないな
m4aはローダー作ってる人いたけど、基本はmp3だけだろうな
AS1に拘る理由は全くないです、AS2か3で使えるならそちらにします
商用なのでmp3は使えません
>>267 oggとかが使えるかどうかわからんがAS3のほうがいいよ
269 :
Now_loading...774KB:2012/02/12(日) 18:40:52.27 ID:Va1DU68x
>>267 AS1,2は無理
AS3は自前でデコードするなら何でも可能
ただmp3はFlashに埋め込んどけばいいんじゃね?
CS5,WinXP,AIR2.0ですが、addChildしたテキストフィールドが滲んで(にじんで)しまい
困ってます。
http://uproda11.2ch-library.com/335444A65/11335444.png の右上の sheetBase_0 の部分
CS5のライブラリにMC(SheetTitle)があり、これをnewして灰色の部分(SheetBase)にaddChild
しています。 階層構造は、下の通りです。
親
┗SheetBase
┗SheetTitle
┗テキストフィールド(入力型つまりインプット型) ← ここが滲む(にじむ)
CS5なのでフォント埋め込みが必要ですが、フォントを設定(MSP ゴシック,日本語,・・・など)
をしてもこの状態です。
他の文字列「Words」とか「179」はにじんでいませんが、SheetTitleのテキストフィールド文字列
だけこんな感じです。
SheetTitle内のテキストフィールド位置は(0, 0)なので滲まないようにしているのですが・・・
考えられる原因は何でしょうか?
滲みっていうか、単にアンチエイリアスがかかってるだけじゃねーの?
272 :
270:2012/02/13(月) 22:03:51.77 ID:AhhPa0c+
>>271 さんきゅう。
デバイスフォントでOKでした。
273 :
Now_loading...774KB:2012/02/14(火) 12:01:31.66 ID:imvGWgVk
274 :
Now_loading...774KB:2012/02/14(火) 20:34:24.97 ID:jJNmIoEx
AS3
画像(pngファイル)を読み込み、ボタンとして使いたい
[Embed(source = "../img/btnX.png")] private var _btnX:Class;
var btnX:Sprite = new _btnX() as Sprite;
btnX.x=100;
btnX.y=100;
addChild(btnX);
上記のコードを書いたのですが、実行するとbtnX.x=100;の行でエラーになり、
btnXの中身を見るとnullになっています
元々はBitmapクラスを生成して表示していたのですが、
BitmapクラスだとbuttonModeプロパティが無いためSpriteにしようとしてこうなりました。
ネットでもいろいろと調べたんですが、今ひとつ要領を得ません。
(BitmapをSpriteにするだけで良い、という記述も見かけたんですが今回の通りです)
どなたか教えて下さい。
275 :
Now_loading...774KB:2012/02/14(火) 20:41:37.45 ID:9wqtRWSQ
初心者です。
Arrayを使って複数のインスタンスを格納した「arr1」を
別のArrayを使った「arr2」に格納できますか?
スプリクトの書き方を教えてください。
あと
Ver vec1 :Vector .<displayobject>=newVector.<displayobject>()と記述して
ムービークリップとテキストを一緒に格納したとき、
テキスト(moji)をmoji.text =“○○”で文字を表すことはできないでしょうか、
あとインスタンスによってはmouseEnableを使用すると、コンパイルエラーになります。
>>274 pngはBitmapで生成して、親としてSprite作ってaddChildしたら?
>>274 その埋め込みはnewするとBitmapAssetとかいうほぼBitmapクラスになるから
as Spriteの時点でnullになっちゃう
なのでBitmapとして受けること
>>276でいいんじゃね
ちなみにBitmapとSpriteは親戚っちゃ親戚だけど直系じゃないから
BitmapをSpriteにするだけで良いという発想はありえないよ
>>275 Arrayをコピーする方法は無いのでループでひとつづつ入れなおす
vec1から出すときはDisplayObjectとして出てくるので
(vec1[i] as TextField).text = "○○";
のようにすれば可能(vec1[i]がTextFieldなら)
mouseEnabledも同様にInteractiveObjectのプロパティなのでDisplayObjectとして出した場合には設定できない
278 :
274:2012/02/14(火) 21:17:46.21 ID:jJNmIoEx
279 :
274:2012/02/14(火) 21:19:08.04 ID:jJNmIoEx
すみません、リロ忘れ…
>>277さんも丁寧にありがとうございました!
Arrarのconcat()でコピーできなかったかなと思って調べたら、浅いコピーは出来るみたいだな
中身が同じインスタンスを指すんでよければこれでいいんじゃね?
>>275 ArrayにArrayを入れられるか?という話なら普通に出来るが…。arr2.push(arr1);
> new Vector.<displayobject>()
DisplayObjectなんかのプリミティブ型以外のオブジェクトなら通常のArrayでも
速度的には大差無いと思うんだけど実際のところどうなんだろな
283 :
Now_loading...774KB:2012/02/15(水) 19:26:38.22 ID:FWjTH1OX
>>281 うまくいきません。
arr1をarr2に入れて、別のarr3にもarr1を入れてるからかな。
>>283 出来ないわけないが、質問の意図が、
arr1に入れた要素全てをarr2に入れられますか?
ってことなら、やり方が違う。
arr1に入れた要素全てを取り出して、arr2に入れないといけない。
285 :
Now_loading...774KB:2012/02/15(水) 20:37:32.99 ID:FWjTH1OX
例えばarr1にムービークリップを例えばa.b.cの3つのインスタンスを入れて、
arr2にはd.e.fを入れて、
arr3にはarr1とarr2を入れる。
Aボタンを押すとaを表示してb.Cを非表示に。
Bボタンを押すとdを表示してe.fを表示に。
このときa〜f全部が別のボタンを押すと非表示になったり半透明になったりする動作をしたいのでarr3でまとめて指示したいのです。
arr3にa,b,c,d,e,fを入れればよい。
Array#concat()を使ってもいけると思うが確認してくれ。
>>285 arr1 = [a,b,c];
arr2 = [d,e,f];
ary3[0] = arr1;
ary3[1] = arr2;
ary3からaを参照するには、ary3[0][0]
ary3からfを参照するには、ary3[1][2]
これでどうだ
288 :
Now_loading...774KB:2012/02/15(水) 22:08:05.79 ID:lXG89CQk
AS3のスクロール可能なテキストフィールドで質問(AIR1.5,CS4)。
例えば、あるMC内に800×600の縦スクロール付きテキストフィールド(TF)を設置し、これに1000行の
文章を流し込んだとした場合、自動的にTFが表示する行数を取得する方法ってありますか?
UIScrollBarクラスにはpageSizeプロパティがありますが、これは1ページ当たりの行数なので。
現段階では800×600の固定サイズですが、将来は随時変更可能してその時々の表示行数を
知りたいです。
※TFは折り返し無しでそのまま表示します。
289 :
Now_loading...774KB:2012/02/15(水) 23:04:15.54 ID:NNKP89Lx
>>286 concat()で行けました。
ありがとうございました!!
290 :
Now_loading...774KB:2012/02/15(水) 23:25:13.17 ID:NNKP89Lx
スイマセンもう1個だけ質問。
複数のインスタンスをベクターに格納する場合
var vector : Vector.< DisplayObject > = new Vector.< DisplayObject >();
vector.push(mc);
と
var vector : Vector.< DisplayObject > = new Vector.< DisplayObject >();
vector[0] = mc;
ではどっちで記述するのが正しいのでしょうか?
どっちが正しいとかないが後者のほうが速いとは聞く
可変長なら前者と言いたいところだが、
Vectorを使いたい時点で固定長を意識した方が良い。
Vectorでpushを使う時は可変長であることを明示的にするような時かなぁ。
まぁおれルールだけど。
293 :
Now_loading...774KB:2012/02/16(木) 12:35:48.21 ID:g876XNz4
294 :
Now_loading...774KB:2012/02/16(木) 18:19:11.18 ID:g876XNz4
インラインフレームみたいのって作れるの?
295 :
288:2012/02/16(木) 19:41:09.85 ID:IOt2OXK2
すいません。誰か分かりますか?
要約すると、テキストフィールドサイズを 800×600 → 800×800 → 400×300 ・・・
とかで変化させた時の表示行数で、横方向のスクロールは常に設定しているので
各行が長くても水平スクロールで対処しています。
まじで?vec[0]、vec[1]、vec[2]とか書くの?
開発中にvec[1]が不要になったら、いちいちvec[2]をvec[1]に書き換えるの?なんかカルチャーショックだわ
pushでなくインデックス指定というだけの話だけど?
299 :
288:2012/02/17(金) 11:08:33.95 ID:1fjEgm7M
>>298 さんきゅうです。
初期状態なら0から始まるのでbottomScrollVでも対処できますが、
スクロール途中では表示先頭行の番号が不明なので・・・
なんとかやってみます。
>>296 Vector使う時って10個の配列扱う時とかじゃないでしょ?
ループを高速に処理したいからVector使うかってなるわけで、
そんなときはvec[i]とかそういうアクセスのしかたが普通でしょ。
もちろん開発中はずれることはあるだろうね。vec[i+3]になったりとか。
301 :
Now_loading...774KB:2012/02/17(金) 17:31:22.55 ID:nDCWlPNW
>>299 scrollVとbottomScrollVの間が現在表示されてる範囲、と書いてあるが
>>300 えー。そもそも大量に固定長の配列が必要になるって、何?
話題のVector使ってみたけどなかなか大変だな undefinedがエラーなのはいいとして
foo[ 0 ] = 10;
foo[ 2 ] = 100;//順番で設定しないとエラーて!
foo[ 1 ] = 1000;
>>300 言ってることがわからんが、
パーティクルとかの画像処理を短い可変長で処理することなんか考えにくいんだが。
ある程度まとまった同じ物を高速に処理したいから(処理したい要望が多いから)、
ベース型固定の配列Vector<T>が追加されたわけだ。
たいした数も無いのにわざわざ制限の多いVector使う必要性を感じない。
305 :
Now_loading...774KB:2012/02/17(金) 19:45:50.63 ID:e9Df/ptL
Array・Vectorのことは
みんなに教えてもらってすこしづつ分かってきたんですが、
本で三つのムービークリップをArrayを使用して
回転させる例があったんですけど、
var nWidth :int=stage.stageWidth;
var arr :Array=[my0_mc.my1_mc.my2_mc];
mc_btn.addEventListener(MouseEvent.CLICK,BTA);
function BTA(event:MouseEvent):void{
for(var i : uint = 0; i <nLengt; i++){
var my_mc:MovieClip=arr[i]
my_mc.rotation+=5;
}}
これがよくわからないこと多くて。
var nWidth :int=stage.stageWidth;←よくわからない。
var arr :Array=[my0_mc.my1_mc.my2_mc];←よくわかる
mc_btn.addEventListener(MouseEvent.CLICK,BTA);←よくわかる
function BTA(event:MouseEvent):void{←よくわかる
for(var i : uint = 0; i <nLengt; i++){←全然わからない。
var my_mc:MovieClip=arr[i]←よくわからない。
my_mc.rotation+=5;←my_mcでまとめて指示出せるの!?
}}
var arr :Array=[my0_mc.my1_mc.my2_mc];
mc_btn.addEventListener(MouseEvent.CLICK,BTA);
function BTA(event:MouseEvent):void{
for each(var AAA:Object in arr){
AAA.rotation+=5;}}
だけだと思っていたんですがスイマセン教えてください!
>>305 for(var i : uint = 0; i <nLengt; i++){
これは、、、最初にiに0を入れて、iがnLengt未満の間はループして、毎ループ最後にi++するって命令
今回の場合、nLengtは3だから、iが0〜2の間だけループする
だから、for eachで書くなら
for each(var my_mc:MovieClip in arr){
my_mc.rotation+=5;}}
と同じ
nWidthはそのソース内で全く使ってないな
>>303 いや。うん。だから、長い可変長で使うのが普通だよね
>>292が「Vectorは固定長を意識」とか言ってるから、それに対してレスしてるんだけど
>>301 (´・ω・`) ゴメンチャイ。見落としていた。
Vectorは密な配列だから速いけど挿入や削除の処理が重くなる
fixedなんてプロパティがあるくらいだしな
とはいえ、万単位の長さで処理くらい行かないと体感できるほどの差は出ないだろうけど
>>307 え?可変長にしたときってのが…具体的に言うとpush自体をやりたくないんだけど。
http://help.adobe.com/ja_JP/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7fff.html >Vector のサイズが時間よりも先に指定されない場合、Vector の容量が不足すると、サイズが増えます。
>Vector のサイズが増えるたびに、メモリの新しいブロックが割り当てられます。
>Vector の最新の内容がメモリの新しいブロックにコピーされます。
>データを余分に割り当てて複製することにより、パフォーマンスに影響があります。
>上述のコードでは、Vector の初期サイズを指定することでパフォーマンスが最適化されています。
>ただし、コードの保守性は最適化されていません。保守性も改善するには、再利用された値を定数に保存します。
俺の勘違いかと思って調べちゃったよ。
俺の主張は最初から、Vectorを利用する時点でパフォーマンスが気になってるんだろうから、
パフォーマンスに影響ある可変長の利用をやめておこうってことだ。
312 :
Now_loading...774KB:2012/02/17(金) 20:48:16.98 ID:4bug8P+G
うーん難い…。勉強不足スイマセン。
全部まとめて指示出すときは
>>306 for each(var AAA:MovieClip in BBB){○○○○○○;}のカタチで問題ないってこと?
あと例えばさっきの記述でムービークリップ1個だけに指示出すなら
var my_mc:MovieClip=arr[1]みたいな記述したほうがいいのですか?
質問トンチンカンかもしれませんが教えてください。
my_mc.rotation+=5;←my_mcでまとめて指示出せるのはArrayで格納してるから?
>>305 >var nWidth :int=stage.stageWidth;
これはstageのstageWidthを取得する毎にわざわざstageから値を参照するより
一度変数に保持してその値を使う方がパフォーマンスがいいとされてるから
これが使えるのは「何度参照しても必ず同じ値が返ってくる」事が前提
ただ今回は
>>306が書いてるように使ってないから意味がないけど
>var my_mc:MovieClip=arr[i]
これも同じような理由
でもFP10.1ぐらいから配列アクセスのパフォーマンスが改善されてるから
やってもやらなくてもいいと思う
Vectorの重要なところは指定した型以外の値が代入されない事が保証されてる事だと思う
仮に間違えてarrに数字を入れた場合Arrayだとmy_mc.rotation+=5;を実行した時に
初めてエラーになるけどVector.<MovieClip>ならそもそも数字が入らないから
null以外のチェックは不要になる
>>310 うーん。だから、設計思想の違いでしょ
ループなんか画面描画に比べたら微々たるものなんで、保守性を考えたら無視しちゃうね、って
315 :
Now_loading...774KB:2012/02/17(金) 21:37:34.08 ID:4bug8P+G
>>313 あざす。なんとなく分ってきました 。
ちなみに例えばムービークリップaとbとc、ボタンAとBとCがあって。
Aを押すとa表示 b.c非表示、
Bを押すとb表示 a.c非表示、
Cを押すとc表示 a.b非表示したいとき、
a.b.cをArrayで格納して(arr1に格納)
Aを押すとarr1非表示 a表示
Bを押すとarr1非表示 b表示
Cを押すとarr1非表示 c表示みたいにできるのは分ったんだけど
A.B.CもArrayで格納して(arr2に格納)
arr2を押すとarr1非表示 を最初に記述しといて
Aを押すとa表示
Bを押すとb表示
Cを押すとc表示みたいにしたほうがいいんですかね
基本的にスプリクトはできるだけまとめたほうが
パフォーマンスがよくなる?記述を短く分りやすくするため?
上の3パターンだったら結局処理作業は一緒なのですか?
またはもっといいやりかたがある?
うーん。最後のが良いんじゃない?
俺ならボタンにムービークリップへの参照を持たせちゃうかな
言ってる意味わからないかも知れないけど
>> 314
ちがうなぁ、設計思想より後のチューニングレベルの話。
>ループなんか
これを本気で言っているのならびっくりするが。
ループの中で描画する要素なんかいくらでもあるだろ。
>ループなんか画面描画に比べたら微々たるものなんで
ここを考えて設計思想で語るなら、
微々たるような場合にVectorを使う選択をしないとなるな。
Arrayで十分と。
>>313が言うような仮に間違えた場合ってのがあったとすると、
それは設計がまずいって事になる。
>>315 俺も最後のやり方を選択するだろうなぁ。
ボタンの役割がそれしかないなら、ボタンのイベントハンドラは一つにまとめてしまう。
最初にすべて非表示にして、イベントのソースがAならa表示っていう風に。
318 :
Now_loading...774KB:2012/02/18(土) 01:20:01.81 ID:88fQmfvS
>> 317
for each(var element1:Object in arr1){
element1.addEventListener(MouseEvent.CLICK,element1BTA);
function element1BTA(event:MouseEvent):void{
for each(var element2:Object in arr2){
element2=false;
}
}
}
こんな記述でOKですか?
度々の初心者質問ですいません。
ボタンを押すスプリクトのときじゃなくて、
element1.element2を最初に設定できておける?
例えばarr2を別のボタンで非表示にするときは
そのつどfor each(var ○○○:Object in arr2){○○○.visible=false;}
で表示しなければならない?arr1もしかりで
>>318 途中から混ざったので混乱させると申し訳ないが、
>>315での質問をベースに考えると、
・ボタンが押されたら、a,b,c非表示処理
・ボタンを判別して一つを表示
と考えられる。
> ボタンを押すスプリクトのときじゃなくて、
> element1.element2を最初に設定できておける?
これはできる。
btnA.addEventListener(MouseEvent.CLICK,clickHandler);
こんな感じで、ほかのボタンについてもやればいい。そのあとに、clickHandlerの中身で、
function clickeHandler(event:MouseEvent):void {
// 全要素非表示
for each(var elm:Object in arr1) {
elm.visible = false;
}
// ボタンに対応する要素を表示
var clickedBtn:Sprite = event.currentTarget as Sprite;
clickedBtn.visible = false;
switch ( clickedBtn ) {
case btnA:
a.visible = true
break;
case btnB: //以降略
こんな感じでいけると思うが。書いてて、引数を渡してしまうほうがいいことに気づいたがまぁこっちを理解してくれ。
320 :
Now_loading...774KB:2012/02/18(土) 21:11:41.39 ID:teRRq7Cr
やり方の良し悪しとか聞かれてもな
動くなら何でもええがな
323 :
Now_loading...774KB:2012/02/19(日) 00:28:55.69 ID:yeBKkr9h
>>322確かに。
スプリクトをまとめられる方法が
あったら活用したいなと思って。
今こういうのできないかなと思っているのは
ABCの3つのインスタンスをそれぞれ
マウスが上にきたとき半透明になって
マウスが外れたら元に戻るようにしてるんですけど
これも一括で指示できたらなと
>>319理解できたらできそうですかね?
324 :
Now_loading...774KB:2012/02/19(日) 10:56:59.05 ID:GNL5xJF/
>>319少しTargetのこと理解しました。
>>323だったら、Target利用すると
Arrayでムービークリップを格納しなくても
ABCを親インスタンスMATOMEとして設定して
MATOME.addEventListener(MouseEvent.MOUSE_OVER,matome1);
MATOME.addEventListener(MouseEvent.MOUSE_OUT,matome2);
function matome1(eventObj:MouseEvent):void {
eventObj.target.alpha=0.5;
}
function matome2(eventObj2:MouseEvent):void{
eventObj2.target.alpha=1;
}
みたいな感じでできました。
325 :
Now_loading...774KB:2012/02/19(日) 18:26:03.76 ID:f8M6VGgs
Flash Builder 4.6/Windows7です。
s:Imageを使ってmxmlにswfを埋め込んで表示すると、スタンドアロンFlash Playerで読み込んで
ウィンドウを拡大したときにビットマップを埋め込んだときみたくジャギーが出てしまいます。
直接swfを読み込んで拡大するとシェイプなので当然スムーズな拡大ができるのですが、
mxmlに埋め込んだ状態でも同じ状態にするにはどうすればよいのでしょうか?
>>325 UIComponentを継承したクラスを作ってそこに埋め込んで内部でインスタンス化→addChildするとか
んでmxmlに作ったクラスをタグで書く
327 :
Now_loading...774KB:2012/02/20(月) 03:47:51.30 ID:u7ALn6Bw
AS3でのXMLで質問です。
MCのswapChildrenみたいな感じでノード(要素)の順番入れ替えはどうやれば
簡単にできますか?
個別の参照は簡単に出来ますが、列挙する際や全体を見渡す際に順番が重要なので。
ヘルプを見ましたが、insertChildAfterやinsertChildBeforeは挿入のみでした。
AS3です
HogeからFooをnewし、FooコンストラクタからそのままBarをnewしようとすると、
「引数の数が正しくありません。1 個以下であることが必要です。」
と出るのですが、コンストラクタからのインスタンス化はよくないのでしょうか
なわけねえだろ
親切にコンパイルエラーの原因書いてくれてるのにガン無視かよ
>>329 ありがとうございます
Barの引数をいくつにしてもそう出るんです
例えば、Barの引数を3つにして、Fooから1つ以下を渡せば、エラーは出ません
逆に、HogeからBarをnewすれば(コンストラクタじゃない位置から)、
「引数の数が正しくありません。正しくは 3 です。」と出てくれます
>>327 AとBがあったらAを参照した値A一時変数に入れといてBをAにコピー その後変数をBにコピー
という自作関数作ればおk
>>330 コンストラクタと呼び出し側の引数の数合ってないとだめだろw
不特定多数の引数にしたいなら
pubkic function Foo( ...ary ){
trace("1個目の引数:"+ary[ 0 ]+" 2個目の引数:"+ary[ 1 ]+" 3個目の引数:"+ary[ 2 ]);
みたいな感じでがんがれ
pubkic じゃなくて publicなw
再現するクラスのコード見せてみ。噛み合ってないわ。
>>333 すみません、newがなかっただけっぽいです・・
テストということで、戻り値を受け取ってなかったのがダメでした
>>331 可変個引数ですが、まだまだ遠い道です・・
package{
import flash.display.*;
import hoge.*
public class Main extends flash.display.Sprite{
public var hoge_:Hoge;
public function Main(){
hoge_ = new Hoge();
}}}
package hoge{
public class Hoge{
public function Hoge(){
HogeOne(1, 2, 3); //←newがない
}}}
package hoge{
public class HogeOne{
public function HogeOne(h1:int, h2:int, h3:int){
}}}
335 :
327:2012/02/21(火) 07:31:32.75 ID:dLQZS1YQ
>>331 やっぱそういう方法に落ち着くのですね。
>>314 このループなんかって書いてる奴はホントに思ってるのかな?
ループの中でbitmapdata触ったりしないんだろうか??
FlashProとBuilderの連携で困ったことがあったので質問
BuilderだとコードヒントでremoveChildrenが出てくるんだけど
Proの方でswf書きだそうとすると
#1069: flash.display.Sprite にプロパティ removeChildren が見つからず、デフォルト値もありません。
が出てしまう。
ライブラリパスはどっちも同じように設定してるはずなんだけど・・・
removeChildrenってFP11のplayerglobal.swcに入ってる・・・で間違ってないよね?
ありがとう 試してみる
ExtensionManagerが管理者権限で起動しても権限どうたらこうたら出てしまうので、
できるまでremoveChildrenやら使わない方向で行きます・・・
removeChildrenなんてなくてもいいだろ
Stage3D使わないのにターゲットをFP11にする意味はないな
>>336 いや「ループ自体」は速くなるんだろうけど、その中のdrawに掛かる時間は一緒でしょ?
>>342 ループ自体が早いって話はなに?
ArrayよりVectorのほうが高速に要素にアクセス出来るっていう話が前提で、
描画時間にくらべれば、要素にアクセスする時間なんか無視できるぐらい小さいっていってんの?
345 :
Now_loading...774KB:2012/02/22(水) 13:02:16.19 ID:oX4oxnAi
Flashライブラリを作っているんだけど、ちょっとした便利関数を作る場合
・カテゴリごとにパッケージ作って丸裸の関数を入れるか、
・それともカテゴリごとにクラス作ってstaticメソッドとして実装するか
どっちの方が良いのだろうか?Adobe的にはどっちのやり方を推奨しているのかな
チェスやオセロなんかの大量の単純計算ならArrayとVectorで速さに明確な差が出るが
比較的重い描画系処理ならたいして変わらないって話じゃない?
>>345 推奨なんか特に無いお
便利関数ならカテゴリ云々はわからんがstatic実装だろうな〜
複数インスタンスなんかめったに利用しないだろうしstaticの方が速い
348 :
Now_loading...774KB:2012/02/22(水) 13:22:04.90 ID:oX4oxnAi
>>347 いや、ウチが言いたいのは
package 大カテゴリ.小カテゴリ{ public function 便利関数():void{...} }
か、あるいは
package 大カテゴリ
{
public class 小カテゴリ{ public static function 便利関数():void{...} }
}かなんだが……。
static実装には同意
コミュ障ばっかだなあw
>>346 そういう話ならわかるが、そもそもこの話のもとは
>>292からはじまってて、
同じ人かわからないけど、
>>301の
>えー。そもそも大量に固定長の配列が必要になるって、何?
とか質問があるわけよ。
>>300で
>ループを高速に処理したいからVector使うかってなるわけで、
って所が前置きとしてあるのに、
>>301で
>えー。そもそも大量に固定長の配列が必要になるって、何?
って…。
100x100x100のループとか普通にやるけどな。
ある一定の配列アクセスが発生するなと思った場合、
固定長Vectorで宣言することでパフォーマンスが稼げるから固定長になるだけなんだが。
FPS稼ぐとかそういったことやる必要が無い人には意識することが無い事なのかな??
可変長であることが確定してる、もしくは動的にしか配列長が決まらない場合は
素直にArrayを使えば良いだけで、
ジェネリック型としてVectorを使いたいってだけで、Vectorでpush使いまくってたら、
そのたびに内部的に再構築されてArrayより遅くなることがわかりきってるわけよ。
保守性とか言ってたけど、型固定で代入時にコンパイラチェックされることが重要とは
とても思えない。Arrayで作ったときに「うっかり」別の型のものを代入する?
宣言時などはあっても、ループ内では考えにくいがなぁ??
最初から使いどころの話をしているわけで、
保守性考えたらVectorを固定長で使わないっていう主張がまるで理解できない。
型が不定なのがクソキモいって人もいるんじゃないの?
君がVector可変で使うのがクソキモくて理解できないのと同じで。
目的が速度だったらpushしてるのはアホだろうけど、必要感じてないらしいからね。
pushって遅くなんの?
どれくらい?
354 :
Now_loading...774KB:2012/02/22(水) 15:00:06.86 ID:xEPG2eul
2乗するのにビット演算の方が速い、みたいな「根本原理」的な話?
ageてスマン
何度もスマン。自分で測ってみたから質問下げる
>>351,352
そういう人も居るだろうけどね、Arrayってもともとそういうものだよ??
型固定じゃないとイヤなのに、intとかプリミティブ型で宣言したのに、Booleanをpush出来てしまう
暗黙的型変換が許容できるのがクソキモイ。
必要感じてないのにVector使うのは俺には理解できない。
pushで最大サイズの拡張が行われたら、Arrayより遅くなるのに。
>>353 いまテストしてみた。100万の配列アクセスの場合。
最悪Arrayの4倍遅い
固定長(Fixed)の20倍
http://wonderfl.net/c/aIfc
テストしたんか…俺の20分返せ!w
俺のいる板だと会話がすぐ煽り合いになるが
マは平和でいいわ
>>350 型決定による速度向上と補完による効率があるからぜんぜんちがうよ
pushで使おうがArrayのpushより速いんだし意味ないわけないじゃない
ああArrayのpushより遅い場合があるのね
失礼
俺は補完(だいじ まあArrayでもできなくはないけど)と型決定があるから常にVectorを押すよ
push使おうが遅くなるのは出し入れする時だけなんだから、読むときはArrayより速いわけじゃん
ネイティブでArray使わされる場合(filterなど)以外はVectorつかうよん
push遅いのか
pushみたいな感じので一番速いのなんだろう
>>361 遅い場合があるんじゃなくて、ほとんどの場合遅いのよ。
>push使おうが遅くなるのは出し入れする時だけなんだから、読むときはArrayより速いわけじゃん
なんか矛盾してるが。
>読むときはArrayより速いわけじゃん
は間違い無い。ただ、pop,shiftはナシ。
あと、固定長Vectorであれば、書き込みも読込とさほど差が無い。
だからVectorを使う時は
>>292と書いわけだが。
>俺は補完(だいじ まあArrayでもできなくはないけど)と型決定があるから常にVectorを押すよ
>ネイティブでArray使わされる場合(filterなど)以外はVectorつかうよん
型決定はどうでも良い。入れる型が異なることがほとんど無いからね。
しかし、補完があるのが大きいってのはわかる。
それでも、キューの様なpush,popを多用する動作においては採用しないし、
何回もアクセスするような場合は変数に取り出すだろう。(foreachであれば最初からでてるわけだし。)
変数に出してやれば補完の問題も解決するし、Arrayだと基本的なテクニックのひとつだしね。
しつこいとよく言われるが、
>>296みたいに添字で書くことなんか普通のことなんだけど、おかしい?
>>363 添字が基本なことに突っ込んでるんじゃないよ
pushで使わざるを得ない時に時にVectorを使うのはアホっていってるのに対して言ってるの
それから型決定って型が決定してることによるアクセス速度の向上のこと言ってるのよ、どうでもよくないだろ
矛盾してないよ
出し(pop)入れ(push)するときはArrayより遅いかもしれないけど、readする時は確実に速いので使い方如何では一概には言えないでしょ、って意味
>>364 えー。Vectorが密な配列、連続したメモリ領域だから早いわけで、
その連続したメモリ領域を確保するためにジェネリクスの構文をわざわざ拡張したんじゃないか。
順序が逆だと思うが。
もし今後拡張でArrayにもジェネリクスが採用されたりした場合、
Arrayも型固定だから速いってことになるよ?
>出し(pop)入れ(push)するときはArrayより遅いかもしれないけど、readする時は確実に速いので使い方如何では一概には言えないでしょ、って意味
出すがpopとは思って無かった。readと思った。
>pushで使わざるを得ない時に時にVectorを使うのはアホっていってるのに対して言ってるの
だれがアホって言ったの?
だいたい
>>292でpush使う時に言及しているわけだし、
>Vectorを使いたい時点で固定長を意識した方が良い。
っていうのが何で問題なの?
固定長にするだけでパフォーマンスは確実にあがるわけだよ。
その分気を付けないといけない事が増えるだろうけど。
それを嫌って使わないことを選択することは排除してないけどな?
366 :
Now_loading...774KB:2012/02/23(木) 04:26:25.09 ID:hlXk4FcN
調べてみたら固定長であろうが、添字であろうが、pushであろうが
一度領域を確保させたらその後の添字でのアクセス速度は大体同じだった。
初期化時間がほんの少し変わる程度のレベル。
使い回しで運用するなら何も変わらない。
好みでいいよホント。
367 :
Now_loading...774KB:2012/02/23(木) 22:20:50.15 ID:bCZii22t
初心者です。
例えばAボタンを押して、
ムービークリップをArrayに格納したarr1を表示するときに
A.addEventListener(MouseEvent.CLICK,Aclick);
function Aclick(event:MouseEvent):void {
for each(var ARR:Object in arr1) {
ARR.visible = true;}
}
と記述した場合、
この「ARR」はまた使えるのでしょうか?
別のスプリクトでarr1を押してムービークリップBを表示するときに
for each(var ARR2:Object in arr1){
ARR2.addEventListener(MouseEvent.CLICK,ARR2click);
function ARR2click(event:MouseEvent):void {
B.visible = true;}
}
最初の記述のfor each(var ARR:Object in arr1) {
2番目の記述のfor each(var ARR2:Object in arr1){ のように
毎回var のあとの変数名はかえなければならないのでしょうか?
基本的な質問ですいません。
同じ関数内ならまた使える
他で使いたいなら別の変数で受けておくんだけど >別のスクリプト ってなんやねん
クラスファイルならメンバ変数用意して入れとけば同クラス内のどこからでも参照できる
369 :
Now_loading...774KB:2012/02/24(金) 00:51:13.38 ID:lFddvvqM
>他で使いたいなら別の変数で受けておくんだけど
具体的にどうやるのですか?
ARR.visibleとか頭痛くなるからやめて(>_<)
大文字はないな
警告無視すれば、同じ変数名使っても問題なく動くよ
まあコードとしては問題あるから警告出るんだけど
あるいはArray#forEachとか使えば警告出なく出来るかな
373 :
Now_loading...774KB:2012/02/24(金) 01:49:25.81 ID:mgywVX5W
スレ違いと分かってながら、人が今見てそうと思って皆にヘルプ><
概要:背景に使う画像が2種あり、それぞれをレイヤーに分けている。
AVIで書き出すと、レイヤー1を表示、レイヤー2を非表示の場合は
綺麗に書きだせる。
レイヤー2を表示、レイヤー1を非表示にして書き出すと
ムービー全体が荒くなる。文字やそのほかのおオブジェクト全て。
前者と後者の書き出し方に全く違いは無いはずなのに
○一日かけて書き出ししても一向に改善策が分からない。
教えてエロい人><
AS3のFlash5.5で質問です。
ステージ上にsquareというムービークリップがあります。
そのシンボルはプロパティのライブラリ欄でASリンケージをsquareClassという名前で設定しています。
以下のコードでsquare0〜square9のインスタンスを複製したいのです。
for ( var i:int = 0; i < 10; i++ ) {
var name_str:String = "square"+i;
var myClass:squareClass = squareClass(getDefinitionByName(name_str));
addChild(myClass);
}
ところが、以下のようなエラーが出てしまいます。
ReferenceError: Error #1065: 変数 square0 は定義されていません。
at global/flash.utils::getDefinitionByName()
at test_fla::MainTimeline/frame1()
何が足りないのでしょうか?
>>375 インスタンスの変数を一度で連番にする方法は、配列に入れるしか無いと思う。間違ってたらごめん
そのgetDefinitionByNameは、クラス名を指定するのであって変数名ではないはず。
つまり、square0〜square9のクラスがあるんだったらいいけど、squareClassしか無いのであれば
エラーだと思う。
AS2の記述と混同してるっぽいな
AS3なら普通にインスタンス変数複数用意してnewして複製すればおk
var square:Array = new Array();
for ( var i:int = 0; i < 10; i++ ) {
square[ i ] = new squareClass();
addChild( square[ i ] );
}//試してないっす
クラス名が小文字で始まるのが気持ち悪いが、
stage.getChildByName(name_str)で複製元がとれるんで、
squareClassにcloneメソッド(クラスのメンバを複製するメソッド)を追加して
やってみればいいんじゃないかな。
379 :
Now_loading...774KB:2012/02/24(金) 11:34:01.04 ID:89pLhC/J
AS3 Flash5.5の質問です。
入力フォーム(インスタンス名:in_text)に文字を入力して、それをswitch文で一致したものを表示したいのですが上手くいきませんorz
in_btn.addEventListener(MouseEvent.CLICK,in_next);
function in_next(e:MouseEvent){
switch (in_text.text){
case "テスト":
trace("テスト");
break;
default:
trace("なし");
trace(in_text.text);
}
}
traceするとin_text.textにはしっかり テスト と入っています。
どうすればよろしいのでしょうか?;;
380 :
Now_loading...774KB:2012/02/24(金) 12:28:11.17 ID:yqBxVBmR
小数点以下の任意の単位で切り捨てたいのですが、うまくできません。
現在下記の公式で切り捨てています。
expr:Number = 切り捨てたい値
digit:Number = 丸めたい単位
Math.floor(expr / digit) * digit
0.3333の0.1未満を切り捨てたい場合、
Math.floor(0.3333 / 0.1) * 0.1 == 0.3の結果を期待したいのですが、
0.30000000000000004となってしまいます。
必要以上に小さい桁を切り捨てたいのですが、どうすればよいでしょうか?
>>379 そのスクリプトの最後のほうの
trace(in_text.text); で
なし
テスト
と表示されるなら、default側に来てるってことでしょ。
>>380 Numberは浮動小数点だから、0.3ってものが表現できない。
文字列でフォーマットするか、int/unitで処理して10で割るとか
工夫が必要
382 :
Now_loading...774KB:2012/02/24(金) 12:58:10.79 ID:89pLhC/J
379です。説明不足すみませんでした。
入力フォームでテストと入力してcase"テスト"と一致させ
テスト
を出力させたいのですが、
381で仰られている通り、テストと入力しても一致せずdefaultに流れて
なし
テスト
と表示されています。
一致させて
テスト
を表示させるにはどこを直せばよろしいでしょうか?
>>379 var t:String = in_text.text;
switch ( t ){//1回変数で受けてもだめ?
>>380 こうだな
var num:Number = 0.1233456;
num = Math.round( num * 1000) / 1000;//小数点第三位まで
num = Math.round( num * 100) / 100;//小数点第二位まで
384 :
Now_loading...774KB:2012/02/24(金) 13:27:30.36 ID:lJqfUYy5
質問があります。よろしくお願いします。
マウスが押されたら
click_del( e , L_zero_n[0] )
という関数を実行するために、次のようなコードをかきました。
L[0].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven
t):void{ A( e , L[0] );} );
このように記述した場合は問題がないのですが、これを複数用意するために、
for(i=0; i <10; i++){
L[i].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven
t):void{ A( e , L[i] );} );
}
このように記述すると、コンパイルエラーが発生します。
385 :
Now_loading...774KB:2012/02/24(金) 13:28:01.93 ID:lJqfUYy5
(つづき)
エラーは関数Aの第二引数に書いているL[i]が存在しないというものです。
なので仕方がなく、
L[0].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven
t):void{ A( e , L[0] );} );
L[1].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven
t):void{ A( e , L[1] );} );
L[2].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven
t):void{ A( e , L[2] );} );
…
のように0,1,2,3...とひとつずつ手打ちで記述していますが、
どうにもやりきれない思いを感じます。
おそらくスコープの問題なんでしょうが、for文を使って一気に書いてしまう方法は
存在しないのでしょうか? よろしくお願いします。
関数Aは
function A(e:MouseEvent , MC:MovieClip){
MC.x=400;
MC.y=1400;
}
このように、第二引数のムービークリップの配置座標を変更する処理を行っています。
386 :
Now_loading...774KB:2012/02/24(金) 13:30:13.03 ID:lJqfUYy5
すいません、上から4行目の
click_del( e , L_zero_n[0] ) :誤
↓
A(e,L[0]):正
の間違いでした。申し訳ありません。
>>382 試したがうまくいく。
初期文字列に空白とかが入っているとか。
388 :
Now_loading...774KB:2012/02/24(金) 13:49:29.46 ID:89pLhC/J
>>383 駄目でしたorz
が、tのtraceも加えて気になったことが一つあります。
最後のところで
trace("なし");
trace(in_text.text);
trace(t);
の3つを連続traceしているのですが、結果に改行らしきものが入ります。
なし
テスト
←ここ
テスト
※現在こんな感じです。↓
var t:String;
in_btn.addEventListener(MouseEvent.CLICK,in_next);
function in_next(e:MouseEvent){
t = in_text.text;
switch (t){
case "テスト":
trace("テスト");
break;
default:
trace("なし");
trace(in_text.text);
trace(t);
}
}
>>388 t.indexOf("\r");
ってやって、-1以外だったら改行コードがはいってることになるね。
390 :
Now_loading...774KB:2012/02/24(金) 14:24:20.71 ID:89pLhC/J
>>389 trace(t);の下に
t.indexOf("\r"); いれてみましたが、
何も返ってこないですね・・・ということは改行コードが入っているのかな?
あ、すまん。
trace(t.indexOf("\r"));
ってことです。
>>384 iの値は保持されないので、
Dictionary使うとか、L[i]にiの値を入れるための変数定義するとか
393 :
Now_loading...774KB:2012/02/24(金) 14:34:27.31 ID:89pLhC/J
>>391 3が返ってきました('-';
-1じゃないので改行が入ってるってことですね(T-T)
>>384 > L[0].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent):void{ A( e , L[0] );} );
ここと
>function A(e:MouseEvent , MC:MovieClip){
> MC.x=400;
> MC.y=1400;
> }
ここを見る限り、
クリックされたオブジェクト(L[0] )がほしいだけだよね。
質問の意図からは外れてしまうが、わざわざFunctionを使うまでもないとおもうんだが。
(別のインデックスのオブジェクトのつもりならだめだが、)
L[i].addEventListener(MouseEvent.MOUSE_DOWN, A );
と普通にイベント登録して、
function A( ev:MouseEvent ) {
var mc:MovieClip = ev.currentTarget as MovieClip;
mc.x = 400; // 以降略
}
でよくない?
>>384 実行関数は1こにしてインスタンス名を取得して処理を変えるというのが一般的だ
その L :Array には何が入ってるんだお ボタンインスタンスなら
for( var i:int=0; i<L.length; i++ ){
L[i].addEventListener( MouseEvent.MOUSE_DOWN, aaa );
}
function aaa( e:MouseEvent ):void{//実行関数 イベントは複数の引数を指定できない
var st:String = e.currentTarget.name;
trace( st+" クリックしたインスタンス名により分岐処理" );
}
>>393 TextFieldのmultilineをfalseに設定したら?
398 :
Now_loading...774KB:2012/02/24(金) 18:55:47.76 ID:89pLhC/J
>>397 TextFieldのmultilineをfalseに設定して単一行にしてもやはり改行が入っちゃうみたいです(T-T)
とりあえず今、TextFieldのプロパティでClssic TextをTLFに変更したらいけました!(この辺まだ勉強してないので
これでいいのかわかりませんが)
改行コードに四苦八苦(削除だとか統一だとか)させられてますが、もうちょい調べて頑張ってみます。
399 :
Now_loading...774KB:2012/02/24(金) 20:17:56.71 ID:NSUKlyLJ
初心者です。
ムービクリップの位置がX座標200/Y座標200にあって
mc.x=100;
mc.y=100;
と記述して位置を変更した場合、
これを『元の位置に戻す』みたいなことはできるのでしょうか?
一発でできるようなもんはない。
けど、大して難しくないよね。元の位置を覚えておくだけで良いし。
401 :
Now_loading...774KB:2012/02/25(土) 05:43:25.69 ID:HczmMrqL
質問です。
下記のような処理を行うとエラーとなります。
package {
import objects.MyObject;
~~~~~~~
public class Test() {
public var objects:Array = new Array();
~~~~~~~~
public function Test() {
var len = this.objects.length; // ←未定義のプロパティ length と言われコンパイルエラーとなる
~~~~~~~~
}
}
}
このエラーは恐らく objects という名前が衝突していると思われますが、
名前を変える以外でどうすれば回避できるでしょうか?
ご教授お願いしますm(_ _)m
402 :
375:2012/02/25(土) 10:36:21.34 ID:3xKaILQw
AS3のFlash5.5で質問です。
ここの秀でた方々のおかげでムービークリップの複製は出来ました。ありがとうございます。
そこで質問なのですが、
■やりたいこと
ローカル変数としてstageにaddChildした後に、別関数からそれをアクセスしたい。
下記のコードでは未定義としてエラーとなります。
■前提
ステージ上にsquareというムービークリップがあり、ASリンケージはSquareClassとして定義。
■コード
addSquare();
function addSquare():void {
var square:Array = new Array();
for ( var i:int = 0; i < 10; i++ ) {
square[ i ] = new SquareClass();
stage.addChild( square[ i ] );
}
}
function moveSquare():void {
stage.square[ 0 ].x = 100;
}
■結果(エラー)
シーン 1, レイヤー 'レイヤー 2', フレーム 1、行 12 1119: 未定義である可能性が高いプロパティ square に静的型 flash.display:Stage の参照を使用してアクセスしています。
何が足りないのでしょうか?
>>402 stage["square"][0].xでどうかな?
>>403 this["square"][0].xとか?
>>401 方法ない気がする。思いつかないだけであるかもしれないけど。
変数名よりpackage名の方を変える方が手間がかかるが、そっちの方が良いと思う。
ユニークになるようにちゃんと考えてからね。jp.hoge.foo.objectsとかするとそれっぽくなるw
>>401 ちがう クラス名の後に()がついてっからだおおお
ここもintかuintにしとけ
var len:int = this.objects.length;
>>406 うぉ。ほんとや。
FlashBuilderで補完してくれんかったから出来んって思ってたが
コンパイルエラーにはならんねw
>>402 クラスファイルにしてるのかフレーム記述なのかどっちだお
メソッド内でvar square:Array = new Array(); 宣言するとsquareはメソッド内のローカル認定されるから
他から参照できないんだ メソッドの外で定義して 参照するときは普通に square[ 0 ].x = 100; でおk
基本的な知識が足りてないぽいな どっかで基本だけお勉強してきた方がいいお
スレで答えが出るまで止まってたら作業なんて進まない
まぁでも基本って調べようにも調べづらいしなぁ
ActionScriptの勉強をはしめたいのですが、オススメの本やwebサイトはありますか?
412 :
Now_loading...774KB:2012/02/26(日) 01:25:53.33 ID:FA8HEhiz
初心者です。
Arrayで格納した5つのムービークリップを
ある1つのボタンを1回押すたびに
[0]~[4]の順番に表示が切り替るようにできますか?
[4]まで行ったら次は[0]に戻るようにしたいです。
ActionScript3.0使用。
表示が切り替わる というのをどのように実装したいか次第
配列としてのヒントは(i+1)%5
414 :
Now_loading...774KB:2012/02/26(日) 01:59:23.05 ID:FA8HEhiz
>>413 もう少し詳しく説明お願いします。
スンマセン!
>>414 まずやりたいことの問題を切り分けるのが大事
とりあえず
MC2つあった時にそれらをボタンアクションで切り替えることはできるの?
416 :
Now_loading...774KB:2012/02/26(日) 02:18:37.53 ID:FA8HEhiz
今はボタンを押したとき
if(mc1.visible){mc2.visible= true;}
else if(mc2.visible){mc1.visible= true;}
と記述してます。
417 :
Now_loading...774KB:2012/02/26(日) 02:20:26.66 ID:FA8HEhiz
↑えーと、2つとも非表示をしてからです。
なら
mc[i].visible=false;
i=(i+1)%5;
mc[i].visible=true
でいいじゃん
>>413の時点で解決してるじゃん
全部非表示にした後じゃ、そのifどこも通らなくね?
どうでも良いけど
420 :
401:2012/02/26(日) 06:21:12.30 ID:QzLTKR1f
>>405 やはり名前を変えるしかないんですかね
もう少し足掻いてみますが他に手立てがなければそうします
>>406 抜け落ちてしまいましたが、Test():void、len:int です。
var len:int = this.objects.length; ←これでもエラーとなります。
>クラス名の後に()がついてっからだおおお
これはどういった意味でしょうか?
421 :
401:2012/02/26(日) 06:23:11.96 ID:QzLTKR1f
>>406 見直したら間違っていました。クラス名の()もミスです。
コピペしてるわけではないのでこうなっていまい混乱させてすみません。
クラス名の()が無くても、エラーとなります。
度々申し訳ございません・・・。
422 :
Now_loading...774KB:2012/02/26(日) 08:21:03.27 ID:Lkf+EnJk
>>418 A.addEventListener(MouseEvent.CLICK,Aclick);
function Aclick(event:MouseEvent):void {
mc[i].visible=false;
i=(i+1)%5;
mc[i].visible=true;
}
ってことですか?
423 :
Now_loading...774KB:2012/02/26(日) 08:44:02.26 ID:Lkf+EnJk
>>418 422です。スイマセン、できましたー。
424 :
Now_loading...774KB:2012/02/26(日) 09:26:05.06 ID:Lkf+EnJk
ん?[1]~[4]の順番に表示が切り替って
[4]まで行ったら次は[1]に戻るようにするにはどうしたらいいんだろ
>>421 var len:int = objects.length;//メンバ変数にthisはいらないんじゃん?
これでもだめならもうわからん うちの環境ではパッケージ名と被ってもおkだった
426 :
375,402:2012/02/26(日) 11:18:23.25 ID:A0at/yGx
>>403様
stage["square"][0].xにすると以下のエラーが出てしまいました。
ReferenceError: Error #1069: flash.display.Stage にプロパティ square が見つからず、デフォルト値もありません。
at test_fla::MainTimeline/moveSquare()
at test_fla::MainTimeline/frame1()
http://sky.geocities.jp/ameryamery/403.fla >>404様
this["square"][0].xにすると以下のエラーが出てしまいました。
TypeError: Error #1010: 条件は未定義であり、プロパティがありません。
at _403_fla::MainTimeline/moveSquare()
at _403_fla::MainTimeline/frame1()
http://sky.geocities.jp/ameryamery/404.fla >>408様
フレーム記述です。
var square:Array = new Array();をメソッドから外出しして、square[ 0 ].x = 100;に変えてみましたが、以下のエラーが出てしまいました。
TypeError: Error #1034: 強制型変換に失敗しました。SquareClass@354960b1 を Array に変換できません。
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at _404_fla::MainTimeline()
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at _404_fla::MainTimeline/addSquare()
at _404_fla::MainTimeline/frame1()
http://sky.geocities.jp/ameryamery/408.fla 何がいけないのでしょうか?
427 :
Now_loading...774KB:2012/02/26(日) 12:43:01.59 ID:IjtfA0TB
ボタンEを押した後はArrayの[0][1]がボタンGを押す度に順に切り替り
ボタンFを押した後はArrayの[2][3][4][5]がボタンGを押す度に順に切り替る
ようにしたいのでが、
G.addEventListener(MouseEvent.CLICK,Gclick);
function Gclick(event:MouseEvent):void {
arr[a+b].visible=false;
a=(a+1)%c;
arr[a+b].visible=true;
}
と記述し、
ボタンEを押したときb=2;c=4
ボタンFを押したときb=0;c=2となるよにしたのですが
E.Fのボタンを押してからBTAを押すとうまくいきません、
もう一回BTAを押していくと大丈夫なのですが。
すいません教えてください。
常駐して質問してる奴のサポセンみたいになってるなw
自分の頭で考えてからにしてほしいもんだ
>>425 うちはFlash Professional CS5でエラー出る
>>407がFlashBuilderでエラーでないらしいから環境の違いかもね
430 :
Now_loading...774KB:2012/02/26(日) 17:26:24.19 ID:/pJ926vy
FlashBuilder4.6です。
スタンドアロンFlashPlayerで表示するFlashムービーを作っているのですが
ウィンドウサイズを最低限UIComponent.minWidth及びminHeightより大きく
表示するにはどうすればよいでしょうか?
widthとheightを固定値にすればその大きさになってくれるのですが、
リキッドレイアウトを想定したデザインにしているため、
出来ればwidthとheightを100%から変えたくないのです。
431 :
Now_loading...774KB:2012/02/26(日) 18:33:41.33 ID:kPB8zu07
>>418理解しました。
mc[i].visible=false;
i=(i+1)%5;
mc[i].visible=true
これで順番にArrayに格納したムービークリップを
表示していけるのが分ったんですが、
逆順番に表示が難しい。
Aボタンを押すと[0]~[4]まで順番に表示を切換え
Bボタンを押すと逆順番に表示したいのですが
うまくいきません。
そうですか
>>431 理解したんなら二行目の意味よく考えれば応用できるだろ
ちょっとこの三行がなにやってるのか説明してみ
434 :
Now_loading...774KB:2012/02/26(日) 21:04:12.46 ID:kPB8zu07
iの値を1ずつ増やして
4のときは(4+1)÷5で0に戻してるのは
分るのですが、
4からi+1の値を減らしてくのかな?
うーむ。
スレチかもだけどAS3について勉強できる書籍教えてください
cs5.5mcかったらflash5ついてたしMX以来久々に触ろうとおもったらmcやボタンインスタンスに直接書けなくなってるしわけわからなくて
436 :
Now_loading...774KB:2012/02/27(月) 02:57:57.34 ID:l+BFSs+J
435
完璧にhtml5変換できるAS2のままの方がいいYO
AS2でも完全な変換は無理
438 :
Now_loading...774KB:2012/02/27(月) 09:12:10.77 ID:pxoBi0Rw
>>434 プログラミングに王道なし
キャッチボール(基本)もできないやつに外野フライ(応用)は捕れない。
王道ないなら、やり方に指示なんか出来ないはずだが
先人がかき分けた獣道があるよ
言語によって道が決まるんだから
獣道とは違う
442 :
Now_loading...774KB:2012/02/29(水) 06:11:52.55 ID:yk5bTvCS
ASでクライアントの能力を推定する方法を探しています。
CPUパワーやメモリ搭載量を直接知ることは出来ないので、1つの案として浮動小数点計算を
させて、手元のPCとの対比を考えています。
例えば、ある繰り返し計算(例えば10万回)を手元のPCが100msで終わったとしたら、これを基準
として、クライアントで同じ計算を行いその時間を元に知るというものです。
他に良い案はありますか?
アンケート
445 :
442:2012/03/01(木) 01:14:43.50 ID:H0TTFYG7
>>443-444 不特定多数の人が対象なので、一旦SWFを起動してもらって
環境に応じて挙動を変えるのが目的です。
一端SWF起動して、そこでアンケート
主に描画がネックなんだから、複雑な描画とかして
FPSとれば?
そもそも自動的に挙動変えなくちゃいかんの?
PCゲームとかのように、オプションで変更可にするほうがよさそうに思えるが
>>442 へぇ。面白いねそれ。俺もやってみようかな
100ms位じゃぶれが大きくてつかえない。
かといって10秒3回とかやられたら
その時点でそのSWF閉じるな。
バックグラウンドで何かやってるのとかも影響するから
結局利用者に選ばせた方が良いと思うんだが。
ActionScript3です。
public const hoge:Hoge = new Hoge(this)←こいつにthisを喰わせてやりたいのですが
そのままやるとうまくできません。どうやってthisを渡してやればよいでしょうか?
>>450 自己レス。なんかの思い違いだったようです。
普通にthis喰わせることができました
452 :
442&445:2012/03/01(木) 21:24:31.84 ID:S9m7fRjP
>>449 試しに50万回を10回やってみた(単位ms)
value0 = value1 = 0;
for(var idx1:int=0; idx1<500; idx1++){
for(var idx2:int=0; idx2<1000; idx2++){
value0 = value0 + Math.sqrt(value0 + Math.PI);
}
value1 = value0 + Math.sqrt(value0 + value1);
}
procTime= 78
procTime= 63
procTime= 78
procTime= 62
procTime= 63
procTime= 63
procTime= 62
procTime= 62
procTime= 63
procTime= 62
平均と回数= 65.6, 10
そんなにバラつきはなかった。
>>452 同じ事やってるから最適化が走ってるとおもう。
JITの影響を排除しないといけない。
かといってrndとかそれ自体がぶれるからなぁ。
とココまで厳密にやる必要があるのかも疑問だけどね。
stage3dとか使ってるなら、パフォーマンスに明確な差が出るから
やった方が良いと思うが。
454 :
442&445:2012/03/01(木) 21:49:11.05 ID:S9m7fRjP
>>453 どうも。
上は有効数字2桁だけど、3桁にするために500万回を10回やっても
(JITの影響か)大して変動は無かった。
procTime= 672
procTime= 671
procTime= 672
procTime= 688
procTime= 672
procTime= 672
procTime= 687
procTime= 672
procTime= 671
procTime= 672
(単位ms)
いや、計算量がだからJITの影響あってもいいのか。
で、それでFPSどのぐらいになるかを試してみて、
いろんなスペックでベンチとって当てはめるぐらいか。
いや、やっぱfillrateじゃないけど、グラフィックス描画でベンチしないと
あんまり意味無いな。
AS3です
コンストラクタをinternalに、グローバル定数をpublicにしたいのですが、
コンストラクタはpublicのみなので、擬似的?に実装する方法はないでしょうか
クラスをinternal、定数をpublicにすると、定数を見つけてくれません
なぜinternalにしたいかによるけど、コンストラクタにinternalなクラスのオブジェクト食わせるのが定石かな
>>458 ありがとうございます
見せたいクラスはpublic、そのpublicクラスがinternalクラスを食べ、
publicクラス.internalクラスと使う感じですかね
そのやりかたでやってみます
460 :
Now_loading...774KB:2012/03/04(日) 18:07:49.02 ID:AoE4Hu5+
秋元がどう動くかが気になる
誤爆すみません
>>459 ClassAコンストラクタにClassBオブジェクトを食わせる方法
new ClassA(new ClassB() );//ClassBはinternalなのでClassAコンストラクタを実行できるのはClassBが作れる、クラス内のひとのみ
ってことだけど実はnull食わせればコンパイルエラーは回避できちゃう
464 :
Now_loading...774KB:2012/03/05(月) 17:40:53.23 ID:1qpOi4Z2
cs3でAS3を使っています。
一つの画像を、別の何枚かの画像を使ってモザイクアート出来るようなライブラリ、
もしくは見本になるサイトってないでしょうか?
探したのですがなかなか見つからなくて。
よろしくお願いします。
466 :
464:2012/03/05(月) 19:33:10.86 ID:1qpOi4Z2
やりたいことはそういうことです!
具体的には、元々リンケージなりしてあるビットマップを使って、
ウェブカメラで撮影した写真を作るって感じなのですが。
グレースケールだったら結構簡単にできるとおもうけど。
469 :
Now_loading...774KB:2012/03/06(火) 02:05:22.27 ID:t2PavSx0
FlashCS4,AS3です。スレッドライブラリ「そうめん」の学習をしています。
※特に「そうめん」に限定された話しではないのですが、同一ASファイル内に2個以上の
サブクラスを書く方法で悩んでいます。
/* サブクラスの部分 */
import org.libspark.thread.*;
// クラスの呼び出し。 Aは親スレッドのクラス,Bはその子スレッドクラスです。
class A extends Thread{
override protected function run():void{
// スレッド A によってスレッド B を開始する
trace('Hello');
var b:B = new B();
b.start();
}
}
class B extends Thread{
override protected function run():void{
trace('World');
}
}// ここまでサブクラス
470 :
469の続き:2012/03/06(火) 02:05:54.65 ID:t2PavSx0
こうしてメインクラスで var a:A = new A(); a.start(); とすると a が未定義プロパティ扱いされます。
ところが、class B の部分をコメントアウトして無効化し、呼び出しもしない場合はすると問題なく動作します。
ASファイル全体の構成は
package{
[ メインクラス ]
}
[ 上記のサブクラス群 ]
の順番です。 どうすべきでしょうか?
>>468 swf単体では無理
OAuthでググれ
OAuth使うにしたってユーザーが書き換えられずに勝手につぶやかれるスパム機能は考えなおせマジで
>>469 オーバーライドしてvar b:B に書き換えたんなら a:Aは未定義になるに決まってんだろ
クラスファイルのルールなんかは把握してる?
クラスファイル内には何個でもクラス定義できるがパッケージ外に定義したものは外から参照できず
同じファイルのクラスからじゃないと無理
パッケージ内にはパブリッククラス1個しか定義できない 関数、変数名も同じで同名なのは1個だけ
あー もしかしてサブクラスをパッケージ外に定義しても使えないって話かな?
外部から呼べないから無理だよねw 試してないからわからんが
474 :
469-470:2012/03/06(火) 11:02:23.68 ID:v0s8nh6j
>>472 さんきゅう。
「サブクラスをパッケージ外に定義しても使えない」という様子です。
ググるとCS4ではメインクラス以外には複数のクラスを設定できないとのことなので、
ttp://fumiononaka.com/TechNotes/Flash/FN0909001.html CS5で実行するとOKでした。 念のため、メインクラス部をコピペしておきます。
package{
import flash.display.*;
import org.libspark.thread.*;
public class MyDocumentClass_04a extends Sprite{
public function MyDocumentClass_04a(){
if (Thread.isReady == false) {
Thread.initialize(new EnterFrameThreadExecutor());
var a:A = new A();
a.start();
}
}
}
}
// この下に上記のサブクラス群
475 :
466:2012/03/06(火) 11:20:32.85 ID:/xfsZyU/
>>467 グレースケールでも良いのですが、とにかく画像のピクセルの解析?なども
全く分からなくて手がつけられません…。
ライブラリでも参考でもいいので無いかなと探しているのです。
気になったからこっちでも調べてみた
> override protected function run():void{
> override protected function run():void{
パッケージ外のクラスメソッドにアクセスするにはpublicじゃないとエラー出たな
publicに直してみ 親のクラスのも
478 :
469-470:2012/03/06(火) 11:36:17.54 ID:v0s8nh6j
>>476 public class A extends Thread{
public class B extends Thread{
とすると、
1114: public 属性はパッケージ内でのみ使用できます。
となり、パッケージ内に移動すると
>>472的に
5006: ActionScript ファイルには外部から表示可能な複数の定義は使用できません
というエラーになります。
やっぱCS5でないと駄目っぽいです。
ずっと勘違いしてたすまん やりたい事は
パッケージ外のプライベートクラスから他のプライベートクラスのインスタンス生成 って事だよね?
CS5.5でも実行されなかった(エラーは無し) 継承有りでも無しでも同じ エラーが出ないのが気持ち悪いな
結論:複数クラス定義は基本的に非推奨だからやめた方が吉 パッケージ外には関数だけにしとけ
480 :
469-470:2012/03/06(火) 12:09:40.60 ID:v0s8nh6j
すみません。FileReferenceのsaveを使ってローカルにファイルを保存しているんですが、この時表示される選択ウィンドウをブラウザないしFlashの中央にする事って出来ますか?
中央でなくても位置指定の方法がわかれば教えてください。
下のようなグリッドを作ったのですが、ヘッダの境界線の左側に別に白い線が表示されてます。
これって何でしょうか? 消せませんか?
<mx:DataGrid textAlign="center" borderColor="#5652AF" headerColors="#5652AF" color="#B6D7EB"
horizontalGridLineColor="#B7BABC" verticalGridLineColor="#5652AF">
<mx:columns>
<mx:DataGridColumn headerText="日付"/>
<mx:DataGridColumn headerText="時刻"/>
</mx:columns>
</mx:DataGrid>
483 :
481,482:2012/03/06(火) 16:44:46.23 ID:GPnTKBOo
すみません。書き忘れてましたが、AS3です。FLEX3.5でやってます。
484 :
464:2012/03/06(火) 18:36:44.21 ID:/xfsZyU/
>>477 ありがとうございます。
そのサイトは見ていたのですが、ようは、 new flash.display.BitmapDataを作って
置き換えている部分を、任意のBitMapにすればいいのではとは思ったのですが、
そこをどうすればいいのか…
すみません。ややこしいのですね。
485 :
Now_loading...774KB:2012/03/06(火) 19:54:30.14 ID:EhOs+/Lo
処理速度を計算するときに何万回実行して〜ミリ秒って書いてあるけど、1万回だったら1回処理する時間は1万分の○ミリ秒ってこと!?
487 :
Now_loading...774KB:2012/03/06(火) 22:17:25.60 ID:JEqpKhXB
すいません
loaderで読み込んだBitmapをアニメーションさせたいんですけど
どこかにいいソースコードありませんか?
MovieClipだと重くなるので同じことをBitmapでやりたいのですが
488 :
Now_loading...774KB:2012/03/06(火) 22:37:03.96 ID:wRPJ8PVM
shapeのアルファを1から減らしたときに
描画の重なった部分が濃くなってしまうのを防ぐにはどうしたらいいのでしょうか?
>>488 alphaってのは透過させたい時に使うもんだ
単に薄くしたいなら描画する色を薄くするべし
490 :
Now_loading...774KB:2012/03/07(水) 19:52:45.63 ID:kc+3J2/G
FlashCS5,AS3,WinXP-Pro
ttp://www.libspark.org/htdocs/as3/thread-files/documentを参考にスレッドライブラリー 『そうめん』の使い方を勉強しています。
この『6. 割り込み機構』の2項目「外部ファイルを読み込みとキャンセルボタン」で実際に
割り込み(キャンセルボタン)ボタンをStageに配置しました。
外部テキスト(440KB)を読み込ませる途中でキャンセルボタンを1回押しても反応が無いので、
再度押すとCS5が落ちました。
ASは文字コードの部分以外はほぼHPのまんまですが、皆さんの中でこれを試された人は
いますか?
※必要とあらば手元のファイル一式をZipでUpできます。
アドバイス願います。
※テキストファイルの読み込み自体はOKのようです(2KB程度のテキストで検証)
※HPのサンプルには文字コード用の System.useCodePage = true; が無いので
override protected function run():void{
System.useCodePage = true;
としました。
491 :
Now_loading...774KB:2012/03/07(水) 20:51:15.02 ID:G9/qLnFN
>>486 えっ!?そんなに速いの!
趣味でホームページにFLASHの簡単なゲーム作ろうかなって思って勉強してて
なんか重いイメージがあったから処理を的確に
最適なものをしていかないと行けないと思ってたんだけど
ある程度動くのかなー、
着せ替えゲームみたいなのにしようと思ってるんだ。
でも描画処理に時間かかるのか。
とにかくAS3うまく書かないとスゴい遅くなるイメージ。
>>491 デバイスのスペックと処理ないようによる
ゲーム系は重たくなりやすいから気をつけたほうがいい
>>491 着せ替えゲームのようなもので、描画処理が間に合わないとかまずない。
よほど古いスペックのデバイスでもない限り、描画速度は十分。
494 :
Now_loading...774KB:2012/03/08(木) 12:13:29.18 ID:REg53ZMI
そっか。
ちょっと安心した!
生意気にも去年でたMacBookPro使ってるから、他の環境ではどう動くか気になってた。
描画処理って線>面>ビットマップって載ってたよ、イラレでイラスト書いたとき線つけてしまった。
素人が普通に作ったFlashなら描写余裕
素人がちょっと調子に乗っちゃって変なことやると重くなる
496 :
Now_loading...774KB:2012/03/08(木) 23:00:39.08 ID:rfoK0QZq
質問です
actionscript3のmxml
<s:Application xmlns:fx="
http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
xmlns:local="*">
<fx:Declarations>
<local:aaa id="class1"/>
<local:bbb id="class2"/>
</fx:Declarations>
<s:Button label="class1 start" id="button" click="class1.start(text.text)" />
<s:Button label="class2 start" id="button2" click="class2.start()" y="30" />
<s:TextArea text="sss" id="text" x="10" y="100" />
</s:Application>
↓へ続きます
497 :
Now_loading...774KB:2012/03/08(木) 23:01:03.20 ID:rfoK0QZq
aaa.as
package {
import mx.core.IMXMLObject;
public class aaa implements IMXMLObject{
public function initialized(document:Object, id:String):void {
}
public function start(string:String) :void
{
data:String = string+"です"; ←これ
}
}
}
bbb.as
package {
import mx.core.IMXMLObject;
public class bbb implements IMXMLObject{
public function initialized(document:Object, id:String):void {
}
public function start() :void
{
ここでaaa.asの変数dataを参照したい
}
}
}
のように、ボタンを二つ作りそれぞれにclickを指定するとき、
button1のclickをしたときに作った変数やオブジェクトを、
button2をclickをしたときに使用したいのですが、
どのようにするのがいいのでしょうか?
バインドというのは見つけたのですが、actionscript内だけでは対応はできないのでしょうか?
なんのために IMXMLObjectをインプリメントしているかわかってるんかな??
> ここでaaa.asの変数dataを参照したい
これは無理。
クラスaaaのメンバ変数ではなく、関数内でのみ有効な変数だから。
MXMLを介在させることを前提にするなら、aaaに実装したinitializedの引数document
がそのMXMLのインスタンスだから、それをつかってアクセスすればいい。
微妙に間違ってるな。
> MXMLを介在させることを前提にするなら、aaaに実装したinitializedの引数document
> がそのMXMLのインスタンスだから、それをつかってアクセスすればいい。
MXMLを介在させることを前提にするなら、bbbに実装したinitializedの引数document
がそのMXMLのインスタンスだから、それを保存しておいてアクセスすればいい。
document.class1でaaaのインスタンスにアクセス出来る。
phpがApacheに正しく組み込まれているか確認してみた?
>>501 php単体だと平気だったので(echoとかで中身が表示されてる)
通信の仕方が悪いのか、確認の仕方が悪いのか……
> (phpの本文が出力されている)
って時点で、httpヘッダがオカシイわけだしねぇ。
リクエストのURLをブラウザにそのまま張るとどうなるの?
$var='野獣先輩';
echo "&var=".$var;
apache起動後アドレスバーにphpファイル名を入力すると、
ブラウザ上には野獣先輩と表示されています。
ところがムービープレビューでtraceしてみると.$var. ?>みたいな事が表示されます。
うーん。全部みんとわからんが、URLじゃなくてファイル名ってところが気になる。
ゲームの攻撃エフェクトを作りたいのですが、探しても無くて困ってます
"エフェクト"だと画面効果ばかりヒットしてしまって
エフェクトとかパーティクル以外でそういうものが検索できる言葉ってありますか?
>>506 それで表示されるんなら大丈夫やね。
traceした結果が、スクリプト全部出てくるほうがまだわかりやすいけど、
一部しか出てないのかな?
ムービープレビューじゃなくて、一度デプロイしてみてためしてみたらどうだろう。
PHP側の文字コードの話じゃないの。
それだったら文字化けしたとか、結果がちがうくない?
?>が表示されてんだからphp側の問題じゃないの?
phpコードさらさない限りわからんけど
本文は
>>500まんまです。
UTF8で保存しています。
516 :
Now_loading...774KB:2012/03/09(金) 20:42:39.92 ID:qxYGKkrE
517 :
Now_loading...774KB:2012/03/09(金) 22:24:01.72 ID:6NqzAfxe
>>515 <?php
$a=100;
$b=200;
print("&a=".$a."&b=".$b);
?>
ムービープレビューでtraceを見てみると
a=".$a."
b=".$b);
?>
と表示されてしまいます。
>>517 本当にphpサーバー動いてる?
拡張子.phpになってる?
>>518 拡張子はphpですし、apache起動後にアドレスバーからURL入れて表示させる分には上手くいってるみたいです。
両ファイルともhtdocsに入ってます
。
はじめの方の書き込み見てないんだろうな・・・。
デプロイですか?
phpに触れるのは始めてなのでよくわからないのですが、
デプロイするにはカピストラーノ等を導入しないといけないのでしょうか。
ちなみにメモ帳で書いてます。
as以外は初めてなのですいません。
>>519 phpが動いてないか直接ファイルをよみこんでるかなんだよな
>>523 FLASH側ではsendAndLoadで読み込んでます。
flash初心者です
ある動作をランダムに行いたいと思っているのですが、
どうすればいいのかわかりません。
ある動作をランダムというのは、
例えばシンボルが4つあり、それを下(ステージ外)から
ランダムに泡のようにうようよと浮かび上がってくる感じです。
>>525 先ず、制作環境を書きましょう。
あと「ActionScript 泡 浮」で調べよう。
>>526 すいません、忘れてました
でも、言われた通り検索してやってみるとイメージ通りだったので解決しました
どうもありがとうございます
またすいません、先ほど質問した者です。
AS3で、
あるボタンを押すと指定された画面内に表示される動作をしたいと思ってるのですが、
この場合ターゲットパスで良いのでしょうか?
その画面が一枚絵ではなく、色々動作を加えたものなのですが…
>>527 サーバーに上げても無理でした。
どうやらflashがtxtとして読み込んでるみたいです。
プロパティを見るとphpなのに、どうなってるんでしょうか?
ちなみにコード
flash側
var lv = new LoadVars();
//PHPと通信
lv.sendAndLoad("test.php", lv);
lv.onLoad = function(success:Boolean) {
//PHPとの通信完了後の処理
if (success) {
trace("接続成功");
//----- 結果取得 -----//
trace("a="+this.a);
trace("b="+this.b);
} else {
trace("接続失敗");
}
};
php側
<?php
//Flashからの引数
//$money = $_POST["money"];
//$syohin = $_POST["syohin"];
$a=100;
$b=200;
print("a=".$a."b=".$b);
?>
apacheも起動してますし、同じファイルに入れて実行してます。
php単なら問題無く動作しています。
>>533 自鯖に上げたところ、値を読み込むようになったのですが
やはりローカルで実行するとphpをtxtと思って読み込んでしまうみたいです。
これはapacheが悪いのでしょうか?
なんでもないです。できました。ありがとうございます。ありがとうございます。
537 :
Now_loading...774KB:2012/03/15(木) 18:21:10.63 ID:uvKQMrOe
複数の画像ファイルを読み込んで画像の切り出しをしたいのですが
上手くいきません
ひとつの画像ファイルだけならなんとかできたのですが
どこか参考になるサイトなどないでしょうか?
538 :
Now_loading...774KB:2012/03/16(金) 04:31:53.26 ID:vIOh0udf
Objectを宣言する際に、キーに変数を使用したいのですがどうしたらいいですか?
↓やろうとしていること
-------------------------------------------
var varKey:String = 'key1';
var obj:Object = {
varKey : 'aaa', // ← obj.key1
key2 : 'bbb' //← obj.key2
};
trace(obj.key1, obj[varKey], obj.key2); // 'aaa', 'aaa', 'bbb'
-------------------------------------------
どなたかお願いします
obj宣言した次の行に obj[varKey]='aaa' で良いんじゃないかな
540 :
538:2012/03/17(土) 02:48:23.06 ID:8gzPPybX
>>539 回答ありがとうございます。
そのやり方で可能なのは知っているのですが、
今回訳あって宣言時に使用したいのです。
訳あっての訳を書けば
どーせくだらない理由なんだから
やる意味がないことが明らかになるぞ
542 :
538:2012/03/17(土) 12:17:51.50 ID:8gzPPybX
技術的に
の言葉の使い方がおかしいな
544 :
538:2012/03/17(土) 13:32:16.65 ID:8gzPPybX
>>543 ActionScript(ちなみに3です)ではこのような使用は不可能なのでしょうか?
例えばPHPでは(連想配列になりますが)下記のようにできます。
$varKey = 'key1';
$arr = array(
$varKey => 'aaa',
'key2' => 'bbb'
);
var_dump($arr); //array(2) { ["varKey"]=> string(3) "aaa" ["key2"]=> string(3) "bbb" }
545 :
538:2012/03/17(土) 13:32:50.93 ID:8gzPPybX
訂正:
var_dump($arr); //array(2) { ["key1"]=> string(3) "aaa" ["key2"]=> string(3) "bbb" }
546 :
Now_loading...774KB:2012/03/17(土) 15:15:15.77 ID:Eq/GnJAf
どんな訳だよ。
気になって夜も眠れないから教えろよ。
とりあえず↓で出来たぞ
var obj:Object;
var prop:String = "key1";
obj = { (prop.toString()):1 };
548 :
538:2012/03/17(土) 16:47:26.98 ID:8gzPPybX
>>547 ありがとうございます!!!!!
無事に解決しました!
くだらなすぎわろた
マジで訳を聞かせてよ
550 :
Now_loading...774KB:2012/03/19(月) 09:15:40.71 ID:SPAuX5Jr
ループ中にtrace()を使うと時々ログが飛ぶのですが何か対策はありますか?
551 :
Now_loading...774KB:2012/03/19(月) 10:33:23.66 ID:SPAuX5Jr
自己解決しました
tracerabbitというソフトを使って見ていると正常にログが書き出されませんでした
みなさんご注意を
552 :
Now_loading...774KB:2012/03/20(火) 21:09:13.64 ID:KbmB98KR
Red5やFlashMediaServerについての質問はこちらでいいでしょうか?
NetConnection.callでサーバーのApplicationクラス名を指定して呼び出すときは
そのクラス名から作られたオブジェクトを呼び出しているということなのでしょうか?
だとすると、newもせずに自動でそのクラスからオブジェクトが作られたと
いうことになると思うのですが、それではオブジェクトは自動で作られたその一つしか
存在しないことになるので、実質的にはインスタンスオブジェクトというより静的クラスのように
なると思うのですが、そういう認識でいいのでしょうか?
よくありません
554 :
Now_loading...774KB:2012/03/20(火) 21:57:35.31 ID:KbmB98KR
>>553 すみません、つまりcallは何を呼び出していて
それはどのように作られているものなのでしょうか?
実験してみるとstatic変数もインスタンス変数も両方効いていたので
インスタンスのオブジェクトではあると思うのですが、だとすると自動で作られているということは
一つしかサーバーの中には存在しないわけなので、
サーバーが起動したときに
「Application名A Application名A = new Application名A();」のように
クラス名と同名のオブジェクトが作られていてそれをcallで呼び出すという
仕組みなのかと考えました
よろしくお願いします
すみません、下から3行目は「それをcallで呼び出す」ではなくて
「そのオブジェクトのメソッドをcallで呼び出す」でした
556 :
Now_loading...774KB:2012/03/22(木) 18:30:35.51 ID:1U/k6bQx
基本的なことなんですけど、MXMLで右側にだけ
borderをつけるにはどうすればいいんでしょうか?
>>556 バージョンはFlex4以降?
どっちにしろHTMLとCSSのようにまでは簡単じゃない。
558 :
Now_loading...774KB:2012/03/23(金) 06:22:35.54 ID:QSc0utZX
>>557 Flex4です
こういう場合はどうするのが定石なんでしょうか?
そもそもそんな事したいって思ったことが無いんだよね…。
skin設定でいけると思うけど、ちょっとやってみないとわからん。
気が向いたら調べるw
AC3で動画の表示に関する質問です。
初め、画像クリックすると動画が始まり終わると、別のページへ移るやり方なんですが、
その動画をFlashではなくyoutubeを使ってブラウザ全体に写るよう
表示させたいのですが、方法ありますか?
質問なんですが、
例えばステージ状に配置している、MCの1フレーム目にAS3でaddEventLIstenerを記述しているとして、
タイムラインをすすめて、そのMCをステージ上から消す(空白キーフレームにする)と、
removeEventLIstenerを使う事なく、addEventLIstenerが消えるんでしょうか。それともずっと残っているのでしょうか。
addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
function onEnterFrameHandler(event:Event):void
{
trace("まだある。");
}
みたいにすれば判るんじゃないかとおもったり
イベント自体は残ってるんじゃない? ただし絶対に機能しないイベントなんだろうが
なんか確かめる方法があったな.hasEventListenerとかwillTriggerとか
ヘルプ見ながら確かめてみれ
そっか中じゃなくて親のタイムラインの1フレーム目ですか。 どうなるんだろ
参照されている限りは残るだろうね
>>562のように
mc内のENTER_FRAMEのfunctionにtrace("まだある。"); を差し込んだら、
まだあるけどnullだよまだあるけどnullだよまだあるけどnullだよ…
と出ました。まだ残ってた。
ENTER_FRAMEのfunctionがいくつかあって、重くなるのが嫌なので、
mcを消すときに同時にremoveしておきます。
ありがとうございました。
on(rollOver){m = true;} //マウスがムービークリップに触れた時
on(rollOut){m = false;} //マウスがムービークリップから離れた時
on(dragOut){m = false;}//マウスがドラッグしたままムービークリップから離れた時
onClipEvent (load) {
this._xscale =100;
this._yscale =100;
}
onClipEvent (enterFrame) {
if(m == true){
preMouseX = curMouseX; //preはマウスが移動する前の座標、curはマウスが移動した後の座標
curMouseX = _root._xmouse; //curに現在のマウスの座標を入れることによって、↑のような働きをする
preMouseY = curMouseY;
curMouseY = _root._ymouse;
this._xscale = 100+(curMouseX - preMouseX)/20; //マウスが移動する前と後の座標を利用して、絵の大きさを変える
this._yscale = 100+(curMouseY - preMouseY)/20; //20は調整値
}
//マウスがムービークリップから離れた時、絵の大きさを元に戻す
if(m == false){
this._xscale =100;
this._yscale =100;
}
AS2で記述した「ムービークリップにマウスで触れると、マウスの動きに合わせてムービークリップの絵がプルプルする」スクリプトなのですが
これをAS3になおすとしたらどうやって記述すれば良いですか?
具体的には、AS3にはdragOutに相当するマウスイベントが見つからないのと
AS3になってscaleの処理が変わってしまって
this._xscale = 100+(curMouseX - preMouseX)/20; では挙動がおかしくなってしまうので困っています
this.scaleX = 1 + (curMouseY - preMouseY)/2000;と記述してみたりして調整値等をいじっているのですが
なぜかAS2の頃の挙動が再現できません
>>567 丸投げ的な困った質問だな onって事はクリップアクション使ってんだろ?
AS3でもクラスファイル使わずにタイムラインに全部書く手法でも可能なんだけど…
ドラッグのとこだけ書くから後はヘルプ見たりググッたりして自分で考えるんだ
対象MC.addEventListener( MouseEvent.MOUSE_DOWN, buttonOn );//マウスボタンON時のイベント登録
対象MC.addEventListener( MouseEvent.MOUSE_UP, buttonOff );//OFF時
function buttonOn( evt:MouseEvent ):void{
evt.target.startDrag( false );
}
function buttonOff( evt:MouseEvent ):void{
evt.target.stopDrag();
}
571 :
Now_loading...774KB:2012/04/03(火) 12:09:26.49 ID:+oS9DjKE
640x480より上のサイズでウェブカム入力しようとすると表示される比率が狂う事があるんですがそういう人いませんか
条件/対処方が分からず困ってます
例えばこんな感じの最低限のソースとかで 1280x720の中で更に横に伸びちゃったりとか
var camera_obj:Camera = new Camera();
camera_obj = Camera.getCamera();
camera_obj.setMode( 1280, 720, 30, true );
var _video:Video = new Video( camera_obj.width, camera_obj.height );
_video.attachCamera( camera_obj );
addChild( _video);
横に伸びるなら横を潰して4:3にでもすればいいんじゃないのと思うんですが、
全ての環境でなるわけじゃないので正常に表示出来てる場合でも潰してしまうと
そっちは縦に伸びてしまいます。
FlashPlayerのバージョンによる仕様の違いではなさそう
572 :
Now_loading...774KB:2012/04/03(火) 19:36:26.55 ID:RyrVcMoW
HTTPService使ってレスポンスヘッダ取得する方法教えてください。
PHP
header("X-XXX: 200");
〜〜〜〜〜〜〜〜
private function getResult(event:ResultEvent):void
{
//↓ここで空になってます。
Alert.show("trace", ObjectUtil.toString( event.message.headers ));
}
〜〜〜〜〜〜〜〜
<mx:HTTPService id="contactService"
url="test.php"
contentType="application/x-www-form-urlencoded"
method="POST"
resultFormat="text"
result="getResult(event)"
<mx:request xmlns="">
<name>{contactName.text}</name>
</mx:request>
</mx:HTTPService>
基本質問スレがgdgdなのでこちらでw
FlashPlayer11にアップグレードしたらFFでFlash内アンカーが効かなくなった。
シンプルなものを作ったりして、色々検証してみたけど全く飛んでくれない。解決策ないかな。
デグレードは無しの方向で。
574 :
Now_loading...774KB:2012/04/06(金) 11:27:43.89 ID:K98N1uph
SimpleButtonで
・デフォルトアクション(up/over/downの切り替え)をさせたい
・でもマウスイベントは受け取らせたくない
んだけど方法を教えれ、お願いします。
>>574 up / over / down 切り替えそのものがマウスイベントだよ。
よく質問の意味が分からないんだけど、ポインタを指マークにしたくないということ?
>>575 そうではなくて、ボタンのステートは変えたい(=デフォルトアクション)けど、
クリックへの反応はしたくないし、イベントを受けとりたくもないってこと。
mouseEbable=falseにすればイベントを受け取らずに済むけど、
デフォルトアクションもしなくなるよね?
じゃぁってんで、enabled=trueにして、mouseEnabled=falseにしてみたけど
enabledはmouseEbabledに包含される(マニュアルにもあるし、実際に試したらそうだった)
から、全然意味ないじゃーん、となったわけ。
こんなことでMCなんか作りたくないし、ましてステートを変えるだけのために
MOUSE_OVERとかのイベントを張るなんてアホらしいっしょ?
なので、サクっとスマートな実装ができないものかなと、ここのエロイ人に聞いたわけさー。
マウスに反応してなにか変えるためにはマウスイベント必須だし、SimpleButtonも内部でそうしてる
そのためにInteractiveObject継承してる
つまりアホらしくなく正当だしサクッとスマートな実装がSimpleButton
なにが嫌なの?
イベントが伝わると不都合があるとかならそれなりの対処法はあるけど
単にイベントリスナ書くのが嫌とかなら無理
できないのかー。
ステージにaddChildしたSpriteの中にいろんなクリック対象があるんだけど
それぞれにいちいちaddEventListener()するのはバカみたいだからさ、
SpriteにだけaddEventListener()して、Event.targetで振り分けたかったんだよね。
でも、中のSpriteがさらにSimpleButtonを入れ子にしていて、
Spriteのデータを取りたいんだけど、SimpleButtonがイベントを受け取っちまうでしょ?
で、Event.targerがSimpleButtonになるでしょ?
これで親を取るのは、Event.target.parentとかになるけど、それは美しくないと思ったのよ。
イベント伝播を制御するのが本筋じゃん? ってな具合に。
まぁできないならしょうがない、地味にやるわー。ありがほー。
mouseChildrenがお望みのプロパティじゃねーかな
俺もそう思ったけどmouseChildrenがfalseだと中のSimpleボタンの表示が変わらない疑惑
そもそもtargetにしてまとめてとってきて分岐ってのが本筋から外れてると思うのでparent使っても同じ筋なんじゃね
>>578 お前さんの考え方そのものが間違ってる
>それぞれにいちいちaddEventListener()するのはバカみたいだからさ、
まずこれの時点でおかしい
>これで親を取るのは、Event.target.parentとかになるけど、それは美しくないと思ったのよ。
いや、それ以外の方が美しくなくなるけど
ていうかかにがやりたいの?
で、軽くエスパーすると
useCaptureをtrueで望みの処理が出来るんではないかな
けど考え方を改めた方がいいと思う
583 :
Now_loading...774KB:2012/04/07(土) 16:37:11.55 ID:mq81Q+5R
すみません。ActionScriptの文法について質問です。
var a = new ClassName();の他に
var a = ClassName();という使い方があるのでしょうか?
今直しているソースで下のような書き方が有るのですが…。
584 :
Now_loading...774KB:2012/04/07(土) 17:01:13.44 ID:mq81Q+5R
すみません。言葉足らずでした。
var file:FileReference = FileReference(event.target);
という書き方です。文法的にどういう意味になるのでしょうか。
型のキャストだな
586 :
584:2012/04/07(土) 18:23:33.68 ID:mq81Q+5R
ああああああああそういうことか・・・・
(ClassName) object というJava式になれていたので全く気づきませんでした。
ありがとうございます。
as3の質問です
問題に解答するテキストフィールドに答えを書き込んで、答え合わせのボタンを押して正否を判定するクイズゲームを作っています
正否を判定する条件に
if (kaitou.text == "あいうえお")
と記述しているのですが、例えば答えが「あいうえお」だとして、「あいう」でも正解にしたいのですが
if (kaitou.text == "あいうえお" || kaitou.text == "あいう")
以外の記述方法はありませんか?
できれば「いうえ」とか「うえお」でも正解にしたいので、模範解答に対して部分一致でも正解にしたいのです
それとも地道に正解を一つずつ追加するしかないのでしょうか
Stringにパターン一致探すメソッドがある
正規表現学べ
ありがとうございます。どういう用語で検索して調べれば良いのかわからなかったので助かりました
>>589 公式リファレンスのStringクラスのところ見ると求めてるものが見つかると思う
591 :
Now_loading...774KB:2012/04/08(日) 21:38:59.05 ID:dU8wnbdg
592 :
Now_loading...774KB:2012/04/10(火) 21:48:49.05 ID:9xuuTtsJ
どうやらIMEの設定が不足していたみたいです。
iBus flashで検索して設定をちゃんと書き込めば直りました。
AS3、flashdevelop
画像をバラバラにしたいです
shapeに四角形を描いて、それをガラスが割れたみたいにバラバラにして
破片ごとに新しいshapeかbitmapdataを作成する、ということをしたいですのですが
四角に切り抜くするサンプルは見つかったのですが
好きな形に切り抜く方法が分かりません
今考えている代案は、最初からバラバラな形で描くと言うものですが
後々は画像にも同じことをしたいと思っているので微妙なところです
よろしくお願いします
maskで好きな形に切り抜けばいいんじゃね
>>595 ありがとうございます!
maskで探したら良さ気なサンプルが見つけられました
597 :
Now_loading...774KB:2012/04/17(火) 20:28:17.84 ID:9UNzoBPd
as3でFlash名の中にYouTubeの動画を表示したいのですが、
何かいい方法はないでしょうか?
598 :
Now_loading...774KB:2012/04/17(火) 20:31:10.06 ID:9UNzoBPd
>>597 Flash名の中に ではなくて FLASHの中にでしたすみません
600 :
Now_loading...774KB:2012/04/20(金) 01:02:09.73 ID:6xcaOgq0
601 :
Now_loading...774KB:2012/04/20(金) 16:10:25.06 ID:m0RoUjJO
しかしほんと過疎ったね
ほんと終わりそう
>>599 ありがとうございます。
紹介されたサイトを参考にして何とか再生まではできたのですが
このプレイヤーに再生停止等のボタンを付けることは可能でしょうか?
何度も質問すみません
FlashCSとかなら、動画プレイヤーのコンポーネントなかったっけ?
>>601 あいぽんとかAndroidとかの開発に行っちゃったんじゃない?
605 :
Now_loading...774KB:2012/04/23(月) 16:00:17.82 ID:hszY04Nm
FLASH CS5.5
Action Script 2.0
ムービークリップに、インベーダーのような動きをさせるスクリプトを打ちたいのですが、全然分かりません
ある程度できたのですが、
・集団の端が画面の端に着くと、一段下に下がる
・数秒に一回インベーダーがビームを打つ
の2つがどうしてもできません。
誰か教えてください。
定期的にイベントを発生させるのは setInterval関数 でやればいいんじゃないか
>>605 本当のインベーダーみたいに砲台で打つとインベーダー消せたりするの?
それが無いんだったら簡単。
あるんだったら、残りのインベーダーを配列管理して、最左、最右のインベーダーの位置を
イベント毎に調べて、それぞれ最左、最右にいった時にY軸のプロパティ値を更新するということが必要
取りあえずどっち?
608 :
Now_loading...774KB:2012/04/23(月) 16:36:12.34 ID:hszY04Nm
>>607 消せるものを作る予定です。
それと、Action Scriptの勉強は、本でするのと、webサイトでするののどちらが良いですか?
609 :
605:2012/04/23(月) 17:31:11.59 ID:WkS8XlBv
>>608 勉強は本が良いです。
ネットで十分とかいう人いるけど、本は編集されているから、
自分のレベルに合わせて順繰りに学べるから良いです。
ただ、そのとき知りたい情報では無いことまで学ばないといけないので時間のない人には向きません。
ネットはピンポイントに知りたい情報にたどり着くことができる可能性があるのだけど、
自分のレベルに合っていないサイトだと何書いてあるのか判らないことがあるのでストレスがたまる。
自分の時間と経済状態に合わせて好きな方を選べば良いと思う。
ちなみに、どうしてAS2なの?
今、AS3が主流だから、AS2の情報探すの本もWEBも面倒だよ。
AS3で開発の方が良いと思う。別に難しくないよ。
取りあえず、オススメのサイト
つ
ttp://hakuhin.jp/as.html
610 :
Now_loading...774KB:2012/04/23(月) 17:35:28.43 ID:hszY04Nm
>>609 やっぱ本が良いんですね。
このサイトを見て、AS2の方が簡単そうだったので、2を使い続けているだけなんですけど・・・
やっぱりAS3の方が良いですかね?
>>610 AS2.0のメリット?
・AS2.0は、アバウトな部分があるので、ある程度適当にやっても動く
AS2.0のデメリット
・AS3.0より遅い
・AS3.0よりできることが少ない
・AS3.0ほど充実したライブラリがこの先望めない
・AS2.0使ってた人も、3.0に移行してしまって、今更2.0の質問をしても
答えがすぐに返ってこない可能性がある
・上記の悪条件に辟易してあとから、やっぱAS3.0にするわ!と思ったら
作り直し、勉強し直しになる
ASいつまで持つんだろう
CS6から、Flash Builderがマスターコレクションのみにバンドルになってしまった
凝ったものつくらないのならAS2でいいんでね
AS3の方が良いよ。
C#の文法にも似ているから、Unity3Dとかでゲームつくりたいってなった場合、
移行のための学習コストが低い。
また、便利なライブラリー群もAS3のモノが多いし
615 :
Now_loading...774KB:2012/04/24(火) 17:06:35.88 ID:gG7x7Ryv
AS2のメリット
Google Swiffyでほぼ完璧にHTML5変換してもらえる
↑これはでかい
as2とjsはおなじもんだしなー
同じって、何が!?
いくーま的にだろ
ごめん結構違ってた!w
620 :
Now_loading...774KB:2012/04/26(木) 13:16:20.95 ID:tMpu8YUq
as3について
TextFieldのinputでキャレット位置を操作したいんですが、
read onlyのcaretIndexしかないようで。
特定のkeyboardEventでTextFieldのキャレット位置を行頭に持って来たいんですが
何か方法ありませんかね?
頭ならフォーカス外してフォーカスし直せばいけんじゃね?
622 :
Now_loading...774KB:2012/04/26(木) 18:37:32.18 ID:9/JqxxPn
て
623 :
Now_loading...774KB:2012/04/26(木) 18:38:35.54 ID:tMpu8YUq
>621
ありがとうございます。
focus外し直すと、fieldはfocusされるんですがキャレットが表示されません...
「キャレットを行末に」等の制御も行いたいのですが、
方法が見当たりません。
Flashだとむずかしいんですかね?
624 :
Now_loading...774KB:2012/04/26(木) 19:23:31.34 ID:ZiMV1wx+
ちょっと質問させてください。
AS3でウェブページへのリンクをしたいんですが、どうもうまくいきません。
meisai_btnを押すとヤフーへ飛ぶようにしたいのです。
// イベントを設定
meisai_btn.addEventListener( MouseEvent.CLICK , onClick );
// 画面クリックをするとonClickが動作するイベント
function onClick ( event:MouseEvent ) {
// URLRequestを設定
var url:URLRequest = new URLRequest( "
http://www.yahoo.co.jp/" );
// 実際にページに飛ぶ
navigateToURL( url );
}
どこが間違っているか教えてください。
>>623 setSelection(beginIndex:int, endIndex:int)でbeginIndexとendIndexを同じ値渡せば出来る
626 :
Now_loading...774KB:2012/04/27(金) 10:32:34.15 ID:5kyXXNE4
スレチかもしれませんが質問させて下さい。
現在ActionScript2.0でWeb用のFLV/MP4プレイヤーを制作しています。
YouTubeやXVIDEOのプレイヤーのシーク仕様(データ未ロードの箇所にポインタを置くと、そこから再ロードを行う)は
どのようにして実現しているのでしょうか?
現状の制作中プレイヤーのシーク動作としては、
・FLV再生の場合、未ロードの箇所をシークしようとすると、現在ロード済みのデータの先頭に再生ヘッドが移動します。
・MP4再生の場合、そのポイントで再生が一時停止し、データの読み込みを待機するような動きになります。
(あくまでデータの読み込みを待機しているだけで、そこからの再ロードではない)
プレイヤー(ActionScript)だけで実装できるものではなく、FMSなどの導入が必要なのでしょうか?
うん
628 :
Now_loading...774KB:2012/04/27(金) 11:17:41.72 ID:5kyXXNE4
>>627 やはりFMSが不可欠なんですね。
最近はそのシーク仕様ではないと使えないという風潮があり、対応はしなければならないと思いつつも。
YouTubeやXVIDEOはいざ知らず、FMSを導入するとなるとコストパフォーマンス的にどうなのだろう?もっと別の方法があるのではないか?
と試行錯誤していましたが、それが大前提であるならば、ひとまずは前向きに検討したいと思います。
ありがとうございました。
629 :
Now_loading...774KB:2012/04/27(金) 13:23:06.87 ID:ZeYVSZtg
>623
ありがとうございます!!
TypeがinputのTextFieldが一つしかないとどうしてフィールド全体をFocusしてしまったので、
width,height共に0のフィールドを作成し、FocusEventでfocus戻すことで対応できました!
これが最善とは思えませんがwww
助かりました。
AS3でMCの親子を4階層作って
○○.○○.○○.○○.gotoAndPlay("△");
で動かそうとするんですけどできません
親子階層の限界とかあるんですか?
それともほかに間違ってるのかしら
Flash Builer4.6でアンドロイドアプリを造ってます
ビルダー上のエミュレーターで動作させるとき、スワイプってどうやったら良いんですか?
エミュ上でドラック時ながら動かしてもイベントが飛んでこなくて、
そこだけ今は実機に転送してテストしてます
632 :
630:2012/04/30(月) 21:49:17.15 ID:VzVdili/
すいません自己解決しました
マルチすみません
Flashの超基本的な質問はここでしろ! part43
http://toro.2ch.net/test/read.cgi/swf/1327630120 <s:List x="0" y="124" width="100%" height="100%">
<s:itemRenderer>
<fx:Component>
<s:IconItemRenderer labelField="WearName" messageField="LastName" iconField="photo" decorator="@Embed(source='assets/decorator.png')"/>
</fx:Component>
</s:itemRenderer>
<s:ArrayCollection>
省略
</s:ArrayCollection>
</s:List>
このようなリストを作成したとして、
1つ目の項目をタッチしたら指定したmxmlコンポーネントへジャンプ
2つ目の項目を(ry
ということはできますか?またどう記述すればよいですか?
634 :
Now_loading...774KB:2012/05/01(火) 02:15:36.43 ID:7TdUJy1F
AIR2.0,WinXP,FlashCS5
結合配列(連想配列)の値の検索はどうすれば良いでしょうか?
例えば
arr0.push({name:"野田", age:55});
arr0.push({name:"鳩山", age:65});
arr0.push({name:"菅", age:66});
arr0.push({name:"小沢", age:70});
とあったとき、arr0.nameより"鳩山"を検索してそのインデックスを
取得する感じです。
var key:String = "鳩山";
for (var i:int = 0; i < arr0.length; i++) {
if (arr0[i].name == key) {
trace("index: " + i.toString());
break;
}
}
こんなんじゃダメでしょうか
636 :
634:2012/05/01(火) 03:00:36.36 ID:7TdUJy1F
>>635 さんきゅう。
それは考えましたが、もっとシンプルな記述はないかと思ってます。
(適当ですが)arr0.name.idexOf("鳩山") のような書き方です。
うーん わからないですけどカスタムメソッドつくらずに1行で書けるなら楽だなぁ
639 :
634:2012/05/01(火) 07:50:51.13 ID:7TdUJy1F
>>638 結合配列でXMLを使う場合のヒントをお願いします。
>>631 ビルダー上のシミュレーターではスワイプなどは実現出来ないので大人しく実機でデバッグしてください
もしかしたらタッチパネル液晶なら出来るかもしれないけど
642 :
Now_loading...774KB:2012/05/07(月) 16:43:14.27 ID:8457Fa+0
おしえてください。flash CS5.5です。写真ギャラリーを作ろうとしてます。
まず、サムネイルが4つあって、それぞれボタンクリックでそれぞれの大きな写真が表示される仕組みです。
大きな写真は、1つのMCの各フレームに貼付けてあり
サムネイル1をクリックするとMCのフレーム1、サムネイル2をクリックするとMCのフレーム2
というふうに表示するようにしました。そこまでは成功。
さらに、MC内にnextとprevボタンもつけました。
nextとprevボタンはフレーム1〜フレーム4、nextとprevのアクションをフレーム1〜フレーム4
というふうにしました。が、問題発生。
サムネイル1から飛んだ場合はnextとprevボタンはちゃんと機能します。が、サムネイル2や3や4から飛んだ場合nextとprevボタンがまったく効きません。なぜでしょうか。
-----------------------
サムネイルのスクリプト
-----------------------
ボタン1.addEventListener(MouseEvent.CLICK,クリックボタン1);
function クリックボタン1(event:MouseEvent):void{Object(this).大きい画像のMC.gotoAndStop(1);}
ボタン2.addEventListener(MouseEvent.CLICK,クリックボタン2);
function クリックボタン2(event:MouseEvent):void{Object(this).大きい画像のMC.gotoAndStop(2);}
-----------------------
nextのスクリプト
-----------------------
nextボタン.addEventListener(MouseEvent.CLICK, nextボタンでNextFrame);
function nextボタンでNextFrame(event:MouseEvent):void
{
this.nextFrame();
}
好みによるけど、next/prevボタンがmovieclipならそのなかの1フレーム目に書くのでもいいかと
/* nextボタン内のスクリプト */
this.addEventListener(MouseEvent.CLICK, onClickH);
function onClickH(event:MouseEvent):void
{
MovieClip(this.parent).nextFrame();
}
644 :
642:2012/05/07(月) 17:22:43.44 ID:8457Fa+0
>>643 ありがとうございます。
うまくいきました!!!
でも、なんで
>>642だと機能しないのでしょうか?
とりあえずこれで作れそうです。
どうもどうもありがとうございます。
関数の定義とかはMovieClip内全体で有効だけど何かを実行したりするのはそのフレームを通らないといけないような気がする
646 :
642:2012/05/07(月) 17:48:36.48 ID:8457Fa+0
ん〜〜〜〜使い分けよくわりませんw
結論、基礎から勉強しないと結構つまずきますってことですね。了解です。
スクリプトでやるとしたらDisplacementMapFilterでごにょごにょすれば出来そうだけど
文字が決め打ちなら別のソフトで作って持ってきても良いきもする
649 :
Now_loading...774KB:2012/05/14(月) 12:16:34.55 ID:iqdrI0JD
650 :
Now_loading...774KB:2012/05/14(月) 12:53:41.49 ID:5YgKDNZK
ちょいと質問(AS3)
フレームが変わって同じインスタンス名だが別シンボルのMCを検出する時
同じ構造なのに孫MCがなぜか検出できん なんでだろ?
メインタイムライン上にoyaMCがフレーム移動 oyaMCの中で koMCがフレーム移動 koMCの中にmagoMCがある
koMCが別シンボルに変わった直後にmagoMCがnullになる しかしkoMC自体は参照できる
移動直後はnullになるならなぜkoMCは参照できるのか??
1こ前のフレームの参照が残っているためか? しかし同じ構造なのでnullにはならないはずじゃない?
あーわかったかも
親の中の子がトゥイーン最中でキーフレームが無い位置だと孫が検出できないとかそんな関連か?
詳しい人がいたらご教授よろっす
「同じインスタンス名だが別シンボルのMC」っていうのがどういう状況かわからん
同じ構造のFLA作ってアップすんのがはやそう
653 :
650:2012/05/15(火) 13:10:49.81 ID:yPoOfqh/
お スレチェックしたとたんレスがw
状況?
例えば headMCという人の頭のMCだと内部に正面向いてるシンボルと斜め横向いてるシンボルが
faceMCというインスタンス名で1フレームと2フレームに配置
faceMC内は口アニメや目のまばたきなんかで再生ヘッドが回り続けている
正面顔MCと斜め横MCは同じインスタンス名で別シンボル 構造は(だいたい)同じ って事っす
で 子MC(faceMC)が回り続けてると孫MC(例えば帽子MC等)にアクセスし辛いという問題
ネストが深かったり複雑な構造だと参照がむずいね
>>653 フレームアクションの実行される順序が遅い等の理由で、
MC参照した時にはまだMCそのものがnewされてないとか
そんな感じじゃね?
タイムラインとの併用は、そういう点でいろいろ面倒くさいよ
flashからAS3.0を使っていて
地図上でAというボタンをクリックするとBが表示され
BをクリックでBが非表示になるという物が作りたいのですが
BをクリックでB自体には、removeChildを出来ないことまでは分かりましたが
どのような記述なら可能なのかが分かりません
ご教授お願いします
Bをシンボル化して適当なインスタンス名をつけて
Bをクリックする処理の中に
インスタンス名.visible = false;
を入れればBをクリックでBが消えるようになるはず
ちなみに
インスタンス名.visible = true;
だと表示になる
657 :
655:2012/05/15(火) 17:44:58.09 ID:aViScq1q
>>653 フレームアクションはどこに書いてるの?
AS3.0を使い始めの初心者です
ステージ上にある「表示」ボタンをクリックで図をaddchildして(ボタンや図は複数あります)
「非表示」ボタンをクリックするとremovechildといった物が作りたいのですが
シーン 1, レイヤー 'Actions', フレーム 1、行 53 1067: 型 Function の値が
関連しない型 flash.display:DisplayObject に暗黙で型変換されています。
というエラーが出てうまくいきません
53行目に打っているのは下の物なのですが、
removeChild(fl_taib);
どのようにすればエラーが出なくなるのでしょうか、よろしくお願いします
660 :
650:2012/05/16(水) 13:05:04.69 ID:/fH3m7n9
>>658 フレームには複雑な処理は書かずメインクラスのenterFrame部でまとめて処理してる
>>659 非表示って事はま再び表示する可能性が高いんじゃない? ボタン.visible = false; で
一時的に消しておけば? 画面移行なんかで完全に削除したいなら
addChild( @@@ ); した時と同じインスタンス名 もしくは同じ参照変数で removeChild( @@@ );
フレームに直接書くのとクラスファイルでは書き方も違うかも その情報でははっきりわからん
>>659 そのエラー通りに受けとれば、fl_taibがFunctionなんじゃないの?
662 :
Now_loading...774KB:2012/05/16(水) 18:19:47.13 ID:69vlpoWj
AS3(AIR2.0),WinXP,FlashCS5です。
ステージ上に置いたMC(graphMC)の子として2個の円グラフMCを設置したのですが、
graphMC.numChildren にて子の数は2個と表示されるものの、プレビューでも単独SWF
として起動しても実体として現れません。
ところが、SWFウインドウ以外の一旦画面の別の部分をクリックしてSWFを非アクティブに
して再度SWFをクリックすうるとプレビューおよび単独SWFで2個の円グラフが現れます。
※つまり、アクティブ→非アクティブ→アクティブで表示
この現象で考えられる原因は何でしょうか?
円グラフは各9個の扇形MCを持ってはいますが、SWF自体の負荷はファンの唸り声から
察するに大したことは無いようです。
SWFアクティブ時の処理は下で出来ますが、どう使えば良いのか分かりません。
stage.addEventListener(Event.ACTIVATE, activateHandler);
function activateHandler(event:Event):void {
// 処理
}
アドバイスよろしく願います。
663 :
Now_loading...774KB:2012/05/17(木) 22:51:49.69 ID:r4+1D3k7
win7 flashCS4 AS3.0です。
MCに外部画像を読み込ませるflashを作っています。
ステージ上配置したMCに読み込ませるのはできたのですが、
MCを、addchildさせると、
var urlReq:URLRequest = new URLRequest(PhotoUrl);
このへんでエラーが出ているようです。
addChildして生成した場合には変数の受け渡しを変えなければならないのでしょうか?
よろしくお願いいたします。
エラーの説明が出るとおもうんだけど
>>662 その不具合は別の要因によるものっぽいな
そもそもコードは全部自分で書いたの? 何かのサンプルを元にしたなら内容を理解してない為
他の処理が不具合を引き起こしているのがわからない …とエスパー解答してみたぜ!
666 :
Now_loading...774KB:2012/05/18(金) 22:49:36.55 ID:n/3VEiVe
AS3です(CS4)。include文でのAS名の変数化ってそもそも可能なのでしょうか?
include "xyz01.as"; はOKでしたが、下記で試すとエラーになります。
var hoge:Object = new Object();
hoge.asFile = "xyz01.as";
include hoge.asFile;
1084: シンタックスエラー : stringliteral が hoge の前に必要です。
また単に、
var str:String = "xyz01.as";
include str;
としても駄目でした。
目的は変数化して状況に応じて自由にincludeさせることです。
無理でしょ
includeはswfが作られる時に処理されるものであって、実行時に処理されるものではないから
無理だろうな
そんな使い方を普通しないし
669 :
662:2012/05/19(土) 00:38:16.45 ID:+8Syis+5
>>665 どうも。
円グラフを構成する扇形はsketchbookというライブラリで描いています。
もしかしたらこれが親(graphMC)と相性が悪いのではと思い、適当に描いた
三角形の単純MCを扇形の代用に使ったところ即表示できました。
もっと他に試してみます。
test
FlashDevelopで開発しています。
loaderクラスで画像ファイルを読み込んだ時に、コンプリートハンドラ内で、loader.contentを参照すると、
それ以下の処理をしてくれません。画像は、表示できています。また、このエラーは、プロジェクトフォルダを移動
させた場合に起こります。どなたか教えて下さい。お願いします。
ローカルかクロスドメインのセキュリティ制限じゃねーの。
他人の画像は表示まではできるけどアクセスできねーようになってる。
>>673 ネットワークを介しているわけでなく
ローカルでフォルダをひとつズラしただけで
セキュリティ制限をうけるもんなんですか?
プロジェクトフォルダを移動させた場合っていうとなんかの相対パスかね
症状がなにいってるかさっばりわからんのだけど
画像表示できてるんでしょ??
>>675 private function handleContentLoaded(e:Event):void {
content = e.target.loader.content;
//ここで画像の基準位置を設定しないと、registration="center"を指定した時、1frame目に、topLeftに表示されてしまう。
registration = _marugonObject.registration;
if (content is Bitmap) {
Bitmap(content).smoothing = true;
}
}
>>676 private function handleContentLoaded(e:Event):void {
content = e.target.loader.content;
if (content is Bitmap) {
Bitmap(content).smoothing = true;
}
}
訂正
スムージング処理が出なくなります。
あと、移動っていうのは、プロジェクトファイルを例えば、デスクトップに移動させた時とかです。
必要な画像とかは、相対パスで指定しており、プロジェクトフォルダに入っているので
問題はないと思います。
なにが呼ばれてないの?
traceいれてみたらhandleContentLoaded自体呼ばれてないの?
if(Bitmap)内だけよばれてないの?
デスクトップに移動したら〜ってフレーズで信頼できる場所エラーを思い出した
とりあえずロード処理にセキュリティエラーイベントもaddして確かめてある?
>>678 ハンドラは、loader.contentを参照する直前に置いたtraceで実行していることを確認しました。
よって、IO_Errorかな?それもaddEventしているんだけど上記より関係ないっぽい。
コンテント参照後の処理が行われません。
それと、binフォルダにできるindex.htmlを実行するとエラーになります。
また、同じくbinフォルダにできるhoge.swfをgomplayerで実行すると
問題なくなります。もしかして私のパソコンがおかしいのかな?^^;
>>679 あと、エラーと言っても止まるわけでなく、
ただ、スムージングがかからないだけです。
もちろん、スムージングが問題ではなく、
webコンソールにtraceしてみても
表示されません。
trace(1)
content = e.target.loader.content;
trace(2)
これで1が出力されて2がされないでデバッグプレイヤーでランタイムエラーも出てないわけ?
>>681 index.htmlを実行しブラウザを起動した場合に起こるので、
また、flashdevelopで読み込んでデバッグはしてないです。
ブラウザで実行するとtrace(1)だけが実行されます。
>>682 trace(1)
trace(e)
trace(e.target)
trace(e.target.loader)
trace(e.target.loader.content)
content = e.target.loader.content;
trace(2)
これやるとどうなる?
e.target.loaderがnullでcontent読もうとした瞬間にnullエラーで止まってるんじゃないの?
>>683 traceはひとつも実行されませんでした。
ただ、traceの上にtextFieldに文字を挿入は、うまくいっているので
実行はされています。ブラウザからのデバッグだと、
これでしか確認できませんので。
traceは、ExternalInterfaceでwebコンソールで確認しました。
あと、いろんなフォルダに移動させると、成功するときがあり挙動が不安定
なんですが、安心が欲しいです。
んー
ブラウザから実行する限りわからんわごめん
ブラウザのプレイヤーはデバッグプレイヤーなの?
>>685 デスクトップに作った新しいフォルダ内では問題ないのに、
デスクトップだとエラーになったりわけが分からんわ
きみが悪いけどまぁいいや
付き合ってくれた方どうも有難う御座いました。
もし同じ症状が出た方や、理由がわかった方がいましたら
書き込みよろしくお願いします。
687 :
662&669:2012/05/19(土) 13:51:41.52 ID:dfuFTbUd
(円グラフを構成する扇形の続報)
扇形を描くライブラリをfrocessing(arc関数を使用)に変えたところ、即表示OKでした。
ただし、これは前のsketchbookが悪いということではなく、単に構築した系に対する
相性の問題だと思います。
相性っつーか、単に使い方を間違えてるだけだろう
>>684 たんなるパスのエラーのような気がする。
アパッチ動いてるサーバでチェックしてる?
>>689 サーバーでは今のとこうまくいってるんで、
ほっとしたんだけど
ローカルでやってみると失敗するんだよなぁ。
サーバーでうまく行けばいいんだけどね。
691 :
Now_loading...774KB:2012/05/22(火) 16:50:42.98 ID:1+BejYSr
WinXp As3.0
As勉強中です。
親MCから子MCのなかにMCを生成させるスクリプトを親MCに書いています。
子MCのフレームに
var インスタンス名:MCname=new MCname();
addChild(インスタンス名);
で生成できるのですが、
子MC.addChild(インスタンス名);
と、親のフレームに書いた場合うまく生成できません。
どなたかお教えください、お願いします
>>691 単に省略しているだけかも知れんが
var インスタンス名:MCname = new MCname();// ←書いてる?
子MC.addChild(インスタンス名);
あと子MCはあらかじめ存在してるの?
それとも 親 → 子 → 孫 の順に生成してるの?
子をまだ定義してない(プロパティとして設定していない)場合は、予め子に
var 孫インスタンス名:MovieClip; と書いておく必要があるよ。
693 :
Now_loading...774KB:2012/05/26(土) 13:38:19.57 ID:ko77DTwa
可変長引数をそのまま渡すにはどうしたらいいですか?
例えば下記のような感じです。
function hogeA(...args) {
hogeB(args); // ←引数をすべてhogeBに渡して処理したい
}
function hogeB(...args:Array) {
trace(args);
}
hogeA(1, 2, 3); // 結果 1, 2, 3 としたい
ご教授お願いします。
694 :
693:2012/05/26(土) 14:37:15.51 ID:ko77DTwa
自己解決しました
hogeB.apply(this, args)
696 :
Now_loading...774KB:2012/05/30(水) 22:23:45.16 ID:IUGuiS2Q
windows7のAdobeFrashPlayer2.0
初心者です。シューティングを作っているんですが、今敵が流れてきて倒すとスコアが増えるところまで行きました。
スコアが100越えたら別のシーンに飛ぶ…というときはどうすればいいんでしょうか?
書き込みをよく見直せ。
ActionScript2なの?
FlashCS2なの?
そんなもんねえよ
スコア加算処理かループの最後に
if(score>100){_root.gotoAndPlay(ラベル);}
でいいんじゃねーの
ラベルにはエンディング画像なり面設定用の変数入れて元のループに戻すなりお好きに
Flash Player 2.0、CS2ワロタ
>>696 As2なのかAs3なのかで書き方全然違うのでそこが大事
Studio8ってことか??
アプリは関係ないよ。
言語だよ。
ActionScript2かActionScript3かってこと。
因にStudio8じゃAS3使えないよね
AS4がでたらさらにこのやりとりの手間が増えるのか
AS4出るとしたらどんな言語になるのやら。
・総称型
・変数のブロックスコープ
・privateなコンストラクタ
・抽象メソッド(パブリッシュ時に弾いてくれる)
このくらいは欲しいな
もう構文はC#にしてくれよ
構文はAS3の方が好きだなー
型宣言が特に。
いや、Javaにしてくれよ。
よそでやれ
711 :
Now_loading...774KB:2012/06/09(土) 06:54:58.14 ID:jKwvxkuD
試してないけどnativeWindowインスタンスに対してaddEventListenerしないとダメじゃない?
713 :
711:2012/06/09(土) 13:26:15.03 ID:jKwvxkuD
>>712 さんくす。 ご指摘の通り、リスナー対象は stage.nativeWindow でした。
ただし、(FlashCS4のプレビューで)これが実行されるにはステージ内のどっかをクリックして
アクティブにする(フォーカスを移す?)作業が1クッション必要みたいです。
すいませんageてもうた
715 :
Now_loading...774KB:2012/06/11(月) 07:58:46.90 ID:bgNeQBIF
数値入力において、指定単位(pt, mm, cm, in, px)付きで表示し、値を自動換算するコンポーネントはないのでしょうか?
例えばIllustrator やPhotoshopでの数値入力欄のような。
ご存じの方お願いします。
716 :
Now_loading...774KB:2012/06/11(月) 08:01:53.84 ID:bgNeQBIF
>>715訂正
例えばIllustratorでの数値入力欄のような。
717 :
Away3D初心者:2012/06/12(火) 13:06:40.84 ID:eQC2icDh
初めまして。
数日前にCS6(mac)買ってAway3D始めたんですが
Away3D自体は問題なく動作してます(as3でフレームに直書き)。
が、タイムラインにムービークリップを置いてボタンアクションを書いてもボタンが反応しません。(onEnterFrameは動作します)
直接タイムラインに置かず、ライブラリからaddChildしてもボタンアクションは動作しません。
Away3Dの部分を外すと正常にボタンアクションは動作します。
stage3Dって、タイムラインのボタンアクションと共存出来ないなんて事はないですよね?
解る方いたらおしえていただけますでしょうか?
あと、こういう質問て、どこのサイトでするのが適切でしょう?
Flashフォーラム久しぶりに覗いたら閑古鳥でした..。
>>717 そういった話は聞いたことないなあ
でも悪いことは言わないからタイムラインアクションはやめとき
英語が多少わかるならAway3Dのフォーラム
http://away3d.com/forum/ ボタンのほうが上の重ね順?
View3Dがマウスイベント拾っちゃってるとかないよね
どんなソースだい
Away3Dの部分のコードを理解してるのかい?
何らかの処理が邪魔してると思うお
720 :
Away3D初心者:2012/06/12(火) 17:15:51.21 ID:eQC2icDh
>>718 >>719 お返事ありがとうぎざいます!
3Dの方にマウスイベントがない状態でもダメなんですよね..。
ん?ボタンの方が上の重ね順?
表示リスト的に、stage3Dは自ずとタイムラインより下になるかと思ってたんですけど..
違うとすればそこが怪しいですね。
どうやったらタイムラインのボタンの方を上に出来ますか?
>でも悪いことは言わないからタイムラインアクションはやめとき
ちなみに、なんでです?
>>719 >Away3Dの部分のコードを理解してるのかい?
>何らかの処理が邪魔してると思うお
かなりシンプルなコードでも同じ症状なんですよ..。
次にシンプルな3D部分のソース貼ります。(ボタンは省略)
721 :
Away3D初心者:2012/06/12(火) 17:16:09.76 ID:eQC2icDh
import away3d.containers.View3D;
import away3d.primitives.WireframeSphere;
import flash.events.Event;
var view=new View3D();
addChild(view);
var shpere:WireframeSphere;
shpere = new WireframeSphere(500,16,12,0xFFFFFF,2);
view.scene.addChild(shpere);
// レンダリング;
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler(e:Event):void {
shpere.rotationY++;
view.render();
}
>>720 >表示リスト的に、stage3Dは自ずとタイムラインより下になるかと思ってたんですけど..
Stage3Dの描写はそうなるけど、最初にaddChildしているviewはstage上のものじゃん
そもそもStage3Dでマウスイベントは取れないからstageのviewでイベント拾ってんだと思うよ
ボタン省略するなよww
>ライブラリからaddChildしてもボタンアクションは動作しません。
このときはどこにかいてたの
そうだ省略してはいかん
フレームのある位置に来たらstopさせてaddEventListener( MouseEvent.CLICK とかやる方式なんだろ?
メイン処理部で監視する方が後々改造し易くていいお
観念してシンプルボタンクラスでも作ってクラスインスタンスでやるんだ(もしくはクラススタティック)
724 :
Away3D初心者:2012/06/12(火) 17:54:05.36 ID:eQC2icDh
>>722 >最初にaddChildしているviewはstage上のものじゃん
アーー!!
それだー...。アホでした..。
ありがとうございます。やってみます!
725 :
Away3D初心者:2012/06/12(火) 18:24:51.69 ID:eQC2icDh
>>722 >>723 出来ました..。
ボタンを
setChildIndex(btn,2);
で無事反応しました..。あほだ..。
>フレームのある位置に来たらstopさせてaddEventListener( MouseEvent.CLICK とかやる方式なんだろ?
>メイン処理部で監視する方が後々改造し易くていいお
>観念してシンプルボタンクラスでも作ってクラスインスタンスでやるんだ(もしくはクラススタティック)
うーん、せっかくFlashだから、フレームに配置すれば
ボタンとかMCとか、目で見ながら配置してデザインできて便利だと思うんですけどねー..。
ありがとうございました!
view
button
Stage3D
の順に並んじゃってて、viewには内部的にマウスイベント割り当てられてたから
それより下の階層であるbuttonまでたどり着かなかったかんじかね
ボタンの記述はクラスファイルにしてボタン自体は目で見ながら配置ってこともできるよ
727 :
Away3D初心者:2012/06/12(火) 18:57:16.37 ID:eQC2icDh
>>726 >view
>button
>Stage3D
>の順に並んじゃってて、
ですねー..。
>ボタンの記述はクラスファイルにしてボタン自体は目で見ながら配置ってこともできるよ
あーそうすればスッキリですね。
ありがとうございました。
728 :
Now_loading...774KB:2012/06/13(水) 13:50:18.32 ID:K1gLLJhg
AS3 CS5.5
StageWebViewを他のMCの下に配置することはできますでしょうか?
>>729 そうなんですね…
ありがとうございました
(JavaScriptから呼び出せるよう)addCallbackで登録した関数から、
別の関数、たとえば以下のtestFuncを呼び出すにはどう書けばよいでしょうか?
ExternalInterface.addCallback("hoge", null, addCallback); //JavaScriptからの呼び出しを登録
function addCallback():Void {
var string = testFunc();
string += ":hoge2"; //(1)
//省略
}
function testFunc() { return "hoge1"; }
JavaScriptから呼び出したときに、(1)のstringの中身が"hoge1:hoge2"となってほしいのですが、
testFuncが正常に呼び出されていないのか"undefined:hoge2"となります。
732 :
731:2012/06/17(日) 17:43:23.04 ID:LxkVqHVJ
Delegateを使って解決しました。
AS3 CS5.5 です。
objecttest.addEventListener(MouseEvent.MOUSE_OVER,test);
function test(e:Event)
{
mouseover = true;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE,mc);
function mc(e:Event)
{
mc.x=mouseX;
mc.y=mouseY;
Mouse.hide();
}
こんな感じで作っているのですが、このプログラムだと objecttest にカーソルを乗せても
反応がありませんでした。 Mouse.hide が原因かと思い、コメントアウト試しましたが
結果は同じでした。
これは、 objecttest と マウスカーソルの間に mc が入っているから反応しないのでしょうか?
また、これを直すにはどうすればいいですか?
mcがマウスに追従するやつで、objecttestがインタラクションに反応させたい?やつかな
推察の通り、マウスイベントに反応するのは一番上の表示オブジェクトだけなので、
mc.mouseEnabled = false;
mc.mouseChildren = false;
を書き足せばいける。意味はぐぐって
それMCの名前がmcだとしたらmcがmcのスコープ塞いじゃってMCにmcのxやらyやらが反映されないんじゃね?
>>734 無事解決できました。
ありがとうございました!
個人でiphoneアプリ、Windowsアプリをマーケットに売って生き残れ
格安iPhoneEラーニング(学習動画多数あり)
http://tinyurl. com/7wj77om
コワーキングスペースJP
http://tinyurl. com/76vdrny
javaやlinuxは手間がかかる 一人でやるには手間がかかりすぎる 手間がかからないで一人で開発できて
人の多いところで直接販売できる仕組みが提供されているメーカ製の言語だけやる ずばりiphone またはWindow 8 Metro App Store C#
やるならメーカー製の言語 洗練された仕様 脆弱性が少なく 開発ソフトが優れ 課金ライブラリ アップデートライブラリが提供されていて 情報,書籍が多く開発しやすい
奴隷になりたければオープン系をやればいい 時間がかかり 人は多く 仕事の取り合い 足の引っ張り合い 脆弱性が多く 互換性がなく 癖があり 大規模開発中心
詳細設計しかやれない体になって年取ってぽいだ 独立もできない 手間のかかりすぎる仕様だから
派遣屋・IT経営者はその方が喜ぶ 大規模分割開発では使い捨てしても独立はできまい 代わりはいくらでもいる 嫌なら辞めろ
派遣営業は舐めた態度をとってくる ひどいピンハネ
オープン言語、日本独自開発言語・フレームワーク ガラパコ携帯 javascript html5 Android java linux python rubyやnode.jsとかやめとけ
メディアに金を払ってステマ宣伝してくるが釣られて手を出しても情報は少なく手間がかかり未完成かデスマに陥る
コンパイルできないからパクられ 直接売る場所がないから金にならない 生きていけない ずっと奴隷仕様の言語だ
ここから抜け出すにはiPhone一択 またはWindow 8 Metro App Store(未確) C#
Objective-CやC#を覚えるとサーバーサイドからクライアントサイドまでカバーでき人の多い場所でソフトを売る権利を得られる
仕事や趣味でObjective-CやC#を覚えれば派遣切りされても会社辞めることになってもソフトを売って生きていける それはセーフティーネットになる
WEBサーバーIIS Win2008ServerVPS SqlServer Oracle MySql 言語はマーケットで売れるメーカー製のみ C#は自分用業務支援ツールとして使える
例えばPHPでWEBアプリを作っていて管理者画面はC#(EXEアプリ)で作るとかなり早く作れる(Smartyなんか使うよりもかなり早くだ)
ASP.net(C#)+管理EXEアプリ(C#)+iPhone C#のソースを出さなければWEBアプリの著作権も守れる
C#マーケット Windows8 Metroアプリ WindowsPhone pad PS Vita Xbox360 iphone(mono使用)
iPhoneマーケット iPhone iPad 予定 iTv iCar i (家電製品)
地方に安い土地を買いコンテナ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィス・コワーキングで収入を得ながらそこでアプリを開発する
http://tinyurl. com/7pb2yaa
http://bit. ly/iLIpJa
739 :
Now_loading...774KB:2012/06/25(月) 20:29:23.33 ID:tlDIOqXK
win7 flash proCS5.5 As3 です。
現在、アンドロイドアプリを作っています。
Howto本にアプリ内にブラウザを実装できる。という記事を読み実装してみました。
//ステージウェブビューを作成
var smv:StageWebView=new StageWebView();
//ステージウェブビューを表示するステージ
smv.stage = stage;
//ステージウェブビューの表示領域を設定
smv.viewPort = new Rectangle(0,160,480,700);
実装はできたのですが、アプリ上からブラウザ画面が消えなくなってしまいました。
removeではなさそうですし。。。どなたか解決法をお教えください
ググッたところ smv.dispose(); かな?
その前に smv.stage = null; した方がいいかも?
742 :
739:2012/06/26(火) 16:00:54.53 ID:0i2JJFi0
>>740 >>741 smv.stage = null;
smv.dispose();
で、無事消去できました
ありがとうございました
743 :
Now_loading...774KB:2012/06/27(水) 12:52:58.00 ID:IVoCTEbN
最近AS3.0勉強し始めたばかりです
質問なんですけど、下記のコードでキーボードの右が押されたら
0.1秒ごと10回にオブジェクトを1ずつすすめるというものを作りたかったのですけど
一回目に押したときは問題ないのですけど、
二回目以降に押すと押した数分だけTimerが回ってしまいます
どなたか解決法教えていただけないでしょうか...
timer:Timer = new Timer(100,10);
var zx:int = 300, zy:int = 100;
stage.addEventListener(KeyboardEvent.KEY_DOWN,Idou);
function Idou(event:KeyboardEvent):void{
if(event.keyCode == Keyboard.RIGHT){
timer.stop();
timer.reset();
timer.addEventListener(TimerEvent.TIMER,DoTimer);
function DoTimer(event:TimerEvent){
zx++;
obj.x = zx;
obj.y = zy;
}
timer.start();
}
}
744 :
743:2012/06/27(水) 13:05:12.51 ID:IVoCTEbN
すみません
環境を書き忘れました
MacOSX
FlashCS4
AS3.0ですよろしくお願いします
これでどうだろ?
var zx:int = 300, zy:int = 100;
timer:Timer = new Timer(100,10);
timer.addEventListener(TimerEvent.TIMER,DoTimer);
function DoTimer(event:TimerEvent){
zx++;
obj.x = zx;
obj.y = zy;
}
stage.addEventListener(KeyboardEvent.KEY_DOWN,Idou);
function Idou(event:KeyboardEvent):void{
if(event.keyCode == Keyboard.RIGHT){
timer.stop();
timer.reset();
timer.start();
}
}
746 :
743:2012/06/27(水) 13:39:22.96 ID:IVoCTEbN
>>745 ちゃんと動くようになりました!
ありがとうございます!
747 :
Now_loading...774KB:2012/06/29(金) 15:41:35.18 ID:k2h4EyPW
こんにちは。質問させてください。
現在、AS3側でユーザーに文字を入力してもらい、
それをWebサーバーへ送信して値を保存するということをやろうとしています。(いわば、ローカルのフォームみたいなもの)
Webの方は既存のシステムがあり、文字コードがShiftJISです。
URLRequest と URLLoader を使ってデータを送信して受け取ることは出来るのですが、
日本語を使用した際に文字化けしてしまいます。
恐らく、AS3側がUTF8なのに対して、Web側がShiftJISだからだと思います。
Web側でEncodeConvertすれば解決するのですが、それが出来ないので、AS3側でどうにか対処することはできないでしょうか?
どなたか教えてください。
よろしくお願いします。
AS1.0Suzukaを使ってます。Suzuka用fladeを試してるのですが
リファレンスらしきものがどれだけ検索しても見当たりません。
英語でも構わないのでご存知のかた教えてください。
749 :
Now_loading...774KB:2012/06/29(金) 22:51:48.36 ID:BdzcHX5Q
つまんねー どうしてこうなった
そんなにHTML5がいいのかね
ん?それ去年発表してたことと変わらんけど
どうした?
752 :
Now_loading...774KB:2012/06/30(土) 00:11:54.76 ID:71nh0HkG
去年は更新しないって言った筈
だからflash player11のままなのかと思ってまあいいやと思ってたのに
削除しろだと
Flash CS5.5を持ってて、アンドロイドアプリを作ってみようと思っています。
Android 4.1以降でFlashが非対応とのことですが、Air for Androidで拡張子「apk」のアンドロイドアプリの形にすれば、元がFlashで記述したものであっても動作する、という認識であっているでしょうか?
756 :
753:2012/06/30(土) 01:09:53.05 ID:hiR7G7d4
モバイル版Flash Playerの開発中止、って発表してたんだから、
新しいOSには対応しないのが普通のことじゃんね。
AIRがあるのにFlash終了とか言っちゃうやつなんなの
アプリ開発が本命だろJK
まあAIRとFLASHの関係を説明する気にもなれないアホどもが騒いでるだけだし…
逆に技術者でFlash終了とか言ってるやつは何も分かってないアホだと炙り出されているってことだな
実際の案件の減り方みてりゃ、完全に終わってることくらいわかるだろ
減ったと思ったら他所に取られただけだった
Flashの同業他社は倒産して、中の人がうちに入ってきてC#やってる
自分の身の回りじゃなくてちゃんと統計取ったんだろうな
CS5.5 AS3
sin cos関数のテーブル化(360度計算)を試してみたんだけど通常の計算時とほとんど速度が変わらないな
Array()とVector.<Number>(360, true)でも違いがほとんど無い むしろたまにVectorが遅いw
Vectorの存在意義はなんなんだ
型を明確にできるのは場合によってはそれなりにメリットあると思うけど。
テストしてる環境に原因があるのでは?
例えば、FlashPlayer11とかなら、速度に違いが無いハズ
>>765 Vectorの使い方がなってないと思う。
Vector使う時は基本的にfixedで使うとかなり違う。
テスト出来るソースさらしてみてよ。
Flash9、AS3です。
ary[[hoge, 0, 1], [foo, 2, 3], [bar, 4, 5]]という配列があり、
0インデックス目はインスタンス化した物ですが、
ary[0][0].Func()みたいなことはできないでしょうか。
内容が存在しないみたいに出て実行中に先に進めなくなります。
こういうこと?ようわからんが動くんじゃね?
var arr:Array = [[{func:function(){trace("hoge");}}]];
arr[0][0].func();
772 :
770:2012/07/05(木) 14:40:31.05 ID:umX4RvA1
>>771 ありがとうございます。
hogeIndex:uint = 0;
fooIndex:uint = 1;
barIndex:uint = 2;
ary[[hogeIndex, 0, 1], [fooIndex, 2, 3], [barIndex, 4, 5]];
if(ary[0][0] == hogeIndex) hoge.func();
else if(ary[0][0] == fooIndex) foo.func();
else if(ary[0][0] == barIndex) bar.func();
関数の機能を配列に書きたいのではなく、
if分を無くし1行にするために
>>770のようなやり方を使いたいのです。
RPGのイベントの分岐とか、種類が多くなると
すごい行数になるので、その対策に使いたいです。
いまいちわからんのだけど普通にオブジェクト突っ込んどけば済む話とは違う?
var foo:Object ={func:function(){trace("foo");}};
var bar:Object ={func:function(){trace("bar");}};
var arr:Array = [[foo,0,1],[bar,2,3]];
arr[0][0].func();
arr[1][0].func();
774 :
770:2012/07/05(木) 21:31:05.60 ID:umX4RvA1
>>773 ありがとうございます、解決できました。
その記述する順番が逆だったのがダメだったようです。
hoge、foo、barをインスタンス化する前に配列に入れていたので、
見た目はクラスの型でもnullでしかなかったようです。
775 :
Now_loading...774KB:2012/07/06(金) 12:58:18.05 ID:kIog6avS
AS3 / Flash CS5.0です。
スーパークラスでは定義されていなく、サブクラスで定義されている任意のプロパティが呼び出されたときに、
スーパークラスがそれを捕捉して任意の処理をしたいんですが、どうすればよいのでしょうか?
Proxyクラスが使えそうかなと一瞬思いましたが、
あれは未定義プロパティにしか反応しないんですよね……。
サブクラスの該当プロパティのgetterメソッド中でスーパークラスの任意の処理をするメソッドを呼び出すようにしておくとか?
777 :
Now_loading...774KB:2012/07/06(金) 13:20:17.77 ID:kIog6avS
>>776 やっぱそうなりますよね……。
できればサブクラス側におまじないを強要したくなかったんですが
779 :
Now_loading...774KB:2012/07/12(木) 07:48:32.03 ID:iKTZEV9B
NumericStepper についての質問です。
stepSize プロパティ値によって小数点以下の有効桁が決まるという仕様のようですが、これで困り果てています。
例えば、上下矢印の1クリックごとに入力値を 1 だけ変化させたいけれども、直接入力では小数第二位まで認めるということができません。
何か方法があるのでしょうか?
わかる方、どうぞお願いします。
780 :
Now_loading...774KB:2012/07/12(木) 07:50:58.59 ID:iKTZEV9B
>>779補足です
自前のイベントハンドラでこういう基本的な処理をごちゃごちゃとしたくありません。
>>778 AS2でやってみれお
>>779 説明がわかりにくいな〜
直接入力した1.23という値をクリックで2.23にしたいって事?
782 :
Now_loading...774KB:2012/07/12(木) 10:01:53.85 ID:iKTZEV9B
>>781 stepSize=1(デフォルト)にしておくと、直接入力値は全部整数に丸められます。
つまり整数入力しか認めないと。2.52 なら、 3 というふうに。
こういう桁丸めを避けるにはどうしたらよいでしょうか、ということです。
ステップ値1は保持しつつ。
デフォ値を1.001にしてもだめ?
もしくは桁丸めの箇所を探し出して修正すればおkだと思うんだけど…
そもそもNumericStepperってAS3のコンポーネントなんだっけか
そっちの環境はなによ CS5.5?
784 :
Now_loading...774KB:2012/07/12(木) 12:18:19.83 ID:iKTZEV9B
カスタムしたくないって言ってるんだから無理でしょ。
そういう風にできてないもの。
NumericStepper.asファイルを直接書き換えるしかないかもな
書き換える前にバックアップとってな もちろん自己責任でやってくれ〜い
うちはCS5.5だからファイルの場所は違うと思う 検索して探してくれお
function checkValidValue(val:Number):Number
{
var initDiv:Number = val / stepSize;
var roundD:Number = Math.floor(initDiv);//ここが怪しいような気がする
ああ 継承して該当メソッドだけオーバーライドすりゃいいのか? 試して報告よろっす
788 :
Now_loading...774KB:2012/07/12(木) 14:36:38.05 ID:iKTZEV9B
>> 785-787
nextValue と previousValue プロパティの getter メソッドが public なので継承でオーバライドすることにします。
これらでレンジチェックして stepSize 分だけ増減しているだけですので。
ASは経験が浅くてというよりツール自体の扱いにまだ不慣れで苦労しますw
ありがとうございました。
789 :
778:2012/07/12(木) 16:36:09.35 ID:1o2Jb+qN
hideBuiltInItems();の後に
builtInItems.quality = true;で解決しました
すみません
as3.0で、たとえば24フレームから360までの間にボタンを押したら400に進んで止まるというようにしたいとき
24フレームから360まで1フレームに一つずつgptoandstopを書いていくしか方法はないのですか?
もっと効率的なやり方を教えてください
もうはくひんと入門wikiはテンプレ入れようぜ
んだな
AdobeR FlashR Platform 用 ActionScriptR 3.0 リファレンスガイド もたのみます
795 :
Now_loading...774KB:2012/07/17(火) 14:50:49.73 ID:voKBOxJ7
CS5 XP as3.0環境下で製作してます。
ちょっと聞いてみたいんだけど、例えば、何かゲーム的なコンテンツ制作してて
タイトル画面→クリックでメイン画面に変移
みたいなとき、タイトル画面(必要ない部分)ってみんなどう処理してます?
俺はvisible=falseにしてみたり、x=-500とかで画面外に逃がしたりしてるんだけど
どうしてもas2.0の頃を思い出してしまって、違和感を覚えるというか・・・
他のみんなはどういった方法で変移させてるのかなぁ・・と思ったので。
フレーム10がタイトル 20がプレイ画面 30が…テキトーになんかの画面
メイン処理部ではフレーム毎に処理を分けてる
>>796 おおお!!
フレームに書いてgotoAndPlayで動かすの??
as3.0ってなんか1フレーム目に全部書いちゃうみたいな
イメージあってずっとそれを踏襲してたから意外!!
感覚的にはタイムラインにのみ書く2.0みたいな感じ?
タイトル画面の時は、タイトル画面をaddChild
AS3.0でタイムライン使うと面倒になるから、フレーム遷移はなし
>>797 フレームには最低限の処理しか書かないお this.stop();とか this.gotoAndStop();くらいかな
メインタイムラインの最初の方のフレームでメイン処理クラスをNew
メイン処理クラス内部はswitchで各フレーム処理をする さらに必要に応じてメイン処理クラス内で
他の処理のクラスをNewしたりクラス名で呼んだり…
>>798 ビットマップだけのシューティングならいいのかもしれないけど
アニメ寄りのゲームなんかだとフレーム使わないとどーにもなんないなw
視覚的、感覚的にガーッと作れるのがFlashの醍醐味だお!
>>799 MCパーツは、タイムラインでアニメ作るよ
そういったいろんな要素をメインクラスで呼ぶわけだから
やってることはかわらんと思うよ
要は、状況を分けたり管理するのはメインのクラスであって、
メインタイムラインではやらないってだけね
CS5.5 AS3.0 で、シューティングゲームを作っています。 addChildでステージ上に隕石と、自機からの弾を配置し
それが衝突すると、消えるという仕組みを hitTestObjectで作ろうとしています。
ですが、以下のプログラムだと 「aとbが定義されていません」と出てしまいます。
名前をつけて、 shot2 と meteo2 で試しても無理でした。どのようにすれば、hitTestObjecを使えますか?
stage.addEventListener(MouseEvent.CLICK,shot);
function shot(e:Event)
{
var a = new tama();
a.name = "shot2";
stage.addChild(a);
〜以下略〜
}
stage.addEventListener(MouseEvent.CLICK,meteo1);
function meteo1(e:Event)
{
var b = new meteo();
b.name = "meteo2";
stage.addChild(b);
〜以下略〜
}
addEventListener (Event.ENTER_FRAME,hit);
function hit (e:Event):void {
if(a.hitTestObject(b))
{
trace("Hit");
}
}
関数の中で宣言された変数はその関数内のみ有効なローカル変数なので
var a:tama;
function shot(e:Event):void {
a = new tama();
〜
}
のような感じに関数の外でグローバル変数として宣言すれば関数hitからも使えるとおもいます。
もしくは表示リストからnameで取得するとか
function hit(e:Event):void {
var a:tama = getChildByName("shot2") as tama;
〜
}
803 :
801:2012/07/19(木) 08:03:17.65 ID:JXlz3z/I
>>802 まず、上段のプログラムを試してみたところ
「TypeError: Error #1006: hitTestObject は関数ではありません。」
と出てしまいました。 プログラム自体はこんな感じです。
var a:tama;
stage.addEventListener(MouseEvent.CLICK,shot);
function shot(e:Event)
{
var a = tama; //ここでも宣言しないとゲームが不安定に。
a = new tama();
a.name = "shot2";
stage.addChild(a);
〜以下略〜
}
下段の方も試したのですが
var a:tama = getChildByName("shot2") as tama;
var b:meteo = getChildByName("meteo2") as meteo;
if(a.hitTestObject(b))
{
trace("Hit");
}
これだと、 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」 と出て
hitTestObjectの部分を if(shot2.hitTestObject(meteo2)) に変えると、.name で名前をつけているのにもかかわらず
「未定義のプロパティ shot2 / meteo2 へのアクセスです」と出てしまいました。
>var a = tama; //ここでも宣言しないとゲームが不安定に。
わろた
勝手に意味わかんねえ文法つけたしてんじゃねえよ
失礼、下段ですが、弾と隕石をstageに配置しているので、
stage.getChildByName("shot2") as tama;
という感じにする必要がありました。
デバッガ起動してnullになってる変数確認しる
807 :
Now_loading...774KB:2012/07/19(木) 16:10:55.31 ID:Fuum4nyG
ASって結局何向きの言語なのかがわかりません
ソケット使ってオンラインゲームみたいなのはCの方が優れてると聞きますし、iPad等ではFLASH厳しいし…
詳しい方教えてください
Flashコンテンツ、 AIR/Flexアプリケーションの開発などに向いております。iOSにもAIRで対応しています。
オンラインゲームに関してはソケット云々というよりはWindowsでゲームといったらDirectX必須なのと、
開発者人口、歴史的経緯の関係でおのずとC/C++が使われるものと思います。
「何向き」ってもっと本質的な質問なんじゃないか?
アプリにしろゲームにしろ絵をグリングリン動かすモノに向いてるんだと思う
C++、JAVAでド派手な2Dアニメ系ゲームを作れと言われたら途方に暮れる
810 :
Now_loading...774KB:2012/07/19(木) 18:07:54.92 ID:Fuum4nyG
>>808>>809 回答ありがとうございます
動きに強い言語という認識でよかったんですね
参考になりました。サンクスです!
4日前からActionscript3.0を勉強してます
プログラム系まったくの初心者です、AS3.0がはじめてのプログラム挑戦です
AS2.0の式を3.0の式に変換したいのですが、うまくいきません
http://ponk.jp/flash/basic/tutorial1 このサイトの式を3.0の式に直して、なおかつその意味も教えてくださいませんか
おねがいします
はじめてのプログラム挑戦でいきなり書き換えとか思い違いも甚だしい
まずAS3の基礎から始めなさい
flash、as3.0、Xmlの読み込みについて教えてくださいい。
応用まで説明してるサイトあったら教えてくさい!
XMLの読込の応用ってなんだ?
読み込んだデータの使い方の話?
おめ〜の欲してる答えは
>>813にある どこに目エつけてんだw
真ん中くらいの「ファイルの読み込みについて」を見れ
>>814 xlm書くだろ?flaで読み込むだろ?
読み込んだ奴からいろいろ引っ張り出せる。
おしまい。
>>815,816,817
解決しました!ありがとうございました!
下記で言うと、
listごとに中にあるデータを配列で持たせたかったのですが、<list0></list0>、<list1></list1>・・・という風に囲んでいたのがダメだったようです。
下記のようにしてlistで引っこ抜いてfor文まわしたらできましたああーー
<list>
<id>0</id>
<name>00000</name>
<comment>0000000</comment>
</list>
<list>
<id>1</id>
<name>111111</name>
<comment>111111111</comment>
</list>
・
・
・
font埋め込みがうまくいきません。
ライブラリからリンケージでMSP明朝でのテキスト表示はできたのですが、embedfontsをtrueにするとテキストが表示されなくなります。
この状態は、swf ファイルに埋め込まれていいないということでしょうか?
※TextFormat.fontで指定したフォントがswf ファイルに埋め込まれている時のみ動作
埋め込む字種の設定とか正しくできてるの?
>>820 設定については自信がないっす。
flaファイルではライブラリから新しいフォント→MSP明朝→myfont→actionscriptへ書き出し設定
→明朝体でのテキスト表示は確認、アンチエイリアス等が適用されず、embedfontsをtrueにするとテキストが表示されなくなる。
上記を受け、下記をソースに追加。
[Embed(source="msmincho.ttf", fontName="myfont", mimeType="application/x-font-truetype")]
private var font:Class;
※msmincho.ttfはMS明朝・MSP明朝のファイル名
>>820 できたみたいです。
スクリプト上でnewする必要があったみたいです。embedタグは不要になりました。
一つ質問なのですがFlashPlayer11で
BitmapDataのサイズの上限ってやっぱあります?
>>824 ありがとう
そしてありがとう
OSの方でひっかかってましたわ
>>825 参考までに、OSで引っかかってたってのはどうやってわかるのん?
827 :
Now_loading...774KB:2012/08/15(水) 11:21:58.41 ID:FYcyRdAc
ブラウザ上でflashが表示されてる部分をphpか何かで動的にスクリーンショット撮って
それをtwipicあたりにアップロードする仕組みを作りたいのですが、
実装しようにもどう検索すればいいのかわかりません。
ASだけでも出来るんでしょうか?
828 :
Now_loading...774KB:2012/08/15(水) 11:29:19.74 ID:FYcyRdAc
ブラウザ上でflashが表示されてる部分をphpか何かで動的にスクリーンショット撮って
それをtwipicあたりにアップロードする仕組みを作りたいのですが、
実装しようにもどう検索すればいいのかわかりません。
ASだけでも出来るんでしょうか?
おもふく
だいたい、phpで動的にスクリーンショット撮るっていうのが無理なんだがw
Flash部分だけならASで作れるが。
832 :
Now_loading...774KB:2012/08/16(木) 06:35:33.00 ID:guMbkLf7
アクションスクリプト3.0にて
メインタイムライン上フレーム1に配置したFLVPlaybackを再生、
停止後(movie_01.stop();)、フレーム2に移動して、フレーム2に配置したFLVPlaybackを再生、
停止後(movie_02.stop();)、フレーム3に移動して………、
という事を繰り返すプログラムを組みました。
ガベージコレクションがこまめに機能しないと、メモリがあぼんするので、
メモリを強制解放するつもりで
System.gc(); がフレーム移動毎に動作するプログラムを組みました。
adobe premiere プレビュー上の動作ではメモリが解放されるのが確認できたのですが、
スタンドアローン型のデバッグ版Flashplayerでは機能しません。
どなたかメモリを解放もしくは負荷を回避する方法をご存じないでしょうか?
そもそもそれFPで使える機能じゃないよ
834 :
Now_loading...774KB:2012/08/16(木) 07:39:25.95 ID:guMbkLf7
835 :
Now_loading...774KB:2012/08/16(木) 16:50:05.38 ID:9xqzJ8c3
はいはい、AIRですね
>>834 確かにデバッグ版プレイヤーなら可能だけど本番は普通のプレイヤーなんでしょ?
なら普通はflashでSystem.gc()なんぞ使わん
> Flash Player デバッグ版のみ。
書いてあるよねw
839 :
Now_loading...774KB:2012/08/17(金) 00:10:17.47 ID:YLPHvtgk
>837
スタンドアローン型デバッグ版でプロジェクターを作成し、それを配布するつもりです。
System.freeMemoryとかSystem.totalMemoryとか使って使用量見てみたら?
GCが実行されないってことは基本的に実行する必要がないからだと思うけど
842 :
Now_loading...774KB:2012/08/17(金) 01:49:14.73 ID:YLPHvtgk
>>840 `゙'''ー ..,_ `゙''ー ,,,>.._,.. ,,,.゙" .''-、 ヽ .l .! r ̄ 、/ /
- ..,,_"''― ..,,,_、 ゛..,,,_ `゙'''`-..,゛ rー `'-、 \ / 、,〃 //
、 .`゙゙'''〜 `゙゙''''― ..,,,_. { ミ `'-、 \(^o^ )/ メモリ解放したーーー!!!!!!.
`゙゙゙'" __ r'"⌒'- ..,,. ´゙"''―`''' ー= .`゙''ー ,,、 `'-│ │′ ″ / //
'-、, . _,゙,゙ ゙̄"" ! .`゙'ミ 、 .¬―-- ___ │ │
`゙"────' ゙'-- ―¬ ____ │ │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ⊂ω ) : ー ..,,_.
,, -――ー- . / .゙│ : ー''''"゙,゙.. ー'''',゙./ / \ 、, .`゙'''ー
/  ゙̄二ニ--、 : _,,,.. -ー'''' ゙ー- .″ .‐''"´ ,.. -''″ / \ \
.l゙ 二ニ-- ‘´ _,,.. -ー _..-‐'″ .,..ー _/ .i′ ! .l, 、 \
.l 'ニ―' ._,,.. -‐'''"゛ ,,, -'"゛.,.. ,/´ / , .l゙ | ヽヽ ヽ `-、
... --ー'''^゙´ .ヽ _;;jjl″ ._,,, ._..-''"゛._.. ‐'´ ., / .../ ../ . l ! .! .ヽヽ ヽ .`'-,
. ゙'ー ..,,.. .'“´ ,,‐'" .''彡….‐'″ ,/゛ . ,/ ./ ., ! ,! ! .ヽ ヽ ヽ
すげーこれすげーなんでこれで解放されるのかわかんえーけどすげーー!
843 :
Now_loading...774KB:2012/08/17(金) 02:03:31.51 ID:YLPHvtgk
>>840 1フレーム前のmovieに関してはnullになっていたのでGC対象になるはずなのですが、
System.gc()はなぜか機能しませんでした。
>>841 私のPCのメモリーが16Gあるので、働かなかないのかもしれません。
GCに関しては起動条件に関してもう少し調べてみたいと思います。
とにかくこれで久しぶりにゆっくり寝れそうです。ありがとうございました。
844 :
Now_loading...774KB:2012/08/17(金) 11:14:53.19 ID:0zzZ/cAF
flash air を使ってiphoneアプリを作っています。
そこでStageWebViewを使い、広告を表示させようとしているのですが、
広告の表示までは出来たのですが、
広告をクリックするとStageWebView内でページが切り替わるだけで
新規でウインドウを開いてくれません。
以下のコードに何かを付け足すことによって、広告をクリックした際に、
新規ページでウインドウを開かせることはできますでしょうか?
var swv:StageWebView = new StageWebView();
swv.stage = stage;
var rect1:Rectangle =new Rectangle( 0, 432, stage.stageWidth+15,100);
swv.viewPort = rect1;
swv.loadURL("広告URL");
845 :
Now_loading...774KB:2012/08/17(金) 15:14:04.57 ID:ghYxwOPr
初歩的ですみません。わかるかたお願いします。
WindowedApplicationのリサイズがかなりモッサリしているのですが(素のままで配置コンポーネントなしでも)、なぜしょう?
こちらでもなんのイベントも取っていません。
FlashCS5でAS3を最近始めた初心者です。
ASの練習用に 落ちてきたアイテムを拾うと10点得点が入る というゲームを作っているのですが、
アイテムを拾った時そのアイテムがどうなるかという部分がどうしても上手くいきません。
ここのスレの方ならどう記述するかお聞きしたいです。
847 :
Now_loading...774KB:2012/08/18(土) 22:51:26.05 ID:rtxIoJaM
AS3,WinXP-Pro,CS4
横長のMC内に子としてテキストフィールド(ダイナミックテキスト)を設置したのですが、
MCに対して addEventListener(MouseEvent.ROLL_OVER, func_RollOver) としたところ、
子のテキストフィールドが縦方向にはみ出しウスが反応してしまい困ってます。
模式的には
■■■テキストフィールド■■■ ← 本来は横長のここだけの領域
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□ ← この白抜きエリアでもROLL_OVERとして感知される
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
変な話ですがテキストフィールド(TF)が矩形にはみ出している格好です。
※このTFは new TextField(); して
TF.x = 20;
TF.mouseEnabled = false;// 一時的にマウス不可
addChild(TF); というように単純に設置しているだけです。
試しにTF無しにしたところ症状は発生しませんでしたのでTFが原因のようですが、TFの
高さをtextHeightで調べると15でしたので本来の横長領域より縦は短いです。
このような症状を回避するにはどうしたら良いでしょうか?
MCのmouseChildrenプロパティをfalseにしてやるとか
>>846 拾う=網か何かに当たる と解釈すると、一番簡易なのは Event.ENTER_FRAME で
監視しつつ hitTestObject で衝突判定する方法かな。
addEventListener(Event.ENTER_FRAME, onFrame, false, 0, true);
function onFrame(evt:Event) {
if(落ちてきたアイテム.hitTestObject(網とか) == true){
// 10点得点が入るとか
}
}
でも常時 Event.ENTER_FRAME だと負荷がかかるから、不要な時には
removeEventListener(Event.ENTER_FRAME, onFrame); でリスナーを外すとベター。
>>848 早速さんきゅう。試してみます。
850 :
847:2012/08/18(土) 23:16:41.21 ID:rtxIoJaM
>>848 テスト用SWFでは症状は回避されたのですが、本番用だとダメです。
お手数をかけてすいません。
TextFieldのautoSizeを設定してやるとテキスト表示に必要なサイズに自動的に変更されるけど
そういうことじゃないのかな?
>>849 解釈はその通りです。説明不足で申し訳ないです。
hitTestObjectあたりは出来たのですが、アイテムに当たっている間ずっと10点ずつ入ってしまうので、
「アイテムをどうするか」という部分に非常に悩んでしまいまして。
普通に考えると得点が入ると同時に消すのがいいと思うのですがなかなか上手く行かないんです。
消せばいいんじゃない
ずっと10点はいるのはアイテムに入手済みフラグを持たせとけば?
854 :
Now_loading...774KB:2012/08/27(月) 20:29:25.72 ID:4nOaeRCl
> 上のフラッシュをスクリプトを交えてゲームにしたいのですが、
> ぜひお教えいただけないでしょうか。お願いします。
これがActionScriptの質問なのか…
858 :
Now_loading...774KB:2012/08/27(月) 23:52:27.20 ID:UrtsF19Z
>>857 遅レスすみません。
自分で調べてもよくわからないもので・・・。
onclipeventというものを使うということはわかったのですが。
まずキーを押すと一定速度で上昇し、話すとその速度で落下するということを
やりたいです。
よろしくお願いします。
なんでも良いけどプログラミング言語の経験はあるのか?
なんでも良いけど制作環境書けよ?
861 :
Now_loading...774KB:2012/08/28(火) 01:34:18.68 ID:JuxqIk01
経験ないです。
正直これくらいならできそうと思っていたのですが、中々思うように
できません。もっと勉強するべきでしょうか。
paraflaというソフトを使っています。osはxpです。
教本などはなく、情報は全部ネットから集めました。
・自分は使ったことが無いけどparaflaならアクションスクリプト1.0互換のプログラミング言語が使えるらしい
・parafla自体の操作方法やグラフィックの作り方などはスレチなので自分で調べてください
・変数や関数とは何かとか、if文とかfor文の意味を知らないならまずそれを勉強する必要がある
・いきなりゲームを動かすのは大変なのでまずparaflaのトレースウィンドウに数式の計算結果や文字を表示するとか単純なものから
やっていくと良いのでは
まあぱらふらスレで聞いてんだからそっちに教えてもらうんだな
きっと専門家がたくさんいるよ
864 :
Now_loading...774KB:2012/08/28(火) 17:54:05.96 ID:Wr3UrKov
わかりました。そちらで聞くことにします。
失礼しました。
AS2.0のBitmapdataで画面のSCをFLASH内で作れるようになったのですが、
このFLASH内で作った画像をphpか何かで自分のサーバーにアップロードする方法はあるんでしょうか?
できれば他の言語を介せずにFLASHだけでアップロードしたいのですが。
AS3+PHPで画像をサーバーに保存する流れについて質問です。
それを実現するソースコード自体は検索すればすぐに出てくるからいいんですが、
ttp://alwaysfinetuning.com/ao-blog/2009/10/as3-8.html $GLOBALS['HTTP_RAW_POST_DATA']の値から画像をそのまま保存する場合、別のフラッシュからでも画像をアップロードできてしまうのでしょうか?
指定したページのフラッシュからしかアップロードできないようにしたいんですが・・・
どういった解決策があるのでしょうか?
ホストで弾けばいいじゃん
flashCS5.5 win7 です。
繰り返し使う命令を関数にしたいのですが、引数の使い方がわからないでいます。
function Hoge():void{
mc.x=20;
}
という関数を、Hoge();で使い回したいのですが、
引数を使って、mcの後ろの数字を変えて使い回す場合
どうすればいいのでしょうか?
よろしくお願いいたします
Hoge(x:String){
mc[x]=20;
}
AS3.0もコレ使えるの?
function hoge(hogege:String):void{
this["mc"+hogege]=20;
}
で、どうだろうか。
869、870
ちょっとやってみます!
自己解決しました。
根本的なミスで別プロジェクトでload用のクラスを作っていました…。
as3.0でローカル関数って
処理が終わったら消えるの?
モグラ叩きっぽいのを作ってるんだけど
関数内でタイマー宣言してコンプリートしたら
モグラだす、的な流れにしてるんだけど
延々とタイマーが増え続ける、とか・・・無いよね・?
イベントリスナー参照があるとGC対象から除外されない
ごめん、除外「される」
877 :
Now_loading...774KB:2012/09/16(日) 11:06:03.88 ID:TVzrPFaH
すみません、質問させてください。
ActionScript2.0でFlash Lite向けに開発しています。
シェイプやテキスト、画像(リソースで、外部から読み込む必要がないものです)を表示しようと、main(swfRoot:MovieClip):Void {}の中で
swfRoot.beginFillやswfRoot.swfRoot.createTextFieldでシェイプ・テキストの表示ができています。
背景画像として画像を表示するのにswfRoot.attachMovieを使うとシェイプが消えてしまい、画像とテキストだけになってしまうのですが
何か描画の階層を変更する必要があるのでしょうか。
もし他の画像表示方法があれば、教えてください。
>>877 解決しました。swfRoot.createEmptyMovieClipで新しくMovieClipを作成してから
そちらに画像をattachMovieすればよいですね。お騒がせしました。
879 :
Now_loading...774KB:2012/09/16(日) 20:46:39.31 ID:RCeLxoLZ
CS5.5 AS3 パッケージ名をどう指定すればいいのかわからねえ エラーメッセージ↓
>5001: パッケージ 'org.aaa.bbb' の名前にこのファイルの場所が反映されていません。
>このファイル内のパッケージ定義の名前を変更するか、ファイルを移動してください。
やりたい事:ライブラリ内のMCをクラス定義したい
ActionScript設定からソースパス(C:/Users〜〜org/aaa/bbbのフルパス)を通し
MCのプロパティでチェックボタンを押すと 「このクラスの定義がC:/Users〜〜org/aaa/bbb/クラス名.asで見つかりました」と出る
MCのクラスのパッケージ名は package org.aaa.bbb{ と指定 しかしパブリッシュすると上記の5001エラーが出る なんで?
パッケージ名をフルパスにしてみてもだめだった package{ のみでもだめ
ちなみにFlaファイルと同じ階層にクラスファイルを置いて package{ のみだとエラー無し
そもそも階層構造だとダメなのか?? ドキュメントクラスは使っていない
ソースパスはorgの1個上まででいいんじゃね?
org.aaa.bbbって指定するなら
881 :
Now_loading...774KB:2012/09/16(日) 22:49:39.53 ID:Sl4Xz/2z
環境) WinXP-Pro,CS4,AIR2.0
wonderflで使われてるFontLoaderクラスで質問です。
例えば
http://wonderfl.net/c/4tnWでは import net.wonderfl.utils.FontLoader; で使われていますが、スタンドアローンで
実行するのは不可能なのでしょうか?
試しに上の4tnWをZipでDL→(解凍)→SWFでPC上で実行したのですが何も表示され
ませんでした。 クラスというかライブラリでどっかからDL出来ないものでしょうか?
なお、
http://wonderfl.net/c/8Zh5では「ローカルでも試せる!」とのことですが、Zipで
DLしてSWFを再生しても何も現れません。
宜しくお願い致します。
※何故wonderflで直接聞かないのかと言いますと、今迄wonderflで3回質問しましたが
全て一ヶ月以上経っても1個も応答がなかったのでここで聞きました。
883 :
881:2012/09/16(日) 23:05:20.22 ID:Sl4Xz/2z
>>882 早速有難うございます。
サイトにあるZipをDLして、src/net/wonderfl/utils内でFontLoaderが見つかりました。
試してみます。
>>880 だめですな…orz ファイル構造はこんな感じ↓
Flaファイル
orgフォルダ - aaaフォルダ --------- bbbフォルダ ------- ccc.as (MCクラス定義ファイル)
main.as
- 各コンテンツフォルダ
- 以下色々
- libspark とか
- papervision3d とか以下色々
ソースパス C:\Users\ユーザー名\Flash\CS55\org\aaa\bbb (MCプロパティのリンケージで検出済み)
ccc.asのパッケージ名
package{ //5001エラー
package org{ //5001エラー
package org.aaa{ //5001エラー
package org.aaa.bbb{ //5001エラー
package Users.ユーザー名.Flash.CS55.org.aaa.bbb{ //5001エラー
package C.Users.ユーザー名.Flash.CS55.org.aaa.bbb{ //5001エラー
わあー 信じられない できた…!
やはりパッケージ名はディレクトリ構造と同じでおk
ソースパスは .\org\aaa の1個手前のフォルダまで指定
問題はMCプロパティのリンケージ設定で デフォのままだとクラスファイルしか表示されてないんだ
で そこに org.aaa.bbb.ccc とパッケージ名を含めたファイル指定でうまくいった
クラスファイル名のままでもチェックボタンで「見つかりました」と出りゃ そらここが怪しいとは思わないわ
ひどい話だ
常識だろ
そこ指定しなきゃ別パッケージの同じクラス名のやつどうすんだ
>別パッケージの同じクラス名のやつどうすんだ
そう言われて色々試してたら MCリンケージでパッケージ名+クラス名指定すりゃ
ソースパス通さなくても動いたな
パス通す時ってのはFlaファイル位置より親の違う構造の時だけでいいのか
しかし解り辛いのには違いない Flaファイルと同階層以外の構造ですんなり出来たやつぁ少ないはずだw
そもそもエラーメッセージが悪い
「このファイル内のパッケージ定義の名前を変更するか、ファイルを移動してください。」 としか出ない
二択だものw 「リンケージのクラス名指定でパッケージ名が含まれてません」とか出りゃ1発だったなw
馬鹿には無理
出来上がったswfファイルを80KB程サイズを減らす必要があって
フレーム数を変えずにサイズ減らすには何が効果的でしょうか?
画像の圧縮率
>>890 徹底したシェイプのパス削り(円なら2パスでいける)
画像なら
>>891の言うように圧縮率
文字あるならデバイスフォントに切り替え
出来るだけ分解する(場合によっては分解したら容量増える場合もある)
インスタンス化出来るものは極力インスタンス化して使いまわし
ざっと思いつくのはこのくらいかな
>>890 ごめん、80k減らす、を見てなかった
そんなに減らすんだったらオブジェクトの単純化なんかも
視野に入れる必要出てくるんじゃないかな。
どんなものか分からないけどフレームを削れないなら
絵そのものをシンプルなモノに変える、などをしていかないと
>>892で言ったようなことは最後の削りの部類だから。。
894 :
Now_loading...774KB:2012/09/18(火) 14:09:27.86 ID:pJrKpA4Q
質問です。
AIRでURLLoaderを使ってAとBのサイトにアクセスしてるのですが、
両サイトのCookieの中身を取得するにはどうしたら良いでしょうか?
manageCookiesはtrueです。
AS2.0から3.0のフラッシュにlocalconnectionでbitmadataを送る事はできるんでしょうか
3.0の開発環境が無いので確かめる事ができないので
3.0の開発環境は無料ですぐ構築できます
コード書くならFlashDevelopすごいイイね
一応LocalConnectionするとObject型でbitmapdataを受け取ってはいるみたいですが、traceするとnullになってます。
やり方が悪いのか、そもそも不可能なのかが分かりません。
>>898 traceって、トレースの引数は文字列型でしょ。
バイナリーをいきなりトレースはできないのでは!
キャストした?
>>899 キャストはしてませんが、
受け取ったと思われるbitmapdataをdrawしようとしたらエラーが出ます。
そもそもbitmapdataが送られてないのか、drawできないのかが分かりません。
traceの引数って別にString限定では無いが。
toString()が呼ばれるだけ。
エラー出た 1023: オーバーライドに対応していません。
オーバーライドはメソッドの戻り値の型を変更出来ないんだっけ?
引数も戻り値も変更できない
了解 AS3はオーバーロードも無いんだよね?
ないねえ。4ではわからんけど
了解
4っていつ頃なんだろ もう大まかな変更点なんて無いんでしょ?
3D関連のコンポーネント制御用の何かとかかな
またまた教えてもらいたい 妙な現象が起きた
読み込んだPNG画像(png24)からgetPixel、getPixel32を使って「正確な色」を抽出したいんだけど
画像ソフトで設定した色と若干変わってしまう
白色の場合 画像ソフト→ ffffff
getPixelで抽出→ fdfdfd
青色の場合 画像ソフト→ 0000ff
getPixelで抽出→ 0000fd
なぜだろう 他の色も若干変わってしまう
getPixel32は透明度のあるやつは正確な?値がとれないっていうのはある
getPixelのほうはなんだろ…
•AS3で色指定して塗ったものからgetPixelしたらあっているか?
•画像ソフトで設定したその画像を他のカラーコードを取れるソフトで判別するとどうなのか?
このへんはどうでしょ
909 :
907:2012/09/23(日) 09:52:46.47 ID:nc/VnqKq
レスどうもです 昨日の続きです
外部読み込みの時のみ青色に限らず他の色もHSBカラーのBが1%下がってしまう …なぜだ
青ff→fd 白ffffff→fdfdfd 濃い緑a651→a44f
手動で画像をライブラリに読み込みMCにしステージ上に配置
var bm:BitmapData = new BitmapData( サイズ指定 );
bm.draw( 配置したMC );
trace( bm..getPixel( 0, 0 ).toString(16) );//左上隅の青色 結果:ff
ローダー処理で外部読み込み
var bm:BitmapData = ローダーオブジェクト.content.bitmapData;
trace( bm..getPixel( 0, 0 ).toString(16) );//左上隅の青色 結果:fd
一回受けてdrawでコピーした場合も同じ
var obj:DisplayObject = ローダーオブジェクト.content as DisplayObject;
var bm:BitmapData = new BitmapData( obj.width, obj.height, false );
bm.draw( obj );
trace( bm..getPixel( 0, 0 ).toString(16) );//左上隅の青色 結果:fd
910 :
Now_loading...774KB:2012/09/23(日) 17:33:51.36 ID:1oBNblMa
MC(Sprite)の分身の作り方で質問です。
AS3,FlashCS4以降、Player10.0以上
配置としては
http://uproda11.2ch-library.com/365180E0V/11365180.png のようにオリジナル(本体:A)があってその背後に分身(コピー:B)を作りたいです。
※Bは半透明にして背後霊みたいに存在させたいです。
決まった挙動のオブジェクトであれば A = new MCのクラス(); B = new MCのクラス();
として addChild(B); addChild(A); で設置できますが、ランダム関数を用いたノイズや
http://wonderfl.net/c/hknU だとソックリそのままダミーを再現することができません。
AS2なら duplicateMovieClip() でコピーできますが、AS3だと厳密な複製は不可なので
困ってます。
1つの案としては、Adobeのサイトで見かけた鏡像を作る方法で
■ ←オリジナル
−
□ ←鏡面に映ったダミー
があるかと思いますが、このサイトのURLを失念し参照できません(誰か知ってますか?)。
何かアドバイス頂けたら幸いです。
質問です。
import flash.ui.Keyboardなどでインポートされる標準ライブラリ?の中身を参照したいのですが、
(環境等による違いがあるかもしれないので大体)どの辺にインストールされているのでしょうか?
というか、そもそも参照できるのでしょうか?
912 :
東京・急募:2012/09/23(日) 18:46:33.09 ID:Pc4Mk8j3
【ホームページ作成出来る方募集】
ベースになる原稿は有ります。
業者にお願いするよりも割安で作成して頂ける方ご連絡下さい。
企画・構成・等も出来る方だと助かります。
料金も前金でお支払いしますので
都内で打ち合わせ出来る方宜しくお願い致します。
先ずはメールにてお問い合わせお待ちしてます。
メアドが何か怖いw
FLASH CS6 as3
質問させて頂いて宜しいでしょうか。
複数の動画のループ再生の方法で困っております。
【やろうとした事】
外部の動画ファイル(2秒程度のアニメ)を絶え間なくループさせる。
動画ファイルは数パターン有り、クリックや時間で時折変更する。
(例・2秒の雨がループし、時折ループ中に雷の動画を挟んだり窓が揺れたりと…)
【行なった事】
6パターンの動画を使用する場合
最初に
new NetStream() ※6回
new Video(); ※6回
addChild (Video); ※6回
info.code == "NetStream.Play.Start"
の読込開始時に
seek(0); pause(); visible=false;
で一旦全ての動画を止めました。その後に表示する動画を
visible=true;
resume();
しましたが、この時に結構な割合で読込の失敗や画面が固まるなどと言う事が起こります。
※10回か20回に1回くらい
画面が固まった後、数票後に読込失敗した場合は黒いまま進み、成功した場合は表示されます。
これを避ける方法はあるでしょうか。
また、私のやり方など間違えているでしょうか。
もっと良い処理の仕方など御座いましたら教えて頂ければ幸いです。
結局localconnectionでbitmapdataを送るのは不可能なんですか?
918 :
Now_loading...774KB:2012/09/25(火) 04:53:26.59 ID:RgW8rsfM
>>910 BitmapDataに描画して配置すれば?
>>915 動画の読込途中なのに再生してるんじゃない?
「文字列16進数」の計算で結果も16進数で欲しい場合
10進数に変換→計算→16進数に再変換しかないんだ? これが最短で最速?
リアルタイムゲーなんかで16進数の文字列データの書き換えなんかは
substr、substring使って切り分けて繋ぎなおした方が単純に速い?
var d1:int = 0xff;//number型の16進数
trace( ( d1 + d1 ).toString(16) );//結果:1fe(510)
var d2:String = "FF";//string型の16進数
trace( ( parseInt( d2, 16 ) + parseInt( d2, 16 ) ).toString(16) );//結果:1fe
920 :
915:2012/09/25(火) 11:10:39.98 ID:knf2i8Uh
>>917 918
ありがとうございます。とても参考になりました試してみます。
最短だと思うが。
どうもです
気が付いたんですが 32ビット以内の場合に限りデータ型をStringじゃなく
uintの16進数にすればいちいち変換しなくてもビット演算等で書き換えれますな
内容を確認したい時だけストリング変換で…
32ビット以上の長いのや他のアスキー文字が必要な時がString型のsubstring切り分け方式か
923 :
Now_loading...774KB:2012/09/25(火) 13:17:34.65 ID:0O+ZIfGi
as3.0でモグラ叩きのような動作がどうしても思いつかなくて
困っています。
(出来るだけ)ランダムに出たり引っ込んだりしている。
クリックすると引っ込む。
場に出るモグラは5個
どなたかアドバイスいただけないでしょうか。。。
924 :
910:2012/09/25(火) 13:36:23.14 ID:EVLMKLsT
>>918 てんきゅう。BitmapDataでやってみます。
>>923 var timer:Timer = new Timer(ミリ秒, 回数); で kazu = Math.floor(Math.random()*100);
kazu= 0〜99 の数を発生させて kazu が5とか7の素数の倍数になった時、つまり if(kazu%7 == 0){}
で処理すれば?
5個のモグラも別のkazuA if(kazuA%素数 == 0){} で出現するかどうかを判別する。
といった感じでどう? %の右隣が素数になってるところがポイント。
926 :
Now_loading...774KB:2012/09/25(火) 19:07:05.78 ID:SCAUKKMB
IOErrorになったurlを取得する方法はないでしょうか?
IOErrorEventからはとれないみたいです。
Air for Android でソースを書いていて困ったことがあったので、誰か助けてください・・・。
まず、ちょっと重めのMC作って、再生がゆっくりになってしまったので、
フレームスキップをして等速で表示するようにしたんです。
それで、そのアニメーションのMCは仕様上は繰り返し表示されるので、
ムービークリップのCacheをフレーム毎にBitmapDataに動的に作成するようにライブラリを組みました。
ここで問題が発生しました・・・。
フレーム30→フレーム5のようにフレームを戻ってdraw()した際、
フレーム5の内容の上にフレーム30の内容がBitmapDataに
レンダリングされる現象が確実に起こる事が発覚・・・。
回避方法探しているのですが、誰か知りませんか?
ちなみに、再現するのはAir for Androidでだけです。
929 :
928:2012/09/27(木) 06:25:51.59 ID:4DUYFwwq
スピード自己解決しました。
描写元のMCのvisibleをBitmapDataにdraw()するときだけtrueにして解決しました。
どうやら、MCのvisibleをfalse→trueに設定し直すと、
ステージからは見えないMCでも表示が更新されるようです。
逆に言うと、addChild()してなくてもMCのvisibleをtrueするだけで、
デバイスの処理能力を使うということですね・・・。
それにしても相変わらず、書くと自己解決する不思議なスレだ・・・。
自己解決かとおもいきや、実機だとまだなるっぽい・・・。
javaで簡単なAndroidアプリ作れるくらいのレベルでAS3は全く未経験
FlashDevelopを使ってゲームを作りたい
初歩的な所〜解説してるサイトはありませんか
関係ないけど、TLFテキスト使うと
swfの変数の受け渡しが出来なかったり、前のフレームに戻ると
動画が消えたり変な事起こるね…
クラシックテキストにすると治るんだよね(`・ω・´)
>>934 俺もソレじゃないけどTFLテキストで縦書きしたら
表示されなくなったり、fla自体が強制終了したり
おかしな事は起こってたよ
うちもTLFは敬遠してるw
なんか挙動がおかしいんだよな
文字、文章主体の作品用に開発されたんだろうけど使ってる人は少ないと思うw
937 :
910:2012/09/28(金) 15:53:17.64 ID:Shrz+u30
(背後霊のようにMCのコピーを作る件)
実際にBitmapDataでやってみたので報告。
簡単なアニメーション(ある点を基準に円盤が環状線の様に動く)で試したらOKでした。
ただし、複製したオブジェクトは Event.ENTER_FRAME で addChild(ビットマップ);
追加し、古いビットマップは毎回削除して null にしてますが Player10.0 ではメモリーが
増加の一途です ※CS4のデバッグPlayerならGCが効くせいか大体一定。
デバッグの Player10.1 でも増加の一途だったので、長時間の実行には不向きのようです。
以上
1回作って位置を変えて使いまわすのじゃダメなのか?
EnterFrameでオブジェクト作ったりaddChildする設計なんて
どうしてもそれしかない時くらいやらんだろう普通…
enterFrameでBitmapDataにdrawでしかもnewしてるとか正気じゃねえな
BitmapDataはちゃんとdisposeしてんの?
>>938 MovieClipのアニメーションなんじゃないかな
なんだかルー語みたい
942 :
910&937:2012/09/28(金) 22:57:26.51 ID:Shrz+u30
943 :
910&937:2012/09/28(金) 23:28:37.10 ID:Shrz+u30
(追記)
Bitmapオブジェクト.bitmapData.dispose(); でメモリー消費を抑えることが出来ました。
増えるのは変らないのですが、時間当たり増加量が1/100くらいになりました。
(Player10.1なら、1分動かしてもプラス2MBくらい)
944 :
Now_loading...774KB:2012/09/29(土) 00:11:54.70 ID:6b50Cdls
FLASH CS5 as3
大変初歩的な質問で申し訳ないのですが、よろしくお願いします。
例えばシーン上に無数のムービークリップが配置されているとして、
この中で「test1」「test2」・・・
というように「test」という名前がついたインスタンスのみを一括でremoveChildしたいのですが、
何か効率的な方法はありますでしょうか。
946 :
944:2012/09/29(土) 02:21:31.63 ID:6b50Cdls
>>945 おかげさまでバッチリうまくいきました!
しかも追加情報まで頂いて、ありがとうございました!
947 :
Now_loading...774KB:2012/09/30(日) 17:29:01.34 ID:eseuYZHT
すいません、知っている方いたら教えてください。
Flash Builder 4.6で、モバイル開発を行っています。
現在、ビューをActionScript3で書こうと思っているのですが、
うまくいきません。
やりたいことは、VGroupの中に、ボタンを複数持ったHGroupを6段、
上から順に並べたビューを作ることなのですが、なぜか1段目の
HGroupしか表示されません。
ソースは下記の↓安価に。
948 :
947:2012/09/30(日) 17:33:36.37 ID:eseuYZHT
var vgroup:VGroup = new VGroup();
vgroup.percentWidth = 100;
vgroup.percentHeight = 100;
vgroup.verticalAlign = "center";
vgroup.horizontalAlign = "middle";
this.addElement(vgroup);
for(var i:int = 0; i < 6; i++)
{
var hgroup:HGroup = new HGroup();
hgroup.percentHeight = 12.5;
hgroup.percentWidth = 100;
hgroup.verticalAlign = "middle";
hgroup.horizontalAlign = "center";
for(var j:int; j < 7; j++)
{
var button:Button = new Button();
button.percentHeight = 70;
button.percentWidth = 10;
button.label = ((i+1)*(j+1)).toString();
hgroup.addElementAt(button, j);
}
vgroup.addElementAt(hgroup, i);
どこがおかしいのでしょうか、ご教授願います
>>948 for(var j:int; j < 7; j++)
↓初期化する
for(var j:int = 0; j < 7; j++)
950 :
Now_loading...774KB:2012/10/01(月) 03:11:56.54 ID:yWCEu7hI
>>943 BitmapDataをdisposeするとか論外。
バッファを開放せずにfillRectで塗りつぶすなどして再利用しないと。
Flash AIR for androidにて
OSCでデータを送信する際にインスタンス名を送りたいと考えてるのですが
どのようにすればいいのでしょう・・・
必要そうなところだけ抜粋します。
受信側では" "で囲っている / instance.name が現在表示されるようにしています。
instance.nameのところになんとか代入?とかできないでしょうか
基礎からよくわかっていない状態ですがよろしくお願いします・・・
ball_pink.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);
ball_blue.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);
ball_green.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);
ball_yellow.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);
var myMsg:OSCMessage = new OSCMessage();
myMsg.address = "/";
myMsg.addArgument("s", "instance.name");
function fl_TapHandler(event:TouchEvent):void {
oscManager.sendOSCPacket(myMsg);
}
952 :
Now_loading...774KB:2012/10/04(木) 15:38:29.18 ID:BuhP21SN
as3.0 CS6で製作しておりますが、質問させてください。
クラスで動的に生成したmcをremoveChildしたい場合は
変数をremoveChildする、というような形になるのでしょうか・・?
>>953 そ・・・そうですよね。。。?そうだと思っていたのですが。。
タイムライン上に
var add_hoge:Inu=new Inu(hoge);
で、タイムラインに静的に配置したMC(hoge)の中にカスタムクラスで生成した
mcをaddChildしたんです。
それをタイムライン上のスクリプトでremoveChild(add_hoge)すると
InuはDisplayObjectじゃないからダメよ、的なエラーが出るのです。。
なんでなんでしょうか??!!
ご教示いただけないでしょうか。。
removeChild(add_hoge as DisplayObject) でやってみたらどうなる?
>>955 指定したDisplayObjectは呼び出し元の〜・・となりました。。
位置が違うのでしょうか・・・?
配列に放り込んだらいいのかな・・・・と思って
var add_hogeを配列に変えて
add_hoge[0]=new Inu(hoge);
にしてみたのですが、それでも
removeChild(add_hoge[0])
すると、指定した DisplayObject は呼び出し元の子でなければなりません。
と言われております。。
場所がどこだかまるで見当がつかず困っております。。
>>957 まず、Inuは、DisplayObjectを継承しているの?
MovieClipかSpriteか?
で、ちゃんとタイムラインにaddChild(add_hoge);
しているの?
addChildしてないとremoveChildできないんで
>>958 ??ちょっと気になったのですが、クラスからaddChildするのと
タイムラインからaddChildするのって違いがあるんですか?!もしかして。。
クラスでaddChildしたものをタイムラインからremoveChild出来ない・・・とか・・?
>クラスでaddChildしたものをタイムラインからremoveChild出来ない・・・とか・・?
クラスの方でremoveChildさせるpublicメソッド定義しときゃいいんだお
タイムラインからnewしたんなら そのインスタンスから操作できるべ
どっかのサイトでOOPの基礎的なもん勉強しるんだ C++でもJavaでも内容は似てる
>>959 とにかく、インスタンス化したInuクラス、add_hogeってやつは、
addChild(add_hogeっ)してるんであれば、removeChilc(add_hoge)
できます。
FlashProfessionalでは、addChildの記述なしでaddChildできるんで
そこんとこが分かってないのかと
ただ、newしてるんでこの場合は、addChildしないと
いけない。ここはOKですか?
>>960 すみません。。ちょっと興味本位でクラスでaddChildしたものを
タイムラインの方でremoveChild出来たら便利だなぁ、と漠然と思って
作り始めたものでして。。。
>>963 試しに、
add_hoge.removeChild(add_hoge.getChildAt(0));
これで消せるのでは?
>>964 指定したインデックスが境界外です。
とのお言葉が・・・
やっぱりクラス内にメソッド作ってそれで消す方がいいのでしょうか・・。
本などを購入していたのですが、addChild、removeChildに関しては
どの本も両方ともクラスの中でやってるか、タイムライン内でやっていたので
クラスでaddChildしたものをタイムラインでremoveChildするには
どうすればいいんだろう。。と思ってやってみた次第なのですが
まさかこんなに分からないとは・・・・・・
>>965 ちょっとまって?やっぱりaddChildやってない気がする....
0が境界外ってことは、childがないってことだよ。
つまり、addChildしてないってことになる。
クラスに渡したhogeってやつもaddChildしてないのでは?
>>966 addChildしてる場所が違う、ってことも考えられますか?
クラスに渡す際にaddChildする場所を渡しているので
勝手に自分でhogeの中の子になる、と思い込んでいるのですが・・
>>967 え?Inuクラスの中にhogeをaddChildするんじゃないの?
hogeの親は、なんなんですか?
>>968 最初から配置しておりますのでhogeの親は・・stage?になるのだと思うのですが・・・
hogeをタイムライン上からremoveChildすると中身も全部消えるので
hoge内にあるかと思うのですが、add_hogeをremoveChildすると
「元の子じゃなきゃだめよ〜」と言われます。。
でも、すみません。。
ギブアップです。。
自分でもいろいろとやってみたのですが「どうしても分からない」から
「何がどうなってんのかも分からない感じ」になってきました。。
素直にクラス内にメソッド作ってそっちで消そうかと思います。。。
なんで出来ないのかがどうしても気になるのでまたやってみます。。
拙い説明に対していろいろとご指南していただきまして、本当に
ありがとうございました。
>>970 ああ!すみません!!
最初はソコとこっちとどっちか迷ったのですが
actionscriptだし。。コッチか・・・・と思いまして・・・
マルチするのもアレだし・・・と思い、コッチでやってしまいました。。
今度は超基本的な方で伺います。。
>>970 どうしても悔しいからもう一度思いついたことをやってみたら出来ました!!
hogeの中にもう一つpopoというMCを作って
その中に生成するようにしてから
hoge.popo,removeChildAt(1);
で消えました!!
indexの0はpopoの判別用に背景差してたので1にしてやりましたが。。
何故出来たのかはイマイチ、ピンと来てないのですが
ぼんやりと把握できました。。
結果から行くとちゃんと伝え切れてない自分のせいだと思われます。。
長々と書いてるのにその都度アドバイスいただきありがとうございました!
すっきりして寝れます!
>>972 結局、どのインスタンスにaddChildしたかわからなかった、って事だろ。
>InuはDisplayObjectじゃないからダメよ、的なエラーが出るのです。。
この時点でInuはDisplayObject継承してなかっただろ
してたら指定したDisplayObjectは呼び出し元の〜が出るだろ
975 :
Now_loading...774KB:2012/10/05(金) 21:54:35.93 ID:xKHdjDfv
ココ.addChild()
ココ.removeChild()
の指定を省略したから一致しなかったんだろ。
元のソースで add_hoge.parent をデバッガで見てみろ。
後、リムーブはadd_hogeの参照だけでできる。
if(add_hoge.parent){
add_hoge.parent.removeChild(add_hoge);
}
以前as2.0→as3.0へLocalConnectionでBitmapDataを飛ばす方法を聞いた物です。
以下のコードを試しましたが、BitmapData自体は受け取ってるようですが
3.0側での描画が上手くできいません。どうすればいいのでしょうか?
2.0側(import等は省略)
// BitmapData オブジェクトを作成する
var bmp_data:BitmapData = new BitmapData(300, 200, true, 0xFFFFFFFF);
var m:Matrix = new flash.geom.Matrix();
var color:ColorTransform = new flash.geom.ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
var rect:Rectangle = new flash.geom.Rectangle(0, 0, 300, 200);
// _root のグラフィックをキャプチャする
bmp_data.draw(_root,m,color,"normal",rect,true);
_root.attachBitmap(bmp_data,0);
trace(typeof (bmp_data));
onMouseDown = function ()
{
connect = new LocalConnection();
connect.send("send","getCombo",_root.bmp_data);
trace("送った");
};
var connect2:LocalConnection = new LocalConnection();
connect2.client = this;
connect2.connect("send");
function getCombo(arr:BitmapData):void
{
trace("AS3: "+typeof(arr));
var bt : Bitmap = new Bitmap(arr);
stage.addChild(bt);
trace("もらった");
}
一応”もらった”が表示はされてるのでデータ自体は送られていると思うのですが・・・
getPixelとかでほんとにデータが入ってるか見てみるとか
var bt:Bitmapdata = new Bitmap(arr);
trace(bt.getPixel(0,0));
としたところ、
シーン 1, レイヤー 'レイヤー 1', フレーム 1、行 38 1061: 未定義である可能性のあるメソッド getPixel を、静的型 flash.display:Bitmap の参照を使用して呼び出しました。
だそうです。
arr.getPixel(0,0)だとそもそもlocalconnectionが機能しなくなりました。
BitmapData型の変数にBitmapをつっこまないでw
getPixelはBitmapDataクラスのメソッドだからarrから呼び出す
arr.getPixel(0,0)の値が取れないなら実際はデータ空の可能性があるんじゃないかと
っていうか左上はgetPixel(1, 1)っぽい
>>980 ありがとうございます。
arrで呼び出したらtraceで色々文句言われたので直してみます。
左上はgetPixel(0, 0)だろ?
>>980よ 980ゲットしたから次スレよろっす
984 :
980:2012/10/07(日) 12:06:04.45 ID:6iaqamAF
>>1の「ActionScript ライブラリ総合」の後継スレってどこだろ 外してもいいかな?
985 :
980:2012/10/08(月) 09:51:37.37 ID:Dp/pYWUS
スレ立て乙乙!
getPixelの人は解決したのかな?
おれもちょうど今ビットマップ関係の事をやってて興味があるw
こんにちは。質問させていただきます。
先ほどFlashCS5.5+FlashBuilder4.5.1で制作を始めました。
前にFlashCS5+FlashBuilder4で少しだけやったことがあったので、とりあえずFlashCS5.5のライブラリに一つ画像(png)をD&Dで追加し、
プロパティからActionScript用へ書き出しにチェックを付けました。(基本クラスはBitmapData)
特に機能を追加する必要がなかったのでokで終了。
その際、いつもの警告が出ました。
「このクラスの定義がクラスパス内に見つからなかったため、定義は書き出し時にSWF内に自動生成されます。」
いつも通り無視してBuilderに戻りインスタンス化しようとしました。
こんな感じです・var bmp:Bitmap=new Bitmap(new MyBitmap( 幅, 高さ ) );
そしてctrl+enterでムービープレビュー。一枚ビットマップが描画されました。
(addChild等の部分は省いています)
おぉこれでいけるかなと思った矢先、エラーではないのですがbuilderの
イメージをインスタンス化している行に警告がブレークポイント表示場所に?マークで表示されました。
型が見つからないか、コンパイル時定数ではありません:MyBitmap
マウスを合わすと上記のような警告が…。
確かに定義は埋め込み時に行われるからまだないとは思うのですが、
FlashCS5+FlashBuilder4の時にはこの警告は出なかったです。
一応MyBitmap.asを作れば警告は消えたのですが、
これでは画像分.asが必要になってしまいます。
またブレークポイントの表示場所と被っていて目障りです。
どうにかしたいのですが、どのような対処をしたらいいのでしょうか?
swcも書き出してプロジェクトのライブラリパスに追加すればいけそうな気がするかも
getPixelのアレですが詰みました。2,0側は変更なしです。
3.0側
var connect2:LocalConnection = new LocalConnection();
connect2.client = this;
connect2.connect("send");
function getCombo(arr:BitmapData):void
{
trace("AS3: "+typeof(arr));
trace(arr.getPixel(1,1)); ←これコメントアウトすると一応受け取っている感じ
var bt : Bitmap = new Bitmap(arr);
addChild(bt);
trace(bt);
trace("もらった");
}
↓trace結果
Error #2044: ハンドルされていない AsyncErrorEvent : text=Error #2095: flash.net.LocalConnection はコールバック getCombo を呼び出すことができませんでした。
error=TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
nullオブジェクトに云々という割にはtraceすると[object bitmap]とか吐き出します
>>989 うわぁ綺麗に消えてくれました。
警告を無視して進めていたので一気に消えて気分爽快です。
ありがとうございます。
次の人の為に私がやった事を書いておきます。
・FlashCS5.5のパブリッシュ設定でSWCにチェックを入れパブリッシュ
・SWCが同じフォルダ内に生成されているのをチェック
・FlashBuilderのメニュープロジェクトのプロパティを開く
・ActionScriptビルドパスを選択後、SWCの追加をクリック
・先ほど生成されたSWCを選択してOKボタン
・FlashBuilderからパブリッシュ
・気分爽快で感謝感激そしてSWCって何?
これで気分晴々進められます。
本当にありがとうございました。
>>993 どうもです。スウィックっていうのか・・・なんかダサカッコ悪いwww
>>990 コンポーネントリファレンスガイドみたら、原因かはわからないけど
「送信された直列化メッセージが大きすぎる場合 (40 K 以上)」の場合エラーになる的なことが書いてあった。
あとError #2095 localconnectionでググッたら外人がしらべてくれたみたいで、
basic types (Number, String, Array, XML etc 以外はObject型のインスタンスとして扱われて、
もとの型にはキャストできない、しかしそのプロパティには依然としてアクセスできる・・・ みたいなことを言ってる
試してないけどシンプルにBitmapData型の引数で受け取るのは難しそうな気がするし、なおかつ40k以下でければならないかもしれない
気分が良いわろた
>>994 どうやら不可能みたいですね。ありがとうございます。
エンコードしてストリングとして送るとかはありそうだけど、結局サイズ制限はあるし、画像生成のスクリプトのパラメータだけとか
MCのフレーム位置だけとかを送ったりするのが本来っぽい気はする。MCとかの共通データはLoaderで持ってくればダブらないし・・
>>994 40Kb以下ってのは驚いたなw ブラクラやスパム的な誤作動対策なんだろか