ActionScript 誰かが物凄い勢いで解答するスレ31
2 :
Now_loading...774KB:2012/10/08(月) 10:02:59.26 ID:235zk/8x
>1乙
こんにちは。
ActionScript3.0のマスクについて質問させていただきます。
現在下記のようにマスクをかけようとしたところ、かかりませんでした。
ビットマップには既に画像が入っています。
var my_shape:Shape = new Shape( );
stage.addChildAt( this.my_shape, 0 ); // --- 矩形を左上で固定させる(実はここもよくわかってない)
this.my_bitmap.mask = this.my_shape; // --- マスクのセット
this.my_shape.graphics.lineStyle( 30, 0xFF0000, 1.0, false, "normal", CapsStyle.ROUND );
this.my_shape.graphics.moveTo( 0, 0 );
this.my_shape.graphics.lineTo( 1024, 768 );
moveToとlineToを次のようにしたらマスクがかかりました。
this.my_shape.graphics.beginFill( 0xFFFFFF );
this.my_shape.graphics.drawRect( 0, 0, STAGE_H, STAGE_V );
this.my_shape.graphics.endFill( );
なんとなくなのですがFLASHには線と面があるという事でしょうか?
また線でマスクをかけたいばあいはどのようにすればいいのでしょうか?
画像がスクラッチのように出てくる演出を考えております。
よろしくお願いします。
>>4 マスクとは「塗り」で設定するものなので線ではできない
線のように細い塗りにするとか
4です。
なるほどマスクとは塗りで設定するものですか。
勉強になりますありがとうございます。
現在drawCircleを連続使用してボールペンのようなマスクを実現しました。
最初はシェイプクラスのグラフィックを使用して行ったのですが、見事に処理落ちしました。
それから as スクラッチ で検索したら、参考にすべきページが出てきました。
そのページではシェイプではなくムービークリップを使用していたので変更したところ処理落ちがなくなりました。
一応挙動には満足しているので解決とさせていただきます。
ただなぜ処理落ちが取れたのかがわからなくてちょっと後ろ髪を引いてますw
ありがとうございました。
Graphicはdrawしまくるとめちゃくちゃ重くなる
enterFrameでdrawCircleしたんだったら大変なことになるかもね
MCでも塗りに対してマスクになってるよ
よくfunction内とかで
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,comp);
loader.load(...);
}
ってコードが有りますが、loadが終わる前にGCが発生して
loadが中断してしまう可能性はありませんか?
contentoLoaderInfoにイベントリスナー参照があってcontentoLoaderInfoからloaderがthisで参照されてるからなんとなく大丈夫のような気がするけどためしてはいない
あうcontentoってなんかダサい打ち間違い (w
訂正 thisじゃ自分自身になっちゃうので、LoaderInfo.loaderで関係するloaderを参照してるんだった
12 :
8:2012/10/17(水) 16:09:33.35 ID:C62UWsgj
>>12 そんなこと聞くよりGCについて勉強した方が早いと思うよ
14 :
8:2012/10/18(木) 11:37:23.65 ID:xhBrIZRy
FlashProとFlashBuilderで連携した開発でハマったので質問です。
■前提
FlashBuilder 4.6
Flash Pro CS6
playerglobalは11.3で統一
「-locale ja_JP -swf-version=16」付きでビルド
FlashProで複数のflaファイルからswc(flaファイル分だけ)を作成
↓
FlashBuilderで作成したActionScript3プロジェクトからswc内のクラスを参照して
Flashアプリケーションをビルドしています
■質問事項
Q1.FlashProでswc化したクラスをextendsしただけのFlashアプリケーションが真っ白になる場合がある(ならない場合もある)
この場合、FlashPro側で設定したMovieClip等のインスタンス名はデバッガ上で確認できるものの値はnullになっている
だが、何故か単にnewしてaddChildした場合は正常に動作する
Q2.FlashProでswc化したクラスのインスタンスのフレームスクリプトが実行されない場合がある
複数あるswcのどれかをを再パブリッシュしてからプロジェクトをリビルドすると改善する場合がある
どなたか似たような現象に遭遇したとか、解決策ある方います?
よろしくお願いします。
15です。
自己解決しました。
flaファイルの中で利用されているフォントが私のPCになかったことが
原因のようで、静止テキストをシェイプ化、ダイナミックテキストをデバイスフォントに
することで解決しました。
イマイチどういう内部処理でこのような現象になったのかは理解できていませんが。。。
>>16 flash CS6ってフォント周りでなんかそういう変な現象起こるよ
TLFテキストで文字が一部欠ける、とか縦書きにすると
表示されない、とかなんだか分からない問題起こった。
ダイナミックテキストにしたりフォント変えると直るんだけど
表示されたりされなかったり、っていう事態があるとチェックが遅れるよね
15です。
>>17 フォント周りはそうなんですね。。。
で、その後、直ったと思ったんですが、また同様の症状が発現してしまいました。
最悪継承じゃなく、内部でswc内のクラスをnew&addChildするようにして、更にaddFrameScriptで
flaに書いてたスクリプトを再現すればなんとかなるかと検討中です。
面倒なのでしたくないんだけど
なんか対応方法ないですかね?
こんにちは。
コンパイルされたクリップに変換について質問させていただきます。
使用ソフト:FLASH Pro CS5.5(AS3.0の編集はFlashBuilder4.51を使用)
プログラムは多少知識がありますがFlash&AS3.0は初心者です。
画像などが多くなったためかパブリッシュが遅くなってしまい、
パブリッシュの高速化をしようと思いました。
最初はpngの最適化などを行ってみたのですがflaファイルが小さくなるだけで特にパブリッシュ速度には影響がなさそうでした。
なので少し調べていたら、『フォントの埋め込みでのコンパイルされたクリップに変換』記事が多く見つかりました。
そこでフォントは埋め込んでいないのですが、ムービークリップをコンパイルされた状態にすれば早くなるのではと思い変換を行いました。
そして変換後、元のムービークリップはASに書き出しチェックをはずし(ライブラリには残っています)パブリッシュを行いました。
すると次のような警告が表示されました。
myMovieClip SWF (コンパイル済みクリップ)、行 1 Warning: 5002: シンボル 'myMovieClip2' のフレームスクリプトはコンパイルされたクリップに My_MovieClip2 の定義が含まれているため、無視されました。
My_MovieClip2 の定義をオーバーライドするには、カスタムクラスファイルをクラスパス内に配置します。
確かにmyMovieClip2の最終フレームにはstop();を記述しているのですがmyMovieClipには関係がないのではと思うのですがどういう意味なのでしょうか?
myMovieClip2のstop();を消すとこの警告は消えるのですが、ループしてしまい止めるのが面倒です。
ちなみにMy_MovieClip2はmyMovieClip2のクラス名です。
ステージにはインスタンスは一つも配置していなく、全てAS3.0からnewとaddChildで表示させています。
警告を消し、フレームスクリプトも使用できるようにはならないでしょうか?
よろしくお願いします。
そのエラーは初めて見たなw
パブリッシュが遅いって何秒くらいよ?
MCをコンパイルした状態ってなんだっけ
19です。
パブリッシュはストップウォッチで測ったところ平均20秒ぐらいです。
ちょっと変更したらctrl+Enterで動作チェックしているので結構アレですw
実は上記のエラーはFLASHpro再起動したらでなくなりました。
ただ他のビットマップの基本クラスが空欄になってしまい(BitmapDataだった場所)
フレームスクリプトは無視されますという警告が出るようになったので、
コンパイル済みのクリップ(swf)を消して20秒我慢して作ってます。
初めてのFLASHでの大規模(っと言っても個人制作のゲーム)なので、
プロジェクト(?)のセオリーがわからなくて手さぐりです。
皆さんってどういう環境で作ってるんですかね?
よろしければ教えてください。
私は
Win7-64bit+i7-860+メモリ8GB+GT220
FlashProCS5.5+FlashBuilder4.51
基本的には連携とは言ってもFlashBuilder4.51はエディタとして、
っというかドキュメントクラスを編集しようとしたらFlashProに聞かれたので、
なんとなくFlashBuilder4.51を選択しそのままやってる感じです。
最近やっとSWC(前スレで教えてもらった)の存在を知って、
次はFlashBuilderとFlashは切り離して作ろうかなと思っているのですが…。
仕事でFLASHやってる人もこんなにパブリッシュ時間かかるんですかね?
ウチも中規模以上のを過去にいくつか作ったけどパブリッシュが遅いって事はない
コツはメインSWFに外部サウンドや外部SWF、ラスター画像をロードさせる方式にしてるからだ
一つのSWFにすべて詰め込むとパブリッシュにたっぷり時間がかかるかもしれん
ちなみにメインSWFはフレーム毎に処理を分けてる為 実行(.exe)ファイルにした場合
ウィンドウ上部のコマンドから 制御→次に進む とか 戻る とかされると不具合が出てしまう
それを防ぐ為さらにメインをSWFを1フレームのみの本体SWFに読み込んでリリースしている
(ただしexeファイルで公開する場合)
…て 説明わかり辛いかもw
ビデオとかサウンドは埋め込むとプレビューでも毎回エンコードされて時間かかるから外部ロードで、
あとflaファイルがでっかいとぶっ壊れやすくなる気がするから、必要な部分はFlashProでパーツごとにつくって
全体はFlashBuilderのプロジェクトで構築したほうがコンサバかなーという気がする
>>22 なるほど外部データですか。なるほど。
一つ疑問なのですが外部データの場合、人にあげるときに画像とかを直接見られてしまいませんか?
よく複数のswfを一つのswfにまとめて(つなげて)るのを見かけます。
たとえばそれがノベルゲームだった場合途中のswfを再生されたらネタバレになってしまいませんか?
Flashの素材を保護したいわけではなく、exe単品であげたほうがPC弱い人とかにはわかりやすいのかなと。
でもPCゲームとかのフォルダ見ても確かにテクスチャデータとか外部にありますよね。
ってことは内部データと外部データの分け方(バランス)が重要ってことですかね。
swf入れ子にしていくの素晴らしいですね。
シーンで開発分けれますし、進む戻るの解決方法もありがとうございます。(メモ
>>23 やっぱり外部ロードなんですね。ってことはコンプリート的なイベントを考慮して作るわけですね。
恥ずかしながらFlashProのライブラリに入れておけばそういうの覚えなくていいかなと思って作り始めてしまいましたw
なるほど。じゃあ読み込みクラス(Loaderクラス?)のラッパークラス的なものを作ってデータ読み込みを管理したほうがいいのか。
NowLoadingとか出したほうがいいですね。
flaファイルってでっかいとぶっ壊れるんですか!!おっ恐ろしい。速攻バックアップとりました。
現在flaは60Mぐらいなんですが…おっ大きいですかね?最終的には100Mぐらいになりそうですが…。
(ビットマップ500枚ぐらいライブラリに登録してます。そしてドキュメントクラスのコンストラクタで全部new…)
必要な部分をFlashProでってのはSWCってことですよね。次はFlashBuilderメインで作ろうと思います。
コンサバがわからなくて調べましたwなるほど今度人にそう言おう。
正直、失礼な話ですが「FlashってGIFが作れて少しプログラム使える」ぐらいの認識でした。
ですが作り始めて思うのが「こんな便利な物だったのか」と早くやらなかったことを日々後悔です。
私的な話で申し訳ない。
とりあえず外部データをうまく活用したほうがいいということですね。
ありがとうございます。
画像を見られたくない場合はSWFにして外部読み込み用SWFにする
外部SWFのメインタイムラインは1フレームのみにして そこに制御用MCを配置
制御用MC内の1フレーム目は何も無しで2フレーム以降に画像等貼っとく
本体で呼び出した時は制御用MCの再生ヘッドを動かして(2フレーム以降)にして使う
普通のゲームではここまでやる必要は無いかも どうせ単体では動かないし絵を見られるだけだ
>>25 2フレームもいらないだよ
埋め込みアセットにしておけばいいだけだと思う
フレームに配置するより、ライブラリにだけ埋め込んどいて
addChild等で配置するほうが軽いという話も聞いたでよ
なるほど ラスター画像のみならトゥイーンする事ないもんな
>正直、失礼な話ですが「FlashってGIFが作れて少しプログラム使える」ぐらいの認識でした。
>ですが作り始めて思うのが「こんな便利な物だったのか」と早くやらなかったことを日々後悔です。
>私的な話で申し訳ない。
ちょっと前にアニメーションとしてのFlashが流行ったからかこう思ってる人少なくないのかもねえ
今やブラウザという制限超えてモバイルアプリまで作れるものなんだけどね
>>25 なるほど。そういう使い方もできるんですねムービークリップ。
日が浅すぎて色々な使い方(アイディア)が乏しいですw
あ〜しかしなるほど〜そうか〜なるほど…なるほどな〜。
>>26 埋め込みアセットという新しい情報をもらったので検索しました。
アセットはデータを意味するんですね。それを埋め込むと。…これいいですね!!
ただClass as Bitmapというソースがあって「as…?」となりましたがw(キャストなんですね
>>28 確かにその時にイメージを埋め込まれた感があります。
マルチプラットフォームとして開発できるのは素晴らしいですね。
PCやスマートフォンのパワーが全体的に上がればFlashで3Dゲームとか出そうですね。
……あれ?じゃあもうFlashだけでいいんじゃ…。全PCで大体動くし…。
って思うぐらいActionScriptってスマートだと思います。いやほんとに。
ActionScriptとかはJIT系の言語っていうんですかねJavaとか、
なんか敷居が高くて入りずらかったんですけどこれはもう戻れなくなってしまうw
特にActionScriptはFlashProでプログラム付素材が作れる点がすごくいいです。まさに至れり尽くせり。
他のJIT系の言語もこんなに便利なんですかね。ちょっと興味が。
ただintが参照渡しできない事だけが…。っと書いてて思いましたがもしかしてオブジェクト型にすればいいのでは。
すごいぜAS3.0
intの参照気にするなんて相当のツワモノらしいなw
最近のコンシューマゲームでもGUIの部分はFlashで作るのはめずらしくないようだ
Flashに慣れると他の言語でグラフィカルな絵の作品を作ろうとすると気が遠くなるだろう
31 :
Now_loading...774KB:2012/10/21(日) 15:41:02.63 ID:QM+n8WlB
AS3で質問です。
--------------------------
main ();
function main ():void{
func1 ();
trace ("A");
func3 ();
trace ("B");
}
function func1 ():void{
trace (11);
var time:Timer = new Timer(1000,1);
time.start ();
time.addEventListener (TimerEvent.TIMER_COMPLETE, func2);
}
function func2(e:TimerEvent):void{
trace(21)
}
function func3 ():void{
trace (31);
}
-----------------
これの結果は、
11 A 31 B 21
となりますが、main()内をできるだけ変えずに、
11 21 A 31 B
とするためにはどうしたらいいでしょうか。
やり方はたくさんありそうですが多分Timerイベント消しちゃダメなんですよね?
じゃあwait関数とかで一秒ぐらいプログラム止めればどうかと思いましたが
ASにはwaitやsleepは無いようです。ですがこんなの見つけました。
ttp://d.hatena.ne.jp/kaityo/20090621/1245571132 ただループ中(sleep)でもイベントって呼び出されるんですかね?
ASってマルチスレッドなのかがわかりませんw
これは何を目的にしたプログラムなのでしょうか?
目的がまったくわからんが何かの課題かねー? レガシーで非推奨だけどTimer以外ではsetInterval()とかもたしか一応は使えるはず
>>32 非同期処理(?)のライブラリは色々あって便利なのかもしれないけど、
イベント駆動なAS3からプログラム始めた身としてはありゃりゃ?となることも多いです
ゲームを作っている最中に疑問が出たので質問しました。
func1で1秒間フェードアウトして、それが終わったらfunc3で新たにメッセージ表示したいんですが、
今はfunc2関数内の最期にfunc3()を書いています。
main関数を見れば、関数内でやっている処理が一目でわかるようにできないかと思いまして。
あれ? A → sleep○○ミリ秒 → B みたいに前が終わったら次を逐次実行するのは同期処理なんでしたっけ?
>>35 timelinemaxみたいな逐次処理が簡単に管理できるライブラリなどを使うのもいいかも
>>34 いや私もそんなに(むしろ全然)マルチスレッドに詳しいわけではないです。
しかしながら自分で書いてて気になったので追記します。
私が考えたのはTimerクラスをnewまたはスタートした時点で、
スレッドとして扱われるのだろうか、というものです。(ひどく勝手ですが)
ですがよくよく考えるとグローバル変数(ASでなんていうのか)等の同期やらクリティカルセクションがどうとか
という話になりそうなので、普通はそれをユーザー(プログラマ等)に知らせずやらないだろうと思いました。
そう考えるとwait関数などを作ってもmain関数を抜けるまでTimerイベント(今回はTIMER_COMPLETE)に登録された、
処理は実行されないと思います。(お前思ってばかりいないでテストしろよと言われそうですがw)
イベントはひたすらスタックにっぽく溜まっていくのかもしれません。
ちなみに
>>35でやりたいことが分かったのであくまで私だったを少し書きます。
1・まずmain関数をタイマーで呼び出す
補足・一秒間に60回処理したいのなら16.6667ぐらいですかね正確ではありませんが。
これで一応main関数が60回呼ばれれば一秒という事になります。(精度は完ぺきではありませんが)
2・メイン関数の中でスイッチかイフで分岐処理でフェードやらを管理します。(っというか全部w)
っという極めて普通そうな案を提案してみますw(ASではどうなんですかねこれは)
ちなみに最新のFLASHはマルチスレッドが実装されているようです。
ttp://cuaoar.jp/2012/06/actionscript-1.html
import flash.utils.*;
・・・ 省略 ・・・
//main内
func1();
setTimeout(func2, 1000)
setTimeout(trace, 1100, "A");
setTimeout(func3, 1200);
setTimeout(trace, 1300, "B");
ライブラリとか使わずに一番短く書くならこんな感じですかねー? Timerでちゃんと書いた方が良いだろうけど
setTimeout()の戻り値を使ってclearTimeout()しないとGCされないみたいなことが書いてあった
>>38 func2やfunc3の処理がきちんと終了したのを確認してから以降の処理を実行したいんですよね。
さらに、main関数内のfunc1、func3の処理は戦闘開始時、戦闘中、戦闘後くらいの粒感で、func2は戦闘開始時のコマンドボタン表示みたいな少し細かい粒感にしたいので、
main関数内にfunc1 func2 func3を一緒くたに書くのも避けたいのです。
後だし要件すいません。
うーんよくわかんないけど、それぞれaddEventListener()でコールバック関数を登録して、しかるべきタイミングで完了イベントをdispatchEvent()する正攻法でいいのでは
非常に恐縮なのですが、粒感ってなんですか?(ASの専門用語?)
調べても食感的な事しか出てこなかったので。パーティクル?
多分粒度のことだと思う
1つのメソッドをどのくらいの処理内容にするかとか
投げられたコマンドを順に処理するエンジンを作ってmainで順番に投げるのが楽では?
>>43 粒度ですか。一つ賢くなりました。ありがとうございます。
簡素なエンジンのはずが、
突き詰めていつの間にかFlash版RPGツクールの公開に至ることを願いますw
mc1とmc2がステージ上にあり、zキーを押すと、mc1がmc2の近くに動くようにしたいです。
なので、mc1の中に
stage.addEventListener(KeyboardEvent.KEY_DOWN,move);
function move(e:KeyboardEvent)
{
if(e.keyCode == 90)
{
this.x=mc2.x+50;
this.y=mc2.y+50;
}
}
っと書きました。
すると「未定義のプロパティ mc2へのアクセスです」
と出てしまいました。 mc1の中からmc2にアクセスするにはどのようにすればよろしいでしょうか?
31です。dispatchEventのことは知らなかったのですが、
使ってみたらtrace結果はfunc1 func2 func3となり、希望通りの動きになりました。
こういう使い方は正攻法なのかわかりませんが、ひとまず疑問は解決しました。
ありがとうございます。
--------------------------------------------------------------------
main ();
function main ():void
{
func1 ();
addEventListener ("tofunc3",func3);
}
function func1 ():void
{
trace ("func1");
var time:Timer = new Timer(1000,1);
time.start ();
time.addEventListener (TimerEvent.TIMER_COMPLETE, func2);
}
function func2 (e:TimerEvent):void
{
trace ("func2");
dispatchEvent(new Event("tofunc3"));
}
function func3 (evt:Event):void
{
trace ("func3");
}
>>46 オススメしないけどその場合はparent.mc2.x
>>48 ありがとうございます。 無事解決しました
追加で質問なんですが
シーン1で var a:Number=5 と定義した後 mc1の中で
var a=MovieClip(parent).a;
trace(a);
と書いても undefined と出てしまい、数字の取得に失敗します。
アクセスするのと、数字を取得するのはまた別の方法になるのでしょうか?
度々申し訳ございません。
AS3.0で制作していて、ふと疑問っといいますか不安に襲われたので質問させていただきます。
public static const yaoya:Array =
[
["トマト", // --- 品名
100, // --- 原価
200 ], // --- 売値
["きゅうり",
50,
100],
["大根",
75,
150,],
];
このような配列(二次元配列)があります。
文字列のトマトにアクセスしたいときは、(下記ではコピーか参照になると思います)
var str:String = yaoya[ 0 ][ 0 ]; ですよね。
次にトマトの全データ(品名、原価、売値)が処理上ほしくなりました。なので、
var tomatoData:Array = yaoya[ 0 ].slice( );
のようにしました。
コンパイルが通りデバッグでtomatoDataを見るときちんと
[0] = "トマト" [1] = 100 [2] = 200
と表示されます。
ですがコード補完機能(言葉あってるかな)では
yaoya[ 0 ].
まで入力するとObject型としてメンバを表示してきます。(つまりsliceは表示されない)
気になって調べると私の様なsliceの使い方は何処にも見当たりません。
ふっ不安です!!割と普通にやったつもりだったのですが…。
どなたか正しいのならその説明を!!
間違ってたまたま動いているのならそのご説明を!!
お願いします!!不安で胸が…。
>>49 var a:Number = ( parent as MovieClip ).a as Number;//こうだな
>>50 public static var yaoya:Array //中身変更したいならvarだろ
あー コードヒントでslice出ないって事か
継承したプロパティやメソッド全部表示となるととんでもない数になるからかな?
それとも型判定してなく書式だけで判断して最小限の該当プロパティやメソッドしか出さないのかも
どちらにしてもそんなもん気にすんな
>>49 ごめん これだけで取得出来る as演算子覚えとけ ついでにis演算子も
var a:Number = ( parent as MovieClip ).a;
MovieClip(parent).a 派とどっちが優勢なんだろ
55 :
49:2012/10/23(火) 17:43:35.04 ID:TJp3A+9N
>>53 無事解決しました
回答ありがとうございました。
>>54 nullチェックを考えると、
as演算子のほうが良いと思うが。
var mc:MovieClip = parent as MovieClip;
if( mc ) {
num = mc.a
;
}
>>52 コードヒントですね失礼しました。
発言後気になりすぎて英語サイトを漁っていたら割と多くのサンプルソースが
見つかったのでとりあえず安心しています。ありがとうございました。
>>56 MovieClip(parent) でparentがnullだとぬるぽ例外になっちゃうってことか
var c_no=1 //初期数値
var mc1 = new test;
addChild(mc1);
mc1.x=206.60;
mc1.y=-211.05;
var delete="mc"+c_no;
trace(delete_test) //出力の結果は、mc1
stage.addEventListener(KeyboardEvent.KEY_DOWN,SELECT);
function SELECT(e:KeyboardEvent)
{
if(e.keyCode == 39)
{
cursor.x=cursor.x+71.6;
removeChild(delete_test); //※
}
}
結果:エラー 強制型変換に失敗しました
こんな風にプログラムを組んでいるのですが、結果が強制型変換に失敗しましたとか出てしまいます。
※のところの removeChild(delete); を removeChild(mc1); に変えたらエラーが無くなりました。
delete_testの中身もmc1なのになぜエラーが出てしまうのでしょうか?
また、どうしても変数を使ってremoveChildを行わなければなりません。 解決方法はありますでしょうか?
deleteは単なる文字列変数なので無理
removeChildの引数はDisplayObject型で指定する必要
var mc1 = new test;
mc1.name = "mc1";
addChild(mc1);
・・・
removeChild(getChildByName(delete));
あと、
var delete:String = "mc" + c_no.toString();
みたいにいちいち型を明確にしたほうが作法的に良いとおもいます
肝心なこと忘れた 変数名のmc1とストリング(文字列)の"mc1"はまったく意味が異なる
62 :
59:2012/10/24(水) 15:23:57.86 ID:hXHsia3i
>>60 ありがとうございます。 出来ました。
つまり、型が違ったために、エラーが出てしまったという事ですね。
それともうひとつ質問なんですが
var p_icon;
var c_no=1;
var m_wp1 = new test;
m_wp1.name="m_wp1"
trace(c_no); //出力結果は 1
p_icon="m_wp"+c_no;
trace("iconナンバー="+p_icon); //出力結果は m_wp1
addChild(getChildByName(p_icon))
結果:パラメーター child は null 以外でなければなりません。
先程の質問と似たような所で詰まっているのですが
これも型が違うために起こってしまったエラーなんでしょうか?
指摘通り、型を明確にしても起こってしまいます。 こういったエラーを出さないようにするには
なにに気を付ければよいでしょうか?
getChildByNameはその名のとおり、すでにaddChildされている子を表示コンテナから名前(変数名とは別)で取得してくるものなので、
まだaddChildされてないものは当然取得できない。
文字列データで操作対象を指定したい場合はObject型で連想配列みたいにするとか、
律儀にswitch文で処理を分けるとかいろいろ。
あとjavascriptとかに慣れてるのかもしれないけど、
as3で変数宣言時に型指定しないのはパンツをはかずに外出すること並の変態行為なので型指定はしたほうがいい。
65 :
59:2012/10/24(水) 16:31:14.11 ID:hXHsia3i
>>63 度々回答ありがとうございます。
getChildByName は既に配置されたオブジェクトに対して使うものなんですね。
以上を踏まえて
addChild(getChildByName(p_icon)) の部分を addChild(p_icon)
に変えてみましたが、結果は、 強制型変換に失敗しました。"m_wp1" を flash.display.DisplayObject に変換できません。
っと出てしまいました。
どうすれば直りますかね? おそらく、変数だったり、文字列だったりがぐちゃぐちゃになってると思うのですが…
変態行為については… 次回から気をつけます! 今回のコードは既にジャングル状態でどこで変数宣言したかあやふやなので…
>>65 そういう場合は、
getDefinitionByName(p_icon) as Class
を使えばいいんじゃないかな?
>>64がいうように、型を曖昧にしているからエラーが起こるんだと思うよ
個々の変数の型が何かを把握してないから、無理矢理、文字列をMC等の別のクラスとして
扱わせようとしちゃうわけだしね
67 :
59:2012/10/24(水) 18:26:59.91 ID:hXHsia3i
>>66回答ありがとうございます。
trace("iconナンバー="+p_icon); //出力結果は m_wp1
getDefinitionByName(p_icon) as Class;
addChild(p_icon);
と、やってみましたが、今度は 『変数 m_wp1 は定義されていません。』
と出てしまいました。
「getDefinitionByName 定義されていません」 っとGoogleで調べて、色々と試して見たのですが
どれもうまくいきませんでした…
>>67 文法とか流れを無視したってダメ
getDefinitionByName()した結果が大事なのに、その結果はどこからも参照されていません
それじゃ無意味でしょ
流れとしては、以下のようになります
var p_icon:String = "m_wp" + c_no;//文字列ができる
var classRef:Class = getDefinitionByName(p_icon) as Class;//文字列をクラス参照に
var myObj = new classRef();//そのクラスのインスタンスを生成
addChild(myObj);//生成されたインスタンスを表示リストに追加
常に、変数の中身がなんなのか、書いているASがそれぞれ何をしているのかを把握するのが大事
やさしいな
deleteは予約語だから使うなよ
そいうえばそうだった。 変数名deleteはシンタックスエラーになると思うんだけど何の環境でやってるんだろ。
72 :
59:2012/10/25(木) 01:30:26.41 ID:LizcRcZ0
>>68 ありがとうございます。 出来ました。
完成してみて分かったのですが、どうやら私はクラスに関しての知識が全然足りないようでした。
何度も回答してくださり、本当にありがとうございました。
>>70 >>71 var delete="mc"+c_no; の部分ですが 正しくは var delete_test="mc"+c_no; でした。
混乱させてしまい申し訳ございません。
73 :
Now_loading...774KB:2012/10/25(木) 09:48:28.16 ID:oJeki3It
Vectorで固定長にして後述したいんだけど無理?
aaa = new Vector.<int>[ -1, 270, 315, 0, 45, 90, 135, 180, 225 ];//エラー無しだが固定長にしたい
aaa = new Vector.<int>(9, true);//固定長にして
aaa = [ -1, 270, 315, 0, 45, 90, 135, 180, 225 ];//後述したいがエラー(Arrayならエラー無し)
あとでfixedをtrueにすればいいんじゃね?
var aaa:Vector.<int> = new <int>[ -1, 270, 315, 0, 45, 90, 135, 180, 225 ];
aaa.fixed = true;
aaa.push(0); //長さ変えようとするとエラー
おお そんな手がw ありがとー
addChildについて質問があります。
下記のようにスプライトに一枚のビットマップを登録します。(余計なところは省略)
var spr:Sprite = new Sprite( );
var bmp:Bitmap = new Bitmap( new TestBitmapData( ) ); // --- ライブラリに登録してあるビットマップとします
spr.addChild( bmp );
ビットマップがスプライトに登録され描画されます。
その後bmpの参照先を変更します。(現在のTestBitmapDataが不要になったため)
bmp = new Bitmap( new TestBitmapData2( ) );
私はこれでスプライトに描画されるビットマップがTestBitmapData2になることを期待したのですが、そうはなりませんでした。
TestBitmapDataが描画され続け、TestBitmapData2はaddChildで登録しないと描画されませんでした。
そこで考えました。addChildは何を受け取っているのかという事をです。
引数ではDisplayObjectインスタンスとなっているので、bmpの参照を保持していると思いました。
しかしbmpの参照先をTestBitmapData2で初期化されたBitmapに変更してもaddChildで渡したと思っていた参照の示す場所はTestBitmapData2に変更されません。
これはなぜですか?参照は外部から変更したらそれが適応されるのではないのでしょうか?
わかりづらい文章かもしれませんが、どなたかご教授願えないでしょうか。
bmp.bitmapData = new TestBitmapData2();
な。
元のコンテナとは別の新しい表示コンテナ突っ込んどいて、それ反映しろってのは無理な話だ。
spr.addChild(bmp)ではsprの参照するSprite実体の子としてbmpが参照するBitmapの実体が登録され、
Spriteの実体とBitmapの実体が新たに親子としてお互いを参照するようになる。
ここで、bmp = new Bitmap( new TestBitmapData2( ) ); すると、bmpはnewされた新しいBitmap実体への参照に上書きされるが、
Spriteと最初のBitmap実体の親子参照は影響を受けない。
みたいな感じ?
addChildがどうのこうのの話じゃなくて、
var a=[1,2,3];
var b=a;
a=[4,5,6];
としといて、
trace(b);
が1,2,3なのはなぜでしょうと言われても困るという話。
それ誤解産むと思うんだが。
a=[4,5,6];
を、
a.push(4);
とかに置き換えたときにどうなるかがわかってればいいけど。
蛇足ながら追加。質問者さんのやりたかったイメージに近いかなー?
画像切り替えとかはせっかくフラッシュなので別々のBitmapにしてフェードイン/フェードアウトくらいはしたいし、
あんまり使わないかも。
var spr:Sprite = new Sprite( );
addChild(spr)
var bmd1:BitmapData = new TestBitmapData1();
var bmd2:BitmapData = new TestBitmapData2();
var bmp:Bitmap = new Bitmap(bmd1);
spr.addChild( bmp );
var state:int = 1;
spr.addEventListener(MouseEvent.CLICK, function (event:MouseEvent):void {
if (state === 1) {
state = 2;
bmp.bitmapData = bmd2;
} else if (state === 2) {
state = 1;
bmp.bitmapData = bmd1;
} else {
trace("オイ!肉だ肉!!肉もってこい!!ψ(`∇´)ψ");
}
});
多数の返答ありがとうございます。
>>77 しっくりきました(っといいますか横っ面引っ叩かれて目が覚めました)。ありがとうございます。
この質問は私が自分ルール的な勝手な思い込みが原因でした。
参照の概要は色々と読んだつもりだったのですが、
addChildをした時はなぜか「多重間接参照」が渡されると思い込んでいました。(Cからの流れ者です)
もう一度参照について勉強していきます。
いやはやお恥ずかしい限りです。皆様どうもありがとうございました。
(⌒`:''"⌒)
ε=) : : . ' :.(=3
(、_,;メ-、、_.)
Cではポインタを間違えるとパソコンが爆発すると思っている()
84 :
Now_loading...774KB:2012/10/28(日) 11:30:20.33 ID:jAO/qvq+
>「多重間接参照」が渡されると思い込んでいました。(Cからの流れ者です)
不可能ではないが、Cでもありえんだろその仕様は。
ポインタのアドレス渡しだったらそうなるだろ。
こんにちは。レスどうもです。
>>84 確かにそうですよね。ダブルポインタを渡すってまぁあまりないですよね。
ただ自分では結構作っちゃうんですよねそういう関数wそこで勝手に思い込んでしまいました。
またなぜ勘違いしていたのかの原因で一番大きいのは、
私の中での参照の認識って型としてメモリにとられると思っていたことなんですね。
なので参照の参照が存在するのかと思ってたわけです。
ですが参照は基本的に只の別名として処理される(ASではどうやって実現しているのかわかりませんが)
という事らしいので多重間接参照はできないんじゃないですかね。多分ですが。
う〜ん教科書を最後まで読むのいいですね。(眠くなりますが)
ステージに最初から配置したMCにアクセスする時にこんな感じで…
var tg_body_mc:MovieClip = this.body_mc;
var tg_arm_mc:MovieClip = tg_body_mc.arm_mc;
var tg_head_mc:MovieClip = tg_body_mc.head_mc;
var tg_mouth_mc:MovieClip = tg_head_mc.mouth_mc;
tg_body_mc.gotoAndPlay(10 );//ポインタ代わりのターゲット変数にアクセス
tg_mouth_mc.gotoAndStop( 2 );
多重間接参照ってこういう事じゃない?w
これはいい多重関節w
90 :
Now_loading...774KB:2012/10/30(火) 13:41:25.93 ID:HD8sHFQQ
windows FlashCS5 です
関数から引数を渡して、テキストボックスを生成するところで詰まってます。
ReverName(2,100,100);
function ReverName(Nu:String,Xnum:Number,Ynum:Number) {
var RNa:String = "RName" + "Nu";
var RNa:TextField = new TextField();
RNa.htmlText = "Point";
addChild(RNa);
}
テキストボックスを生成する際の名前も引数で設定したいと思っています。
よろしくお願いいたします。
> var RNa:String = "RName" + "Nu";
> var RNa:TextField = new TextField();
変数名が同じなんだけど?
92 :
90:2012/10/30(火) 14:46:02.22 ID:HD8sHFQQ
すいません。試行錯誤してる最中のコードとコピー間違えてました
var RNa:TextField = new TextField();
変数のRnaに後に番号を付けていきたいのですが、引数から
変数名に引数の数字を追加するところでうまくいってないようです。
じゃあそこ書けよ
94 :
90:2012/10/30(火) 15:06:49.50 ID:HD8sHFQQ
失礼しました。
Aaa(1);
function Aaa(Nu:Number):void {
var RNa:TextField = new TextField();
addChild(RNa);
}
変数RNaの後に引数[1]を結合して、変数RNa1にして
テキストフィールドを生成したいのです。
やりたい事がやっとわかったというw
連想配列で管理した方が楽で良いよ。
外側(グローバル)で
public var txtFldList:Object = new Object();
を宣言して、
function ReverName(Nu:String,Xnum:Number,Ynum:Number) {
var RNa:TextField = new TextField();
RNa.htmlText = "Point";
var key:String = "RName" + Nu;
txtFldList[key] = RNa;
addChild(RNa);
...
}
テキストフィールドを名前で取り出したいときは、
txtFldLisk[名前];
で取り出せる。
こういうこと?
CS5 AS3.0で質問です
組織図を作っていて
ステージ上に配置しているボタンをクリックすると
ライブラリにある、「A」というムービークリップがaddChildして
「A」のムービークリップの中にもボタンがあり
「A」内のボタンをクリックで「B」というムービークリップがaddChildして
「B」の中にもボタンがあり、それをクリックで「C」というムービークリップをaddChildしたいのですが
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
と出てしまいます
どのような原因が考えれるでしょうか、お願いします。
97 :
90:2012/10/30(火) 18:35:05.52 ID:HD8sHFQQ
>>95 無事解決できました!!!!
今はどうしてちゃんと表示されるのかわかりませんが
これからわかるように勉強します!!
ありがとうございました
>>96 どの時点で出るの?
エスパー募集するしかないなw
>>96 エラーメッセージが言う通りの状況なんでしょう
どこかで、まだ存在していないオブジェクトを参照しようとしている
例としては、MC「B」が存在する前に、「B」を参照しようとしてるとか
そんな感じ
でも、その情報だけじゃ第三者にはそれ以上何もわからない
trace()するなりして、どの時点でどっからエラーが出てるかを確定すべし
1009ってお目にかかるランタイムエラーコードダントツトップなんだけど…
101 :
96:2012/10/30(火) 23:29:16.69 ID:Ht1nveBb
ちょっと携帯からになります
色々調べたら、動的に配置したオブジェクトはなんたら(忘れました)出来ない
というのが見つかりましたが、自分の状況とは違いそうで、行き詰まって質問しました。
現状はBのMCまでは問題なくaddChildできます
B内のボタンをクリックしたらCがaddChildされる
という部分をASで書いたらさきほどのエラーがでました
MCのCは、変数に代入?携帯で書くので雑ですが
var Mc_C.MovieClip = new MCのCのリンゲージ名
と書いているので
エラーの存在しないというのは、おかしいかなと思っています。
1.階層の事でAの中のBの中にCをaddChildしようとしているのですが、なにか決まりごとでの問題はないか
2.上で書いた、変数に代入で、MCのCは存在する物になっている?
3.Aの中のボタンクリックでBが出て、その中のボタンをクリックでCがでるというASで
Bが出る前に、B内のボタンを〜、という記述があるせいで、先程のエラーが出る?
この辺が関係しているのかなと思うのですが、どうでしょうか、お願いします。
とりあえず先に日本語の勉強してくれ
>>101 どうでしょうか?といわれても、そうかもね。としか言えない
心当たりがあるなら、その部分を変更して検証してみてはどうか
原因がわからないなら、どの瞬間にエラーが生じるのか、どの関数内でエラーが
生じるのかを特定しよう
つか、それくらい出力に表示されるだろ?
104 :
96:2012/10/31(水) 18:24:25.29 ID:4Mgh5d/N
複数のレイヤーにASを書いてたので
それが原因で、まだ存在しない物にアクセスしようとしていたみたいです
ASは一つのレイヤーに纏めていた方が良いってことですね
初歩的な事なんでしょうが、お騒がせしました。
var po:Point = new Point( 10, 20 );
//色々な処理
po = { x:100, y:200 };//エラー
ポイント座標を1行で変更したい場合って? その都度newしろって話かな?
hoge = {};
まず、上記の右辺{}が何を表しているかを勉強してみよう
昔はこんな書き方が出来たって事?
Objectしかできないのかな?
{}はそもそもオブジェクト型を示してるようなもん
110 :
90:2012/11/03(土) 08:20:10.60 ID:rJ7X7Dpl
前出90です。
>>95さんにお教えいただいた方法でテキストを表示できたのですが
その表示しているテキストボックスを移動させる際の
テクストボックス名の取得で悩んでいます。
仮に、ルート上から生成したテキストボックスを移動をさせる場合
どのようにすれば良いかお教えいただければ幸いです。
スクリプトは
>>95さんのものをそのまま使っています。
RNa.name = "tinko_tf";
trace( getChildByName( "tinko_tf" ));//名前付けてアクセス!
>>110 何のために名前が必要なのかがわからない。
名前を取得するにはそのテキストボックスのオブジェクトが無いと
>>111のやり方は
>>95のやり方の別の方法なわけで、
RNaというオブジェクトがあるなら、名前は必要無いよね。
removeChild(でステージから削除して、
移動させたい先の他のコンテナにaddChildすれば良いわけだし。
>>111 名前を取得するのに、そのオブジェクトを知ってないといけないってのは
この場合回答にならないんじゃないの?
その名前を使ってオブジェクトを取得するのが目的だったら。
ややこしい構造のオブジェクト内を走査すると自動で付いた
記号みたいな名前(手書きのシェイプ含む)がズラーっと出るんだお
とりあえず名前つけとけばチェック時に困らない
>この場合回答にならないんじゃないの?
そもそも質問が曖昧だからな ヒントになるようなエスパー回答しただけw
114 :
90:2012/11/03(土) 15:17:05.32 ID:rJ7X7Dpl
説明不足ですいません
私のやりたいことは
>>95さんの方法でaddChildした
テキストボックスの文字内容をボタンを押すことで、
◯◯◯.ht,iText="新しい内容";
と文字内容を変えたいのですが、
生成したテキストボックスへのパスがわからなくて困っているところです。
よろしくお願いいたします
だから名前でアクセスだってば (参照インスタンスでアクセスしたいならRNaはメンバ変数にする)
//ボタン押された時に実行するメソッド内の処理 クラスファイルで書いてるなららthisの所はaddChild先のターゲット
var tf:TextField = this.getChildByName("tinko_tf") as TextField;//これがパス
tf.htmlText = "テキスト変更";//これで書き換わる
なんかかみ合ってない気がするな。
>>114 うーん、根本的なアルゴリズムというか、考え方の問題になるけど、
そのボタンとそのテキストボックスの対応はあなたしかわからんのだよね。
ボタンに対してテキストボックスが1対1の対応であるなら、
ボタンのnameにも
>>95の関数の引数Nuを使って設定してやる。
あくまで例だけど
宣言では
var btn:Btn = new Button();
btn.name = "btn_"+ Nu;
ボタンのイベントリスナでは
function btnOnCkick(ev:MouseEvent):void {
var btn:Button = ev.currentTarget as Button;
var tmp:Array = btn.name.split("_"); // 宣言でbtn_"Nu"となってるはずなのでNu部分を取り出す
var Nu:String = tmp[1];
//
>>95でのやり方にあわせてテキストフィールドを取り出す
var txtFld = txtFldList["RName"+Nu];
わかった 要するに
>>95のコードでどうやって書換えするのかがわからないって事だろ
var txtFldList:Object = new Object();
function ReverName(Nu:String,Xnum:Number,Ynum:Number) {
var RNa:TextField = new TextField();
RNa.htmlText = "Point";
var key:String = "RName" + Nu;
txtFldList[key] = RNa;
RNa.x = Xnum; RNa.y = Ynum;//表示位置用に追加 そもそもXnumってなんだ?
addChild(RNa);
}
ReverName( "AAA", 10,10 );//RNameAAAという入れ物を作成
trace( "確認1:"+txtFldList.RNameAAA.text );//確認1
ReverName( "BBB", 100,20 );
for( var i in txtFldList ) trace( i+" : "+txtFldList[ i ] );//中身確認
txtFldList.RNameAAA.htmlText = "あいうえお";//書換え
trace( "確認2:"+txtFldList.RNameAAA.text );//確認2
trace( txtFldList.RNameAAA.htmlText );//html確認
これで理解できるだろ
丁寧すぎるww
2.0時代の「名前でアクセスする」という概念を捨てたほうがいいのに、IDEではいまだにシンボル名でアクセスさせるからこんがらがるんだよな
120 :
90:2012/11/04(日) 17:51:09.18 ID:y1DAWxlF
121 :
90:2012/11/05(月) 11:47:52.68 ID:jiJsKicq
何度もお手数をかけてすいません
変数が孫Mcで参照できない。という事でお教えいただきたいのですが
現在、rootで 変数 var AAA::Boolean=false; と設定しています。
ステージ上に"子MC"その中に"孫MC"をネストして表示しています。
"子MC"から"孫MC"のプロパティを設定する際に、使い回しを考えて
var Path:MovieClip=Object(root).子MC;として
Path.孫McName.x=; Path.孫McName.y=; と使っています。
ところが、rootで設定した変数を、"孫MC"から
trace("変数AAA:"+Object(root).AAA)を行うと、「undefined」となってしまいます。
"root"、"子MC"上で("変数AAA:"+Object(root).AAA)で確認してみまると、
ちゃんと変数を参照できているのですが"孫MC"からだけ参照できていません。
よろしくお願いいたします。
まぁ、今言う事じゃないけど、
いちどActionScript3のコード規約を読んで、それに準拠するように今後していってよ。
ソースが読みにくくてかなわん。
ifの後の改行とかはどうでも良いから、
変数:先頭小文字 クラス:大文字で。
AS2の_rootとAS3のrootはちがうんだよね。
孫なんだから、祖父は親の親ってこと。
孫とやらが表示リスト上に追加されてないうちになんかやろうとしてrootがnullなんじゃない?
こっちの書式でダメならわからん タイミングの問題だな
trace( ( parent.parent.parent as MovieClip ).AAA );//孫MC内のフレームアクション
125 :
Now_loading...774KB:2012/11/05(月) 16:08:02.64 ID:LDHChJrb
質問です。
TLFテキストフィールド・編集可能(a_txt)をステージに設置して、
a_txt.maxChars = 2;
a_txt.restrict = "0-9";
と記述したのですが、
文字数制限が出来ません。
0〜9までの入力制限は出来ます。
どうしたら文字数制限できるのでしょうか。
126 :
125:2012/11/06(火) 16:32:22.97 ID:Ct2GqIRi
全然関係のない変数の置き場所を変えたら問題なく作動しはじめました。
なんでだ。
ご迷惑おかけしました。
書いたようにしか動かない。
TLFは不可解な挙動するから普通のテキストフィールドで間に合うならそっち使った方が良いよ。
特にオーサリング時に置いておく奴はいろいろ危ない。正直怖くて使えん。
>>127 フラッシャーが最初に覚える事は、
デバッグの際、「記述が間違っていない可能性」を覚える事ですぜ。
AS3になってからは明らかにバグってのには遭遇してないな。
書いたように動いてたが。
特に
>>126のような状況とか。
質問なんですが、
イベントでスロットゲーム作ろうと思って発注の仕様を考えてるんですけど
例えば
ゲーム総回数 1000回
あたりの数(1等から6等くらい) 250個
2〜4回くらい外れた後に当たりが出る
一回出た当たりは除外される
といった事って可能ですか?
よろしくお願いします。
出来るけど、
>2〜4回くらい外れた後に当たりが出る
ってすごく不自然感がでるぞ。
連続で当たらないってことなんだから。
確率変えるのって、モバゲーとかで問題になってましたよね
addEventListener(MouseEvent.MOUSE_DOWN,Pay);
----
public function Pay(e:MouseEvent):void {
var myRequest:URLRequest = new URLRequest(url);
myRequest.method = URLRequestMethod.GET;
var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, onComplete);
myLoader.load(myRequest);
}
function onComplete (eventObject:Event):void{
var my_str:String = eventObject.target.data;
trace(my_str);//何回クリックしても同じ値
}}
ボタンを押すとサーバと通信してJavaサーブレットから
ランダムな値を受け取るというのをやりたいのですが同じ
数字が何回も出てしまいます
昨日から始めたばかりなのでよくわかりません
違う数字を受け取るようにするにはどうすればいいでしょうか
宜しくお願いします
サーブレット側で違う数値がわたってるのは確認したの?
ブラウザで直接サーブレットにアクセスは毎回違う数値が出てきました
キャッシュは?
毎回消してから実行しています
ボタン押す毎にキャッシュが破棄されないとダメだから、何かの開発ツールで初めから無効にしないとだめだと思う。
実際はリクエストUR:Lに適当に変数を追加してキャッシュを回避するのが一般的かなー?
url = url + "&hoge="+Math.random().toString()
でやったらどうなる?
を。同じ事言ってる。
実行できました!
サーブレットでキャッシュを回避するようにしたらできました。
皆さん本当にありがとうございました
サンプルはAS3か paraflaもSUZAKAもAS2なんだっけ?
基本的な処理なら書式が違うだけなんだよな
比較サイトどっかになかったっけか
とりあえずハクヒンさんとこでやりたい項目なんかを一通り目を通してみるんだ
ttp://hakuhin.jp/
>>144 ありがとうございます!
比較サイトとかあったんですね><;
paraflaはAS1みたいです。
もうちょっと頑張ってみます。
解決しました!お手数おかけしました!
質問なんですが、AS3は、一度コンパイルして実行するのに
なぜスクリプト言語なんでしょうか?
いつからスクリプト言語だと錯覚していた
ActionScript3.0がスクリプト言語かどうかは何がスクリプト言語なのかの定義によるんじゃないかねー
実際にはCのようなアセンブラのような微妙な感じのものがバイトコードの状態になってて実行時にもう一回変換される
>>150 なるほど、その実行時にする変換のおかげで各ブラウザの差異を
吸収しているというわけですね。
でそのせいで、スクリプト言語とコンパイラ言語の中間ぐらいという中途半端な
実行速度になってしまうという理解でいいのかな?
んだ
実行方式の分類的にはjavascriptじゃないjavaに近い感じだと思う。
質問させていただきます、使用ソフトはParaflaです。
duplicateMovieClipでMC_A、MC_BをNum体分複製し、互いに衝突させる処理を考えています。
下記はMC_Aに記述する、Bとの衝突判定です、onClipEvent(EnterFrame)内に記述しています。
for(i=1; i<_root.Num; i++){
if(this.hitTest(eval("_root.MC_B"+i))){
〜衝突後の処理内容〜
}
}
複製したMC同士を衝突させる方法としてfor文を使用しているのですが、Numが40を越すと動作が遅くなります。
処理内容を抜いても変わらず、for文全体を抜くと動作が軽くなるのでfor文を毎回実行している事が原因だと思うのですが・・・
想定では3桁程複製したいと思っているので、動作を軽くする方法があれば教えて下さい。
hitTestを使わず自前でやる
ていうかそれevalが原因じゃねーの?
157 :
Now_loading...774KB:2012/11/16(金) 22:00:02.45 ID:GVd3tVO0
>>154 MC_Aも複数あるの?
Num=10なら10*10⇒100回演算が必要。
Num=50なら50*50⇒2500回演算が必要。
Num=100なら100*100⇒10000回演算が必要。
Num=150なら150*150⇒22500回演算が必要。
当たり判定の高速化導入しないとまず無理だよ。
159 :
tm:2012/11/17(土) 15:31:48.19 ID:Muoffy3+
はじめまして。
アクションスクリプト勉強中の初心者なのですが、どうしても作りたいものがありますので、お力お貸しください。
内容はキーボードのあるキー(1つ)を2秒以上押しっぱなしにすると音楽が流れ出してループ再生され、キーを離すと止まるというものです。スクリプトは2.0か3.0しか使用経験がないので、どちらかですと助かります。
PCのOSはwindows、Flashは5.5を使用しております。(参考までに・・・)
自分で調べたところ、個々でのスクリプトは見つかるのですが、どのように組み合わせればいいのかわかりませんでした。
超と言っていいほどの初心者ですので、サンプルやflaファイルのURL等載せて頂けるとものすごく助かります。
図々しいお願いだということは承知しておりますが、どうか助けてください。
宜しくお願いします。
その書き方だと何ができるのかわからん
普通に音楽を流すことはできてんの?
キーボードのイベントに反応して命令することは?
ある時点から2秒はかることは?
まるごとflaよこせとか言ってる奴に聞いても無理だろ
163 :
tm:2012/11/18(日) 01:00:57.01 ID:R4VvOvKf
至らない点が多々ありまして申し訳ありません。
こういう質問を書き込むこと自体初めてで;;
スクリプトは2.0で、ムービークリップでシンボルを作り、
on (keyPress "1"){
_root.DO.gotoAndPlay(1);
}
を書き込みました。
これをシーン1の1フレーム目に置いて、キーボード1を押すとインスタンス名をDOにした音がながれるという状況までは作れています。
これのDOを1のキーを2秒以上押す再生され、またキーが押されている間はループ再生したいのですが他にどんなスクリプトをどの場所に書き加えればいいんでしょうか?
紹介されていたハクヒンさんのサイトも拝見したのですが、ぴったりのものはなく、どれを応用すればいいのかも分かりかねる状況です。
すみませんが、今一度お力お貸しくださいませんか?
なかなか初心者にはやっかいな事やろうとしてるんだよな 手順としては
2秒タイマー作動してないなら キー押した時にキーフラグtrue
キーフラグtrueなら 2秒タイマー起動
キー離したらすぐキーフラグfalse
キーフラグfalseになって2秒タイマー作動中ならタイマーキャンセル
タイマー2秒経って正常終了したら音楽流す
音楽再生中に他の曲に変更したい場合は音楽再生フラグなんかも必要かもしれん
いわゆるコピペプログラマーにはきびしい問題だ・・・
166 :
tm:2012/11/19(月) 01:22:58.86 ID:npXCUsRU
ありがとうございます!
なるほど、タイマーってこのように使うんですね!
ゲームとかの経過時間のようにただ時間を計るだけのものかと思っていました;
trueとfalseはなんとなくわかる部分もあるんで、もう少し調べてやってみます。
ご丁寧にありがとうございました^^
素朴な質問
MC内のラベルのフレーム位置は再生ヘッドを実際に移動させなきゃ検出できないんだ?
移動前にあらかじめ知る方法ってある?
やりたい事はラベル位置から3つ目のフレームにgotoAndStopとか
currentLabels[0].frame+3
とか?
>>168 ありがとう FrameLabel クラスなんてのがあったなんて初めて気付いたw
さすがASスレだ
こりゃ気付かないな 定義元もMovieClipになってんだもの
なんでMovieClipはFrameLabelクラスを継承してないんだろ
MovieClipはFrameLabelじゃないから
むしろ継承してたらビックリするわ
実装っていいたかったんかな?
173 :
Now_loading...774KB:2012/11/23(金) 00:13:09.04 ID:0gknAQB8
PHOTOSHOPとかで描くんじゃなかろか
175 :
173:2012/11/23(金) 04:55:05.22 ID:0gknAQB8
>>174 さんきゅう。当該wonderflのリンク先を良く見たらこう書いてあった。
ttp://blog.yoz.sk/2010/05/pixel-bender-displacement-map-fakes-3d-effect/ All you have to do, in order to make your 2D images become 3D, to create monochromatic
map (black & white image) with the same dimensions as the original image (use lighter colors
for closer objects, darker colors for distant ones)
白黒画像を作るには、近接した(似た?)物体同士は明るく(白く)、そこから離れる箇所は黒く・・・??
輝度を反映する画像作りが必要なのかも。
たぶん擬似的な視点から見て(closer)手前ほど明るく(白く)、(distant)遠いほど暗く(黒く)ってことじゃないかな
車のサンプルだと屋根が一番近いから白く、ボンネットが中間の距離で、地面が一番遠いので黒
自動生成は難しそうだし、そんなに精密なものではないから元画像を背景に敷いてグラデーションやソフトなブラシで
上からなぞって塗れば良いんじゃないかなーと思った
177 :
173:2012/11/23(金) 13:40:06.75 ID:0gknAQB8
178 :
173&175:2012/11/23(金) 13:47:01.27 ID:0gknAQB8
(連投スマない)
逆に言えば凸を凹にすることも可能なのかもね。
例えば人の正面顔で鼻や口が凹んだ奇妙な絵が出来るかも。
179 :
Now_loading...774KB:2012/11/24(土) 11:52:36.82 ID:5/uW5RnT
うーむ今更ながらだがバグっぽいのを報告(CS5.5)
とあるMCの中にマスクレイヤーがありマスク対象のA_mcがトゥイーン等している
メイン制御から A_mc.visible = false にして非表示にしてるんだけど
gotoAndStop()等で他の位置に飛ばすと勝手にA_mcが表示されてしまう(.visibleプロパティがtrueに戻る)という現象
・A_mc は全フレームで同一のシンボルで途中でインスタンス名が抜け落ちたりしていない
・マスクレイヤーの「マスク」はMCであったりグラフィックシンボルや塗りのシェイプだったりする
・マスク無しだと当然誤作動は無し
マスクが同一のモノでないとマスク対象MCの.visibleプロパティが勝手に変わるってのはバグだよね?
CS6の人はどうなんだろ?
追伸
メイン制御部で毎フレームfalseにしていればいいって話かもしれないがそれでも一瞬映るw
バグといっても重大な部類じゃないのでCS6で直っていればAdobeへ報告するまでもないと思ってる
>>179 >gotoAndStop()等で他の位置に飛ばす
ここを具体的に
何をどこに飛ばすの?
A_mcの再生ヘッドを任意のフレームに移動させるって意味?
バグかもしれんが、仕様という気もしなくもない…
タイムライン関連は、いろいろと面倒な仕様があるからなあ
そもそも、「gotoAndStop()等で他の位置に飛ば」さなければ
問題は起きないのかな?
おー レスdです
>A_mcの再生ヘッドを任意のフレームに移動させるって意味?
A_mcの親の事ですな oya_mc.gotoAndPlay(30);
これでoya_mc内のトゥイーンさせているA_mcの位置なり角度なり大きさが変化していく
しかし30フレームの位置からマスクの種類が変わったので A_mc.visibleプロパティが勝手にtrueに戻ったと
飛ばさずにplay()で流すだけだとたしかに問題は起きてないようです
CS6で実験してみた
多少やってることと違ってそうだが、マスクレイヤーにキーフレーム打って
マスク内容を変更すると、マスク対象はキーフレームを越えた時点でvisibleがtrueになる
おそらく、マスクレイヤーにキーフレームが入って内容が変更されると
マスクレイヤーだけでなく、マスク対象レイヤーのオブジェクトもすべて
新規ロードされるかたちで再描画されるのではないかな
新規ロードされると、visibleとか一部のプロパティが初期化されるのは仕様なので
バグではなく、作り方が目的とあってないのかもしれない
たとえば、A_mcのクラスファイルで、コンストラクタ内にvisible=falseって書いておけば
A_mcは必ず非表示状態で配置されるようになる
おーなるほど! 解説dです
MCクラスファイルで試してみます
185 :
Now_loading...774KB:2012/11/29(木) 11:06:50.00 ID:EOSng8D7
質問です。
ローディングを作るとき、
.flaのメイン1フレーム目に下記を記入する方法は知っているですが、
これをasファイルで作るにはどうすれば良いんでしょうか。
var info:LoaderInfo = stage.loaderInfo;
stage.addEventListener(Event.ENTER_FRAME,EnterFrameFunc);
function EnterFrameFunc(evt) {
if (info.bytesLoaded == info.bytesTotal) {
stage.removeEventListener(Event.ENTER_FRAME,EnterFrameFunc);
play();
}
}
っていうかそのまんまか。 play()をコンテンツを初期化するメソッドに代えれば良いだけだとおもうけど、クラス定義の書き方がわからんということですか?
188 :
Now_loading...774KB:2012/11/29(木) 13:37:21.37 ID:EOSng8D7
すみません解決しました。
importの指定をミスっていたことが原因でした。
あと、どこで聞いたのか、クラスからstageは直接指定できないと変に思い込んでいました。
具体的には、importをアスタリスクしたら動きました。
189 :
Now_loading...774KB:2012/12/04(火) 01:01:58.81 ID:2z4dvSee
ソケットの受信のイベントリスナがremoveできなくて悩んでます。
socket.addEventListener(ProgressEvent.SOCKET_DATA, onReceiveResponseHandler);
socket.removeEventListerner(ProgressEvent.SOCKET_DATA, onReceiveResponseHandler);
みたいに普通(?)に呼んでいるつもりなのですが。。
イベントリスなごとに別々の処理をさせたくて
いくつかのイベントリスナをaddしたりremoveしたりしているのですが、それがいけないのでしょうか。
そういえばPICTAPS見て当時びっくりしたんだけどあれ何かのライブラリで3D描画してるの?OpenGLとか?
あの人は全部自前のソフトウェアレンダリング
FlashCS5(AIR2.0),WinXP-Pro(3GB)
AIRでJPGEncoderを使って画像(BitmapData)をJPG保存しようとしていますが
保存ダイアログに設定したいファイル名が現れず困っています。
file0 = new File(); として
file0.nativePath = File.applicationDirectory.nativePath + "/" + "fig.jpg"; // ****
file0.addEventListener(Event.SELECT, onWriteSelect, false, 0, true);
file0.browseForSave("JPGを保存します");// ダイアログのタイトル
で
http://uproda11.2ch-library.com/372561DxZ/11372561.png のようにしたい
のですが、これだとダイアログボックス自体が現れません。
対して、同じく file0 = new File(); として 「****」の行が file0 = File.applicationDirectory;
ならばダイアログボックスは現れるものの、設定したいファイル名(この場合、fig.jpg)が
無く空欄です。
つまり、ダイアログボックスが現われると予め"fig.jpg"が保存ファイル名として入った状態
にしたいです。
よろしく願い致します。
>>189 「removeできなくて」というのは、socket.close() して hasEventListenerで確認取ったの?
あと、弱参照は試した?
194 :
Now_loading...774KB:2012/12/05(水) 00:16:17.01 ID:p2wstVeV
>>192 Win7でそのソースでも動いたけど。
var file0 = File.applicationDirectory.resolvePath("fig.jpg");
file0.browseForSave("JPGを保存します");// ダイアログのタイトル
195 :
192:2012/12/05(水) 01:56:17.10 ID:OYLsrGLJ
その時点でsaveNameの値traceするとちゃんと入ってるの?
197 :
195:2012/12/05(水) 09:19:24.28 ID:OYLsrGLJ
>>196 はい。 traceでは確認できました。
198 :
Now_loading...774KB:2012/12/05(水) 10:37:11.87 ID:p2wstVeV
>>195 動く。
var saveName:String = "fig.jpg";
var file0 = File.applicationDirectory.resolvePath(saveName);
file0.browseForSave("JPGを保存します");// ダイアログのタイトル
この3行コピペで動かないなら環境がおかしいのかもね。
高いバージョンのFlashをインストールしてから低いバージョンのFlashをインストールすると
AIRが異常な動作をすることがある。
この場合、すべてアンインストールして
一番古いFlashをインストール→最新のアップデートを当てる
次のバージョンのFlashをインストール→最新のアップデートを当てる
を繰り返す。
199 :
195:2012/12/05(水) 11:11:49.40 ID:OYLsrGLJ
>>198 度々すいません。 自己解決しました。
上では、はしょって書いてなかったのですが、var saveName:String = "fig.jpg"; の右辺は
あるテキストフィールド(TF)の文字列を参照していました。
参照自体はできていたのですが、どういう訳かTF文字列の末尾に改行が入っていてそれが
悪さをしていました。
ゲームのリアルタイム時間表示について質問があります。
テキストフィールドをtextfieldautosizeをrightに指定して、数字が増えれば増えるほど
左に数字が伸びていくようにしたいんですが、更新していくと若干数字がぶれます。
leftは揺れないんですが、何かいい方法はありませんか?
一つの案として、leftに固定して、初めにスペースをいれて数字の位が上がるごとに
スペースを消す方法を思いついたんですが、これより簡単な設定方法がないのかな
と思いました。よろしくお願いします。
フォントがプロポーショナルとかそういう問題じゃなくて?
>>201 まさに等幅指定でで解決しました。
助かりました。どうもです。
203 :
Now_loading...774KB:2012/12/08(土) 09:51:17.30 ID:WTVbC9E8
カスタムクラス、スーパークラス、サブクラスなどを使う事が前提のFLASHの組み方
が勉強できる初心者〜中級者向けの本ってありませんでしょうか。
買った初心者向けの本はどれもflaファイルに直接記入する事が前提で、
asとの組み合わせについては最終章で軽く触れる程度なものばかりでしたので…
気が付いたらFirefox とchromeでFlashのスライドショーが表示されなくなった
何故かIEでは表示される
Flashのバージョンは、IEだけ11.4xで古く、Firefox とCromeは最新版11.5xなのだが
サポートされなくなったスクリプトとか、何か原因のヒントあるかな?
206 :
203:2012/12/10(月) 10:37:49.10 ID:yAlFlXjB
教えてくれ 入力した1文字を小文字から大文字にしたい
private function tInputPro( evt:TextEvent ):void{//テキストフィールドにキーボードから1文字入力
var st:String = evt.text;//ストリング変換
evt.currentTarget.text = "";//消してから(ただの意図)
evt.currentTarget.text = st.toUpperCase();//大文字にして表示
//しかし aA と表示されてしまう 最初のaを消すには?
}
private function tInputPro( evt:TextEvent ):void{//テキストフィールドにキーボードから1文字入力
var st:String = evt.text;//ストリング変換
evt.text = "";//消してから(ただの意図)
evt.text = st.toUpperCase();//大文字にして表示
じゃだめなん?
>>208 レスどうもです
それだと小文字が1文字のみ出ますね evt.textをトレースすると大文字になってますが…
大文字を表示したすぐ後に実際に入力したキー値によって書き変わってるぽいです
イベントリスナーの優先順位変えたり次フレーム時に強制的に書き換えてみます
>>210 できました 完璧です さんきゅうです!
なるほど Event.CHANGEが正解だったのか…
AS3、Flash9です
AS3でネット対戦オセロを作ることは可能でしょうか
ググった所、XMLHTTPRequestというのが必要で、それはJScriptの物らしいのですが、
AS3からJScriptを呼び出して使う感じなのでしょうか
>>212 Flash側は基本的にはURLLoaderとかでやればいいと思いますが、サーバーサイドのプログラムが必要になります
215 :
Now_loading...774KB:2012/12/14(金) 15:57:29.03 ID:OxYu6q1z
AS3,Plyer10.0
配列の全要素を足し算する記述ってどうなりますか?
一応for文でシコシコと足すのもありますが、もっと簡潔に書きたいです。
「配列 要素 for each 合計 ActionScript OR AS3」でググりましたが
適当なものが見つかりませんでした。
シコシコ足すしかないんじゃないか? 1行で書けばおk
途中でnullの要素があるなら1行じゃ無理だが
配列の要素が数値とは限らないから、
システム側が簡単にsum計算するような物は準備しないし出来ないだろうな。
forで回すので十分簡潔だと思うんだがなぁ。
218 :
215:2012/12/14(金) 16:45:06.19 ID:OxYu6q1z
>>216-217 すいません。 forで回しても簡潔に済みました。
余計なことをせず正道でOKでした。
決まった型の数値しか入れないと決まっているならVector使うとか、
for each使わず添字でアクセスするとか。
その程度の工夫は出来ると思うが。
220 :
Now_loading...774KB:2012/12/17(月) 14:34:56.12 ID:DKXMyXNM
久しぶりにAS2をやって分からなくなりました。Player10.0のCS4です。
ttp://www.flashiroha.com/script/matrix/as68.htmlの下のサンプル(画像が切り替わる方)で
上手く実行されません。
最初、コードの通りCS4のタイムラインAS欄に貼り付けたのですが何も出ません。
次に適当なMC(黒い小さな正方形)をステージに設置してこれを mc にしたところステージの
左側(x=0)でクルクルとこの黒MCだけが舞っている状態です。
最後に mc.attachMovie("sp" + n, "sp" + n, 1); としたら今度は黒MCだけが(画像を持たずに)
回転しています。
これって何が原因でしょうか?
221 :
220:2012/12/18(火) 02:55:14.25 ID:9c3HD5ar
(自己レス)
原因が分かりました。
attachMovie("sp" + n, "sp" + n, 1); の "sp" + n とかはライブラリの画像なのですが
MC化せずにそのまま適用しようとしていました。
正しい手順は、
CS4に画像を取り込む → MC化(ライブラリ化) → リンケージ(識別子)をsp1とかで名前付ける
でした。 これでHPの挙動が再現されました。
222 :
Now_loading...774KB:2012/12/19(水) 01:34:02.26 ID:8oMw4MzJ
コードの読み方で質問(確認)です。
にゃあプロジェクトさんのPerspective動作で、swapDepthsによる
深度調整の部分で
depthList.sortOn(["z", "id"], [Array.DESCENDING | Array.NUMERIC, Array.DESCENDING | Array.NUMERIC]);
があります。これは
「先ずZの数値の降順でソートして、同じZならidの数値の降順でソート」
の意味でOKでしょうか?
223 :
Now_loading...774KB:2012/12/21(金) 06:48:51.65 ID:Xt34yb2n
ど素人な質問ですみませんが、漫画ビューアを製作したいんですが
ActionScriptで記述できますか?JavaScriptでないとダメでしょうか?
よろしくお願いします。
できます
225 :
Now_loading...774KB:2012/12/21(金) 08:15:49.43 ID:Xt34yb2n
AS3、Flash9です
URLLoader.loadした時、「ローカルファイルシステムの SWF
および信頼されているローカル SWF ファイルのみがアクセスできます」
というエラーを、FlashPlayerTrustにcfgファイルを作って
そこにswfのあるパスを書き込んで回避できました。
ネットに上げたswfでこの方法を使う場合、
各ユーザーにswfのあるURLを書き込んでもらうという形になるのでしょうか
227 :
Now_loading...774KB:2012/12/25(火) 07:14:03.55 ID:QcQwqqq3
FlashCS5,AIR2.0,WindowsXP
LocalConnectionを使ってSWF→AIRの通信をしてますが、SWFとAIRを閉じても接続が
維持されているっぽくて、再度SWFとAIRを立ち上げて通信しようとするとエラーになります。
これを回避する手段として
ttp://d.hatena.ne.jp/s-ohira/20090121/1232536200の下部 「(略)これを防ぐためには、アプリケーションを閉じる際に必ず明示的にConnectionを閉じれば
いいのですが、Flashではそれができない場合も多いので、・・・」
を見つけ、該当するコード部分は、同ページの
try{
connect(connectionName);
・・・
・・・
//接続確認用コールバックメソッド
this["ping"] = ping;
}
と察しました。ところが、HPの続きの文章「・・・LocalConnectionのコールバックメソッドが
あるかどうかで判定することになる」がどの様に上記コードに当てはめられているのかが
分かりません。
どなたか、[明示的にConnectionを閉じること] → [上のコード] → [コールバックメソッドが
あるかどうかで判定] の考え方の流れの解説願います。
※平たく書くと、思考過程が分からないということです。
228 :
222:2012/12/27(木) 03:20:03.99 ID:0d9n/sPz
(自己解決しました)
実際にキー入り配列を作って試したところ、上記の通りの動きをしました。
通信? おもしろそうだな どんなの作ってるの?
あるクラスがあるクラスを継承してるかどうかをインスタンス化せずに確かめる方法ってない?
231 :
Now_loading...774KB:2012/12/29(土) 01:20:20.27 ID:HSDqJP7M
Suzukaで、ボタンにスクリプト入力するところに、on(Press)の前にfunctionを定義しようとしたら、定義できなかったので、
フレームアクションを用いて定義しました。そして、on(Press)からその変数へ、例えば数字の'6'を渡したら、
渡した先で"6_level0.day”(ちなみにon(Press)の方の引数に書き込んだ文字はday)となってしまっており、6だけ渡せるようにしたいのですが、
どうすればいいでしょうか。初心者です。
232 :
Now_loading...774KB:2012/12/29(土) 02:59:49.10 ID:HSDqJP7M
>>231です
インスタンス名を設定していたのが原因でした。
AS3のListコンポーネントを使ってるんだけど、
これのスクロール位置取得するメソッドとかってないの?
236 :
Now_loading...774KB:2012/12/31(月) 06:05:49.59 ID:kXhWU04w
Hakuhinさんの3D用行列の使い方で質問です。
ttp://hakuhin.jp/as/matrix_33.html#MATRIX_01 環境はCS5(AS3)ですが、これは暫定です。 本当はAS2で3D操作を実現したいので。
※ AS2はここ3年くらい全くやってないので感覚的に忘れちゃってます。
先ずは試しに、ある3Dの点、例えば(100, 100, 0)を並行移動させたいでので
HPの「平行行列を作成する」を参考に書いてみました。
※ 記述は見当が付かないのでかなり適当です。ゴメンなさい。
var vec:Object = {x:20, y:-7, z:3};// 並行移動量;
var myVector3D:Vector3D = new Vector3D(100, 100, 0);// 初期位置
var myMatrix:Matrix = Mtx44Translate(vec);// マトリックスの形成
myVector3D.transform.matrix = myMatrix;// ここでエラーになります
trace("XYZ= " + myVector3D.x + ", " + myVector3D.y + myVector3D.z);
function Mtx44Translate(vec){
// 中身は
ttp://hakuhin.jp/as/matrix_33.html#MATRIX_01 と同じ
}
つまり、行列は作ったものの座標点にどう適用して良いものか悩んでいます。
Vector3DでなくPointオブジェクトがありますがこれは2次元なので・・・
ttp://tech.nitoyon.com/ja/blog/2008/06/16/as-3d-lessen1/には カスタムのPoint3Dクラスがありますが先ずはこれ無しでやりたいです。
訳の分からない文章かと思いますが宜しくお願いします。
238 :
236:2012/12/31(月) 22:44:16.67 ID:kXhWU04w
>>237 有難うございます。
「Mtx44TranslateはObject型返してる」と多次元行列の勉強をし直して
みたところ使いこなすことが出来ました。
ついでにネットを眺めていたら、ラプラス展開とか基底ベクトルって単語久しぶりに見たw
ちなみにMATLAB では2次元よりも大きい配列は多次元配列と呼んでいるそうです。
MATLABじゃなくてもよぶだろー
Flash 8 のファイルを Flash CS6 に変換するのは現状無理でしょうか?
AS2.0 AS3.0 の違いもあるから厳しいのは承知の上でどこかに可能性があるのならと・・・
最悪スクリプト以外だけでも変換してくれればと思うのですが。
>>240 Flash 8 のファイル → Flash CS6 って開けないの?
もしかしてFlash 8が最初の開発環境でUpを繰り返しCS6に到ったとか?
恒久的には無理だけど、本に付属の無料CS4辺りを30日限定で入れて一旦CS4で保存して
CS6で見るとかはどうかな。
242 :
Now_loading...774KB:2013/01/04(金) 22:17:25.58 ID:1eB3y4lC
AS3の講座でようやく良いところ見つけた
結構つまずいてた部分があるから助かる
なぜそれを書かない
244 :
Now_loading...774KB:2013/01/05(土) 02:32:06.60 ID:3kZMTuyY
初心者〜中級者用だからここの人たちには必要ないかなと思ったから
晒すのもまずいかなと思うが一応ヒントで検索ワードは「マイナビ おきらくFLASH講座」
知ってたらすまん
>>244 数学と同じで大事なのは基本の組み合わせだよ。
おきらくFLASH講座とHakuhinさんのとで大抵のことは出来そうだな。
(追記すまん)
強いて言えば、(もう連載は終わってるけど)「おきらく」の方はAIRの情報も盛り込んで欲しかった。
247 :
Now_loading...774KB:2013/01/05(土) 11:10:01.68 ID:B0Z+gJJv
テクスチャ枚数とかリソース量に制限ってありますか?
ある
具体的にどれくらい?
まずなんの話してんのか書けよ
>>241 なんとか Flash 8 のファイルを ActionScript 3.0 のファイルに変換したいのですが・・・
スクリプトも変換されれば一番うれしいんですが、できなければタイムラインの部分
だけでもいければ、スクリプトは手作業で変換してもかまわないと思っています。
いくつかこれをやりたいファイルがあって困っています。
勘違いしてるんじゃないか? そもそもスクリプトは変換されないおw
8ProならAS1,2だろ CS6で開いてもAS2設定でしか動かない AS2からAS3には変換されないんだお
ちなみにFlashPlayer5以上で作られてるならFlaファイルは開けると思うんだけど
8ProはもちろんMX2004、無印MXで作られたのでも開ける ただし保存時のPlayer設定が4以下だと無理かも
Flaファイル自体は開けてるんだよね?
254 :
Now_loading...774KB:2013/01/06(日) 11:01:13.67 ID:y0wiffT6
ソケット通信なんだけど
socket = new Socket("アドレス", ポート);
したら自動的にポート843にポリシーファイル要求が来るんだよね??
>>253 書き方がわかりにくくて申し訳ありません。
Flash 8 のファイルを CS6 で開くことはできています。
「やりたいことは Android や iOS 用に AIR アプリとして書き出す」
ことなんですが、それは AS3.0 形式でないとできませんよね。
そこで AS2.0 -> AS3.0 の翻訳は無理だとしても、それ以外のタイムラインの
部分だけでもAS3.0 形式のファイルにもっていく方法はないのかと考えています。
もちろんこれだとスクリプトは動きませんが、そこは手作業で変えていくということ
で仕方がないと思っています。一からすべてを作り直すのはとても大変・・・
大量の 8形式のファイルを AIRアプリとして書き出すために何か裏技をご存じの方
はみえないでしょうか?
257 :
Now_loading...774KB:2013/01/06(日) 13:01:41.82 ID:y0wiffT6
StageScaleMode.SHOW_ALLなどでstageを画面に固定したあとにウインドウの大きさを変えたら上下か横に余白ができますが、
この余白を含めたウインドウのサイズか縦横比を取得する方法はありますか?
259 :
258:2013/01/06(日) 18:00:15.21 ID:2MA6S11R
吹いたw
さすがsparkさんだ
261 :
Now_loading...774KB:2013/01/07(月) 21:46:50.59 ID:Q5OjHhhM
ByteArray.writeUTFBytes()って自動でUTF8でエンコードしてバイト列になるの?
AIRやってるんだけど、
alwaysInFront=trueになってるtransparentのNativeWindowがあって、それがアクティブでないときに、
そこのステージに設置してあるMovieClipをクリックしてもウインドウをアクティブにしない方法ある?
mouseEnabledは試したけどだめだった
Adobe AIR Debug Launcherは動作を停止しましたってなるんやけど
よほどのことしない限りならんよな?
LoaderでSWFを読み込んだとき、loder.contextでメインタイムラインが取得できますが、ドキュメントクラス内に書いた関数は実行できるのですか?
正:loader.content
できる
どうやるん?
簡単なテストプログラムでも書いてやってみればいいじゃん
できなかった
loader.content.関数名();
じゃダメなん?
completeしてるか
MovieClip(loader.content).関数名(); でどうか
読み込まれる側のdocumentclassが extends MovieClipかどうかあたりかなー?
あと関数がpublic以外とか無いよね?
できなかったんならなんて言われたのかかけよエラーでてんだろ
コピペしろや
MovieClip(loader.content).関数名();
で、いけました。
どうもありがとうございます。
お騒がせして申し訳ありませんでした。
loder.contentにおまえの指定したメソッドがなくてコンパイルエラー吐いてたんだろ
ダイナミッククラスのMovieClipかObjectでキャストしないと勝手なメソッドは呼べないんだよ
エラーをみれば一発でわかる話
今度からはエラーを書け
ダメでしたじゃなくてとにかくエラーを書け
頼むからエラーを書け
エラー内容が分からなければググったり、あとはリファレンス読んだりで大抵は解決するからね
277 :
Now_loading...774KB:2013/01/14(月) 09:20:14.38 ID:OsOHT0P5
半透明色が含まれているSpriteをBitmapDataに描画すると、半透明部分が完全不透明に変換されてしまいます。
半透明を維持したまま描画するにはどうやればいいですか?
new BitmapData(width, height, true);
Airを使ってサーバー側がjavaのアプリを作ってて、
RemoteObjectのtimeout時間は無制限にしてます。
にもかかわらず、サーバー側の処理が30秒を超える場合の
初回だけ、通信エラーが発生する現象が起きるんだけどなんでだろ?
280 :
Now_loading...774KB:2013/01/14(月) 21:06:26.79 ID:OsOHT0P5
Spriteの一部分を切り抜いてSpriteを作るにはどうすればいいですか?
>>280 無理
BitmapDataにするかマスク駆使するか
マスク?
何か色で塗りつぶすってことかな
なにがしたいのかわからん
Sprite形式でないといけないのか
ものSpriteもとっておきたいのか
マスクを知らないのか
単純にあるSpriteのある矩形領域だけ表示したいならscrollRect
スプライトに独自のフォントで0から9までの数字を描いたテクスチャを読み込んでいます
その中から1つ数字を表示してそれ以外は透明にしたい
>scrollRect
これでしたね
288 :
Now_loading...774KB:2013/01/15(火) 06:04:04.43 ID:aHISUdU7
SparkProjectの ASMovieClip
ttp://www.libspark.org/wiki/Hiiragi/ASMovieClip で質問です。 環境:FlashCS4,WindowsXP,メモリ3GB (タイムラインの1フレ目に書いた)
ライブラリをDLし、 import org.libspark.asmovieclip.*; で準備を整えて
ASを書いてコンパイルしたところ、エラーにはならなかったのですが希望する動作(本来の動作)が
得られませんでした。 ※以下ASの抜粋
var asmc:ASMovieClip = new ASMovieClip();// ASMovieClipのインスタンス
asmc.x = 100;
asmc.y = 100;
addChild(asmc);// ステージ上にASMovieClipのインスタンスasmcを置く
asmc.addChild(mcA);// asmc内にボタンモードを持つ子MC(円盤MC)を置く
mcAをクリックしたときの挙動:
intA++;// int数でカウントしながら円盤MC(mcA)をクリックする度に右に移動
evt.target.x += 10;// 例:5回クリックするとX座標は+50
asmc.addFrame(mcA, intA, "ラベル " + intA.toString());// asmcにフレームとして記録させる
最後にRunボタンをクリックして
mcA.x = 0;// 最初の位置に戻し
asmc.play();// フレームを再生
trace("Information= " + asmc.getFramesInformation());// 情報確認
をしましたが、traceでは正しい情報が得られるものの再生が行われません。
どうするべきでしょうか? 必要ならばライブラリと一緒にFlaファイルをUpするのも可能です。
関連サイト:
ttp://melancholy.raindrop.jp/wordpress/?p=982 // 製作者が実際の使用
ttp://wonderfl.net/c/4cWf // 製作者の試作?
289 :
288:2013/01/15(火) 06:09:59.67 ID:aHISUdU7
traceの内容: 一応、5回クリック移動で5フレーム分記録されている。
Frame:Label:DisplayObject:Name
========================================
1:ラベル 1:[object EnM]:instance7
2:ラベル 2:[object EnM]:instance7
3:ラベル 3:[object EnM]:instance7
4:ラベル 4:[object EnM]:instance7
5:ラベル 5:[object EnM]:instance7
========================================
totalFrames : 5
enterFrameDelayTime : 33
isLoop : false
isPlaying : false
> asmc.addChild(mcA);
mcAってどっから出てきたんだお 定義したとこ見せてみ 話はそれからだ
traceでフレーム毎にmcAの座標プロパティを確認だ
292 :
288:2013/01/15(火) 10:49:18.38 ID:vXclpDak
レス有難うございます。
>>290 mcAはCS4のライブラリに登録した円盤MCで
var mcA:MovieClip = new EnM();
mcA.buttonMode = true;
asmc.addChild(mcA); により生成&DisplayObject追加しています。
>>291 円盤MCはそれ自体をクリックするとそれ自体が右に移動するので
mcA.addEventListener(MouseEvent.CLICK, mcA_click);
function mcA_click(evt:MouseEvent) {
intA++;// カウント用
evt.target.x += 10;
trace("mcA.x= " + mcA.x, evt.target.x);
asmc.addFrame(mcA, intA, "ラベル " + intA.toString());
}
でtraceすると
mcA.x= 10 10
mcA.x= 20 20
mcA.x= 30 30
mcA.x= 40 40
と意図どおりに数値的にも画面上でも変位しています。
他に試しにRunボタンで asmc.prevFrame(); とか asmc.gotoAndPlay(1); を試しましたが
タイムライン的な挙動は得られませんでした。
もし他にヒントがありましたら宜しく願います。
asmc.gotoAndStop( 3 );
とかにして
trace( asmc.getFrameAt( mcA ).x );
これじゃ確認できないか? メンドイから試してないが
294 :
288&292:2013/01/15(火) 14:55:11.84 ID:vXclpDak
>>293 getFrameAtの引数はフレーム番号かラベル名なので
asmc.gotoAndStop(3);
trace("3回目の位置= " + asmc.getFrameAt(3).x);
としたら、5回クリックの5回移動で30になるところを50でした。
※つまり最後のしか反映されてない(下記)
mcA.x= 10 10
mcA.x= 20 20
mcA.x= 30 30
mcA.x= 40 40
mcA.x= 50 50
3回目の位置= 50
しかし、フレームを追加形成する addFrame() は 色・形がちがう En0,En1,En2 を
CSのライブラリに用意して
asmc.addFrame(new En0());
asmc.addFrame(new En1());
asmc.addFrame(new En3());
とすれば play() でフレーム移動が可能です。
どうやら、DisplayObjectContainerの中にある状態を写真のようにスナップショットして
フレーム追加するのは出来ないのかも・・・
う〜ん、答えに近づいているようで近づいていないようなw
295 :
288&292:2013/01/15(火) 15:11:47.59 ID:vXclpDak
なにやってんだかわからんけどBitmapdataにdrawしてaddChildしたいって事?
//ムービークリップ
var mc:MovieClip = new MovieClip();
var g:Graphics = mc.graphics;
g.beginFill(0xFFCC00);
g.drawCircle(100,100,100);
addChild(mc);
//切り取って表示
var b:BitmapData = new BitmapData(100,100);
b.draw(mc,new Matrix(1,0,0,1,-100,-100));
var bmp:Bitmap = new Bitmap(b);
bmp.x=300;
addChild(bmp);
>>296 お手数かけます。
多数の子や孫を持つあるMCが操作でマウス操作で ○→●→△→▲→□
と変化したとき(あるいは子孫が位置を変えた時)各個をフレームに割り振り、
. 1フレ 2フレ 3フレ 4フレ 5フレ
[ ○ ][ ● ][ △ ][ ▲ ][ □ ]
と動的にFlashCSのようなタイムラインフレームを作成(伸長)し、
play(またはrun)ボタンを押せば
○→●→△→▲→□ と自動再生させたいです。
で、FlashCS(というか昔のマクロメディアFlash)のように任意の位置の
フレームを選択して(例えば3フレ目)編集で△を▼にしたり内部の子MCや
孫Spriteの位置を変えて、再生では
○→●→▼→▲→□ としたいです。
平たく書くと、フレームを動的追加&編集できるFlashCS(マクロメディアFlash)
みたいなものを作りたいです。
※ Bitmapdataにしちゃうと内部の子MCや孫Spriteの操作が出来ない
ので避けたいです。 あと、MCをコピーしてどっかに格納するという方法も
あるかと思いますがMCのコピーは
ttp://seedleafproject.seesaa.net/article/283299921.html ttp://www.inazumatv.com/contents/archives/5454 色々問題があるようなので・・・
度々すいません。
どうやら意図した動作(MCの変化をスナップショット的に記録)は出来ないようです。
基本的に、addFrame() の引数は
A) DisplayObjectContainerに入った(実体化した)をMCを拾い集めて順次フレームに格納するか
B) new したオブジェクトを順次入れてフレームを伸長するか
のどちらかでした。
マウス操作での変化を記録するオブジェクトなりクラスなり作って
再生は1つのMCを記録に応じてフレーム移動させるとかでいいんじゃないの
300 :
Now_loading...774KB:2013/01/16(水) 20:48:58.49 ID:YJUyPR8M
>>299 どうも。 やりたいことの本質は、アプリケーションでよくある undo redo (元に戻る,やり直し)です。
記録するにしてもプロパティ数がかなりになるので整理(管理)が面倒なので、いっそ
CSシリーズや旧マクロメディアのタイムライン的に管理した方が楽かなあと思っていました。
調べると、
ttp://www.adobe.com/jp/devnet/flex/articles/flexarchitecture2.html Command を使うことで、Controller が肥大化したり、重複したコードが複数箇所にある、といった
状態を避けることが可能になります。また、Command には、操作の "取り消し" の様な複雑な機能や、
マクロ機能の実現がしやすいという利点もあります。ビジネス層との連携にも Command は使われます。
ということなので、
Commandパターン undo redo 履歴 ActionScript OR AS3 OR Flash
でググって勉強中です。
>>301 Flex4ならUndoManagerがあるぞ
304 :
301:2013/01/16(水) 23:13:27.87 ID:dBCMei6E
>>303 どうも。手元にあるのはCS4とCS5だけです。
あと調べると
ttp://www.be-interactive.org/?itemid=535 flashx.undo.UndoManager は、TextLayoutFramework に含まれているクラスのようです。
Flex SDK 4 であれば、"frameworks/projects/textLayout/src/flashx/undo/UndoManager.as"
に元のファイルを見つけることができます。たぶん、新しいテキストエンジンで色々やるために
自前で実装する必要があったんでしょうね。
ということなので、FlexのTLF専用っぽいです。
>>304 今ちょっとやってみたけど、別に専用じゃないようだぞ
newでインスタンス作成まではとりあえず確認できた
補完に出すためにはパス通さなきゃダメだったけど
>>307 NHKスレから帰還しますた。
へえ〜〜〜
わりと日本語というか2バイト文字使える言語処理系って多いよね めったに使わないけど
310 :
Now_loading...774KB:2013/01/17(木) 17:38:48.21 ID:VoF6ma+A
MP3(バイナリ)を文字列化するAS3ライブラリってありますか?
「Base64 Encorder」ってのは画像を文字列化するやつですけど、そのMP3版です。
音 文字列 バイナリ エンコード デコード でググりましたが見つかりませんでした。
Base64ってただのエンコード方式だから
別に画像専用ってわけじゃない
MP3をByteArray相互変換できればBase64で文字列相互変換できんじゃね
314 :
310:2013/01/18(金) 02:08:36.16 ID:YqNwlCxg
315 :
314:2013/01/18(金) 06:22:47.23 ID:YqNwlCxg
(自己解決しました)
BitmapData.setPixelsでOKでした。
参考:
http://wonderfl.net/c/d2Ga decoder.decode(文字列);
var ba:ByteArray = decoder.toByteArray();
var bmd:BitmapData = new BitmapData(50, 50, true);// 大きさは適当
bmd.setPixels(bmd.rect, ba);
var bitm:Bitmap = new Bitmap(bmd);
addChild(bitm);
JPGやPNGにはしていませんけど、これで良しとします。
コンポーネントのFlvPlaybackとSeekBarを設置しました
。flvファイルの再生状況を視覚的に見せる為にSeekBarを設置したのですが
スクラブ(ドラッグによる再生の移動)を禁止したいです。
よろしくお願いします。
>>315 as3でPNGEncoderとかあるよ
>>316 あまり拘らないなら透明シェイプとか被せてマウス操作が届かないようにするとかでもいいんじゃね
320 :
Now_loading...774KB:2013/01/20(日) 16:02:49.54 ID:1xCjnNtO
長くなっちゃったんで次の投稿でコードだけ載せます。
現在の時間によって再生されるムービークリップを変える方法についての質問です。actionscript3.0で、Flash CS5 を使っています。
現在の時間を表す数字をダイナミックテキストではなくムービークリップの再生で表示したいとと思っています。
自分で作った文字で時計を作りたいからです。
今の時間を表す透明のダイナミックテキストを用意しておき、if文を使い再生されるムービークリップを操作ようと思ってます。
例)もしseconds_txtが01ならばmc_seconds_txtが1フレーム目に行くようにしたい。
ムービークリップ(mc_seconds_txtなど)の中は1フレーム毎に数字の絵が連続して入っています。
エラーは何も出ないのですが指定したフレームに行ってくれません。時間の表示自体は問題ないのですが
if文のフレーム移動の書き方が心配です。
具体的にどういった文にすれば上手く動くようになるか教えてくださると幸いです。
よろしくお願いします。
321 :
Now_loading...774KB:2013/01/20(日) 16:04:43.98 ID:1xCjnNtO
>>320のコード
addEventListener(Event.ENTER_FRAME,updateDate);
function updateDate(evt:Event):void {
//Dateクラス設定
var dateObj = new Date();
//時を表示(1桁の場合は頭に0を足す)
if (dateObj.hours < 10) {
hours_txt.text = "0" + dateObj.hours;
} else {
hours_txt.text = dateObj.hours;
}
//分を表示(1桁の場合は頭に0を足す)
if (dateObj.minutes < 10) {
minutes_txt.text = "0" + dateObj.minutes;
} else {
minutes_txt.text = dateObj.minutes;
}
//秒を表示(1桁の場合は頭に0を足す)
if (dateObj.seconds < 10) {
seconds_txt.text = "0" + dateObj.seconds;
} else {
seconds_txt.text = dateObj.seconds;
//試しに秒をのみで、例)seconds_txtが"01"ならmc_seconds_txtは1フレーム目に
if(seconds_txt.text == "01")
{mc_seconds_txt.gotoAndStop(1);
}
else (seconds_txt.text == "02")
{mc_seconds_txt.gotoAndStop(2);
}
…長いので省略
> seconds_txt.text = dateObj.seconds;
この後ろでカッコ閉じてないからじゃねーの?
323 :
Now_loading...774KB:2013/01/20(日) 18:20:18.14 ID:1xCjnNtO
>>322 おおー!できました。ありがとうございます!
324 :
Now_loading...774KB:2013/01/22(火) 20:43:50.43 ID:Vck8FMOc
サンプルコードでよくあるこの記述の意味がわからないです
public function Main():void {//コンストラクタ
if ( stage != null ) {//@
initialize(null);//initializeは初期設定
} else {//A
this.addEventListener(Event.ADDED_TO_STAGE, initialize);
}
}
ドキュメントクラスで実行すると最初からstageが有り@が実行されますが
Aが実行される場合ってのはどういう時なんですか?
タイムラインからクラスをnewしてもAは実行されません
公式リファレンスのDisplayObjectのstageに
>表示オブジェクトが表示リストに追加されていない場合、stage プロパティは null に設定されます。
て書いてある
ドキュメントクラスには基本stageが即あるのでいらんはず
外部読み込みaddChildされる可能性を想定してるんじゃない?
CS5.5のボーンとQuickBox2Dを組み合わせて、重力付きのチェーンを再現したいのですが
何かよいサイトは無いでしょうか?
チェーンへのボーン適用はできたものの、ボーンへ重力をつけつつ両端を任意の
座標に固定する・・・ということが出来ていません。
縄跳びみたいに動くスプライトに両端を追従させつつ、縄部分が重力で垂れる動きができると
ハァハァな表現が出来るのですが(´・ω・`)
flashbuilder買ったのはいいが、難しいすぎ。
asでオブジェクト作ってaddchildしたほうがラクな気がしてならない。。
書籍もほとんどないし困ったもんだ
mxmlのはなし?
>>330 そです。
flex4の入門書読んだけど、応用についての資料がネット上にも皆無で困ってます。
できるだけmxmlとasファイルは分離させたいのですが、
ネット解説見ても「なに言っちゃってんの?」って感じで四苦八苦です。
mxmlでは初期レイアウト(簡単なイベント用レイアウト含む)だけ作って、buttonとかにaddeventしてそこからはasでaddchild等の制御したいのです!
>>331 追記です。
<s:Button id="test" label="testtext" x="100" y="100" click="package1.class.func(event);"/>
<s:Button id="test" label="testtext" x="200" y="100" click="package2.class.func(event);"/>
こういう書き方しかないのでしょうか?
package2.class.func(event);でポップアップだしたときの制御は、
ポップアップタグをvisibleにして同タグ内のpopuppackage.class.func(event);
を叩く感じでしょうか?
>>331 できるだけmxmlとasファイルは分離させたい
includeを使うのは?
最小限のASはmxml側で必要だけど。
FlexでAIRやってるけどIMXMLObjectは常に使ってるな
ビューとコントローラって感じで分離できるし
同じく。
そのadobeのリンクと同じように、initialize時にid+アクション(click)とかでイベントを自動的に登録する
IMXMLObjectを実装したAbstractクラス(ASの機能としてabstractは無いけど)作ってて、
画面が必要な所はextendsしてる。
>>333-336 求めていた記事ありがとうございます!
ネット上にある情報のほとんどがflex3のもので残念ですが一歩ずつやっていきます!
また困ったことがあれば遠慮なく戻ってまいります。
よろしくお願いしまーーーす!!ターーン!
spark以外の部分は結構通用するよ >Flex3
>>338 Flex3ちゃんはsparkライブラリ利用はダメなん?
>>337です。
adobeデベロパセンタの記事読んでます。
http://www.adobe.com/jp/devnet/flex/articles/imxmlobject_interface.html オブジェクト指向不慣れなのでトンチンカンな質問かもしれませんがよろしくお願いします。
〜〜略〜〜
AbstractViewHelperは、自身がIMXMLObjectを実装したクラスです。
IMXMLObjectはinitalizedメソッドの第一引数”document”によって、
IMXMLObject実装クラスのインスタンスを生成したMXMLドキュメントのインスタンスが与えられます。
ふむふむ。。
〜〜略〜〜
メソッドリストはAbstractViewHelperのサブクラス自身のインスタンスを引数として与えます。
describeTypeXmlforLogic = describeType(this);
ん?this??
AbstractViewHelperをextendsしているimxmlsampleViewHelperがサブクラスですよね?
このthisってAbstractViewHelper自身のことじゃないのですか?
AbstractViewHelperを渡して継承?しているimxmlsampleViewHelperのメソッドリストが取得できているってことなら合点がいくのですが。。
簡単に言ってしまうと
インスタンス=newしたクラス
だから、imxmlsampleViewHelperがインスタンスとなる。
imxmlsampleViewHelperがAbstractViewHelperを拡張。
AbstractViewHelperを呼び出したのはimxmlsampleViewHelperだから、
AbstractViewHelper内でのthisはimxmlsampleViewHelperとなる。
他のクラス(momoHelper)がAbstractViewHelperをextendsした時は、
AbstractViewHelper内での“this”はmomoHelperとなるてことですかね?
>>342追記です
describeTypeXmlforLogic = describeType(this);
でAbstractViewHelperのパブリックメソッドも取得しているのは、
サブクラスを渡しているので、継承元(AbstractViewHelper)のパブリックメソッドも取得できているてことでしょか?
>>342 なんか難しく考えすぎ。
> AbstractViewHelperを呼び出したのはimxmlsampleViewHelperだから、
> AbstractViewHelper内でのthisはimxmlsampleViewHelperとなる。
「呼び出した」っていう表現自体が勘違いのもとかもしれない。
包含関係で考えてみたらいい。
AbstractViewHelperをextends したimxmlsampleViewHelperは
AbstractViewHelperのメソッド、定数を受け継いでいるんだが、
それは独立したAbstractViewHelperのインスタンスをサブクラスが持っている訳では無い。
あくまでimxmlsampleViewHelperのインスタンスはimxmlsampleViewHelperで
どこを継承しようと変わらない。受け継いだメソッドもimxmlsampleViewHelperのもの。
だってoverrideで上書き出来るでしょ?
>他のクラス(momoHelper)がAbstractViewHelperをextendsした時は、
>AbstractViewHelper内での“this”はmomoHelperとなるてことですかね?
thisはインスタンスって事なんだお だから他クラスがAbstractViewHelperを継承しようが
別(imxmlsampleViewHelper)のには影響無し
ただしAbstractViewHelperクラスの中に
staticメソッドやメンバがあるならそれは(同アプリ内で使用してるなら)影響する
>>344,345
var mo = new MOMO();
function MOMO(){
this.text = "momomomo";
}
のthisはmoですよね?
ああーーなるほど
AbstractViewHelperもimxmlsampleViewHelperのものになるからthisでいいてことです?
describeTypeXmlforLogic = describeType(this);
で取得しているパブリックメソッド(initializeやaddedとか)は、
AbstractViewHelperのものではなくて、あくまでもimxmlsampleViewHelperのものってことですね!!
そうやね。
>>345が言うとおりstaticにでもなってない限り。
staticと通常のインスタンスの違いを先に勉強しとくんだお 初心者はこれで混乱する
インスタンスを複数生成しない限り自作クラスはだいたいがstaticメインのクラスとなる
それにstaticの方が処理が速い(らしい)
350 :
Now_loading...774KB:2013/01/26(土) 18:00:50.35 ID:AtS1XsGr
マウスイベントでボタンがあるMovieClipのインスタンス名を
引数で関数に渡す方法で悩んでいます
var mcname:MovieClip;
mcname = this;
Btn.addEventListener(MouseEvent.MOUSE_DOWN,fnc);
function fnc(e:MouseEvent):void {
trace("ムービークリップ名"+引数);
}
引数で関数にmcnameを渡して、関数でそれを受け取る場合はどのようにしたらいいのでしょうか?
よろしくお願いいたします
Btnがthisの子なら、e.targetがBtn自身だからそっからparentで参照するとか
>>348,349
ありがとうございました。event.targetでアクセスもできますた
外部asでcurrenttarget以外にアクセスしたい場合、
documentgetElementById("component id");みたいな感じでアクセスできないのでしょうか?
traceしてみたら、documentはmxml名ですが、戻りはnullてますです。
うおっしゃああああ
>>352解決しました!
var btn:Object = document["component id"];
で取れました。
これでas無双ができるようになりますた!
おめ
document.idでも取れるはず
>>354 おおお、取れました!!
ありがとうございましたー!
356 :
Now_loading...774KB:2013/01/27(日) 21:57:05.98 ID:jSJvuZFI
Command パターン(コマンドパターン)の練習をAS3,FlashCS5でやってます。
参考サイト
ttp://feb19.jp/blog/archives/000221.php サイト中のコードを1つのASファイルにまとめて実行しようとしましたが出来ませんでした。
(手順)
全部package の所の jp.feb19.gof.command を消し(同一ファイルなので)、メインクラス
CommandTest以外は class クラス名 {・・・} の形にしました。
例えば:
class Command {
public function Command(){ }
public function execute():void{ }
public function unexecute():void{ }
}
※このCommandクラスは class CalculatorCommand extends Command で継承されてます。
(結果)
これでコンパイルすると「1181: 参照を基本クラス Command に送ります。」というエラーが
出て、このメッセージでググってもどう修正すべきか分かりません。
どうすべきでしょうか?
357 :
sage:2013/01/28(月) 02:30:23.17 ID:NUoAtem7
AIRでアクションゲームを制作中なのですが、そのままAIRにパッケージ化すると
binフォルダにまとめてあるjpg、png、xmlファイルなどが、インストール先で見放題・編集し放題になってしまって困っています。
複数の画像やxmlファイルを、C++等で言うところのdatファイル等にまとめておいて
ゲーム実行時にデータを復元して使用する、ということは出来無いでしょうか…。
何か知恵を頂けたら幸いです。
開発は、FlashDevelopを使っています(AIRのバージョンは3.1です)
358 :
356:2013/01/28(月) 03:00:33.24 ID:GwZk8VYG
>>357 FlashDevelopでどうやるかわからんが、Flex4のFlashBuilderだとswfひとつに出来たけどな。
もう結構前の話でいまのAIRに通用するかわからんけど。
Embed使うだけなんだが。
360 :
357:2013/01/28(月) 13:51:38.90 ID:snxrMwMK
>>358 Zip化だと、ユーザーに解凍されて結局データを見られてしまいそうだったので、候補から外してまし
た。
でも、Zip化した上で、さらに固有の拡張子を付ければバレにくいかもしれませんね。(img.zip ⇒ img.dat)
それでも、そのファイルの拡張子を手動で書き換えられてしまえばバレてしまいそうですけども orz
>>359 Embed使うと外部データをわざわざ各画像をロードする手間も省けて良いんですが
使用素材数が多い&今後も増えていきそうな感じなので、その都度ソースを書き換えるのは手間かなぁと。
ソースを弄れるのが僕だけなので、絵描きさんが画像を追加した時など、即座に対応出来ないんですよねぇ。
画像等をバイナリデータ化して、固有拡張子をつけて保存とか、出来ないですかね……?
>>360 > Embed使うと外部データをわざわざ各画像をロードする手間も省けて良いんですが
> 使用素材数が多い&今後も増えていきそうな感じなので、その都度ソースを書き換えるのは手間かなぁと。
新しい画像が増えたのにソース弄らず参照させるってどういう方法?
絵描き側でFlashでswfかswcにしてやれば?
特にswcだったら参照設定しておくだけで取り込んでくれるから楽だろ。
Flash持ってないとかいうならシラネ
362 :
357:2013/01/28(月) 14:41:38.20 ID:snxrMwMK
>>361 画像の管理は、asファイルじゃなくてxmlファイルでやってまして、
as側でxmlファイルを読み込んで、そこに記載してあるパスを参照⇒画像をロードする、というやり方をやってます。
紛らわしい書き方をしてしまって申し訳ないです。
> 絵描き側でFlashでswfかswcにしてやれば?
確かにそれが出来れば楽そうなんですけども、あいにくFlash持ちが僕だけなのです orz
AIRアプリなりで、画像一括swc変換ツールでも作れれば良さそうなんですが
そこまでやるなら、諦めて僕がswc化した方が早いか…。
>>363 まぁ、そんな事だろうとおもった。
XML書いていいなら、Flexコンパイラでswc作ったら良いんじゃないかな。
configファイル作ったらいけるよ。
364 :
357:2013/01/28(月) 17:20:25.76 ID:snxrMwMK
>>363 なるほど、軽く調べて見て来ましたが
flexとxmlとasファイルがあれば、compcでswcファイルを作成出来るんですね。
事前にasファイル(さらに言えば、compc呼び出し用の.batファイルも)を用意しておけば
xmlファイルの書き換えだけで、割りと簡単にswcファイルを書き出しが出来そうですね。
極めたら、色々面白そうな事も出来そうですし
Flexコンパイラで出来そうな事をもっと調べて見ることにします。
ありがとうございました!
使用していますのは、AS3 の CS6 です。
教えて頂きたいのですが、
外部SWFの更に中に有るムビークリップのタイムラインの操作方法を
教えて頂けないでしょうか。
var Loader_obj:Loader=new Loader();
Loader_obj.load(url);
var target_mc = Loader_obj.content as MovieClip;
target_mc.gotoAndStop(2);
で外部SWFのルートのタイムラインは操作できるのですが、
その中に有るムービークリップのタイムラインの操作出来ません。
例えば、外部SWFの中に、『A』と言うムービークリップが有った時に
target_mc.『A』.gotoAndStop(2);
と言う感じに『A』の中のタイムラインを操作したいのですが上手く行きません。
誰かご存じの方は教えて頂けないでしょうか
>>365 target_mc.A.gotoAndStop(2);
本来は、上記で上手くいくはず
出来ないのなら、別のところに問題があるのでは?
たとえば、Aがまだ存在していないのに参照しようとしているとか
367 :
365:2013/01/29(火) 15:22:48.84 ID:pyf/Zn5t
>>366 ありがとうございます。動きました。
本当、私バカですね…。
368 :
Now_loading...774KB:2013/01/29(火) 21:14:54.17 ID:1IMjCpQt
マウスイベントについて質問です。
タッチパネルを触るとタッチイベントとマウスイベントが発生しますが
マウスイベントはマウス操作の時だけに限定して
タッチパネル操作ではマウスイベントを発生させないようにしたいのですが
可能でしょうか?
液晶ペンタブやタッチパネルが主流になる時代が来るんだろうか…
とりあえず切り替えボタンでも設置してイベントを使い分けてみては
371 :
370:2013/01/30(水) 06:14:56.58 ID:vy2K0jlk
間違えた
追い出したので → 思い出したので
もう寝る。
372 :
357:2013/01/30(水) 20:30:42.34 ID:dHIICMm5
>>370 参考URL、ありがとうございました!
理想が『Flash Professionalを持ってない人間でも、ユーザーに解析されない(されにくい)データ形式を生成出来るようにしたい』
だったので、今回は参考程度に見させて頂きます。
(どの道、フォントの埋め込みはいつかやりたいと思ったので、そちらの方で役立たせて頂きます)
373 :
Now_loading...774KB:2013/02/02(土) 13:16:46.67 ID:445WOb1l
flex_sdk_4.6の使い方教えて
まず解凍しろ
突然だが、こんなの見つけた。
ttp://lab.klab.org/wiki/3to2 ActionScript Converter "3to2(サントゥニー)"
ActionScript3 で作成した Flash ムービーファイル(SWF) から ABC(ActionScript Byte Code) を
抽出し、これを ActionScript2 ソースコードに変換する、コンバータプログラムです。
"3to2(サントゥニー)" は、現在、開発の途中段階にあります。現在は、プログラム変換処理の精度向
上や一部の設計見直しなどをおこなっています。
376 :
375:2013/02/02(土) 21:35:55.85 ID:w5BVhgW2
3から2ってメリット皆無だな
以前viewhelperについて質問させてもらっていた者です。
簡単なお絵かきサンプル作っているのですが、線を描きまくると重くなってしまいます。
ビューヘルパーでmousedownとmousemoveのイベントくっつけて、
mousedown時にmouseupイベントをaddEventして、mouseup時に同イベントをremoveしています。
プロファイル機能使って見てみると、mousedownイベント時にAbstractViewHelperクラスの
累計インスタンス数が増加しているのが確認できました。
が、これがなぜなのか理解できないのです。
ソース貼るのでどなたか教えてくださいませ。
main.mxml
<!-- canvas -->
<s:Group id="canvasStage" x="50" y="50" width="500" height="500">
<comp:Canvas id="canvas" width="100%" height="100%" x="0" y="0"/>
</s:Group>
viewHelper.as
//初期読み込み時に呼ばれるviewhelperコンストラクタ extends AbstractViewHelper
public function EventController():void {
//プレビュー用ペン生成
shapePreview= new Shape();
shapePreview.graphics.lineStyle(5, 0x000000, 0.5);
}
public function canvasOnmouseDownHandler(e:MouseEvent):void {
isDownedOnCanvas = true;
var cvn:Object = document.canvas;
cvs.addChild(shapePreview);
cvs.addEventListener(MouseEvent.MOUSE_UP, mouseUpped);
downPreview(cvs.mouseX, cvs.mouseY);
}
public function canvasOnmouseMoveHandler(e:MouseEvent):void {
if(isDownedOnCanvas) {
var cvn:Object = document.canvas;
movePreview(cvs.mouseX, cvs.mouseY);
}
}
private function mouseUpped(e:MouseEvent):void {
isDownedOnCanvas = false;
var cvn:Object = document.canvas;
cvs.removeEventListener(MouseEvent.MOUSE_UP, mouseUpped);
}
private function downPreview(x:int, y:int):void{
shapePreview.graphics.moveTo(x, y);
}
private function movePreview(x:int, y:int):void{
shapePreview.graphics.lineTo(x, y);
}
>>379, 380
var cvn:Object = document.canvas;
cvs.addChild(shapePreview);
文字数制限回避のため手前で書き直したので変数名おかしくなってますが、キャンバスのことです。
382 :
Now_loading...774KB:2013/02/03(日) 00:57:19.89 ID:p0jrWRYL
>>378です
原因はMethodclosureクラスの増加みたいです。
よくわからんので調べてみます
毎回cvs.addChild(shapePreview);やってるからじゃないかなと思ったが
>>383 そう思い、初回のみaddするよう変えたのですが変化なしでした。
手詰まり感はんぱないっす。。
addchildって2回目以降は無視されるんじゃなかったでしたっけ?
cvs.addChildもそうだけど毎回cvs.addEventListenerやってるのが見た目で変
押しっぱなしだとものすごい数のリスナー登録をし続けてるわけだからな…
ローカルのcvnをメンバに変えてコードをすっきりさせてリトライゴー!
>>385 ベクターgraphicsの描画が重いようなので、mouseMoveしながらビットマップに描画することにしました。
absractViewhelper内でapplication.completeを受け、サブクラスでオーバーライドして初期設定することにしました。
388 :
Now_loading...774KB:2013/02/05(火) 21:19:51.43 ID:xSkcNLKs
wonderflのサンプルでProgression4の練習をしています(FlashCS4とCS5,WinXP)
http://wonderfl.net/c/qoCM を試したところ何故かAIRの NativeMenu が要求され、
実際AIRにすると実行されました(AIRは1.5)。
Progression4は(当然ながら)クラススタイルで、
ttp://progression.jp/ja/download/ より
SWCをライブラリパスとして組み込んでいます。
※ Progression4.swc と Progression4_ext_AIR.swc があったので両方にパスを通しました。
何故AIRの NativeMenu が要求されたのでしょうか?
389 :
Now_loading...774KB:2013/02/07(木) 09:02:02.73 ID:Nv5poo0g
画像を外部ファイルとして読込むを正確な値を参照できないな 理由を知ってる人がいたらご教授よろです
//ライブラリ内から読込み
var mc:MovieClip = new PNG1();//ライブラリ内の画像(png) 青色
bufferMC.addChild( mc );//bufferMCはステージに配置した読込み先のムービークリップ
trace( PNGCheck() );//結果 ff 正常な値
var loader:Loader = new Loader();//外部ファイルから読込み
loader.load( new URLRequest( "blue.png" ) );
bufferMC.addChild( loader );//以下のtraceは数フレーム後に書いてる タイムラグは無し ※直後に実行だとエラー
trace( PNGCheck() );//結果 fd なぜか値が若干ずれる
function PNGCheck():String{//色チェック
var png:BitmapData = new BitmapData( bufferMC.width, bufferMC.height );
png.draw( bufferMC );
return png.getPixel( 0, 0 ).toString(16);//左上のドットの色を参照
}
わー gifにしたらいけた! しかしなぜ他の形式だとダメなのだ…
gif 〇
png 8 値がずれる
png 24 値がずれる
jpg 劣化無しだがワケわからん値
bmp エラー #2000: アクティブなセキュリティコンテキストがありません。#2015: BitmapData が無効です。
contentから参照しても同じですな 青色のffがPNGだとfdとなる…
みんな青色画像( 0000ff )を用意して
>>389のコードを試してもらいたい
変なのはウチの環境(CS5.5)だからなのか Loader周りに画像関係のプロパティでもあるのか
使っている画像ソフトが変なのか(一応カラー設定はAdobe RGB)
pngだとチャンクが邪魔してたりとか?
チャンクってプログレッシブとかそういうのの関係?
ちがった、なんかメタデータみたいなやつか。
お絵かきアプリ作っていて、線描いたらbitmapに変換してるのですが、
bitmapを約20個以降で、追加してきた順(古いdata)から消えていくのですが、
仕様なのでしょうか?
消えるというか、非表示になってるっぽいです。
環境はflashbuilder4.7ですが、flashproffesionalでもなっていました。
回避策などあればご教授いただきたいです。
ブラシ用bitmapをcanvas用bitmapにコピーしていて、canvas用bitmapを描くたびに追加していく感じです。
1枚のbitmapに描いていくと半透明にしても同じ色で塗りつぶされてしまうので、今の実装になりますた。
bitmapdataの合成みたいので調べたのですが、merge()はなんか違うような感じがしてるので困惑中でう。
よろしくお願いします。
>>396desu
半透明ビットマップの合成についてはdrawのカラーマトリックスを使えばできそうなのでやってみます。
これで回避できればbitmapの重ねで古いのが非表示になるのも解決するのでなんとかなりそうです。
IMXMLObjectをimplementしたクラスを作って、initializedで割り当てたobject(view)でキーボードイベントが拾えない
他のアプリケーションに遷移してからctrl-TABで戻ってくると、
一度viewの中のfieldを何かクリックすれば拾えるけど、
逆にそうしないと拾えない
mousemoveを拾って、viewのstageにfocusをあてているんだが、やはり拾えない
なぜでしょうか・・・
えー?
他のアプリに移ったら画面内をクリックしないとフォーカスが戻らないのはFlashの仕様じゃなかったっけ?
インターフェースとか関係無いんじゃないかな 無実装の単純なクラスで試しても無理だろ?
FlashbuilderのListcomponentに画像と文字をasで追加する方法を教えてください。
drawRectしたスプライトを突っ込んでもObjectという文字がでてしまうます
そんなもん拾えたらパスワード盗めるキーロガーできryじゃん。できっこねーだろ。
昔は出来ちゃったけど。
そうなのか
IMXMLObjectをimplementしたのが問題で、Spliteなら出来るのかと思ってた・・・
そもそも、フォーカスが取れないのね
AS1.0の質問です
(1):
変数a,b,cを配列としてまとめて宣言するのに
a = b = c = new Array;
for(i=0;i<10;i++) a[i] = b[i] = c[i] = 0;
とやったらcを弄るとaとbが同じ値になるようになってしまいました
一行ずつa = new Array; b = new Array; … a[i] = 0; b[i] = 0; … とやらないとダメなんでしょうか?
(2):
変数d,e,fにまとめて0を代入したいときにd=0;e=0;f=0;とやらずに
d = e = f = 0;
とやっているんですがこの方法は間違ってますか?
(1)… とやらないとダメなんでしょうか?
そう 手抜きはだめだお
(2)この方法は間違ってますか?
プリミティブ変数ならおk リファレンス変数は参照をコピーしてるだけ
例えばd,e,fがArrayで dの何かの要素を変更したら e,fにも反映されてる
>>404 ありがとうございます
勉強になりました
どなたかbitmapdataに直で正円・楕円をsetPixelする方法知らんかね
drawでいいだろ
sinとcosでやればよくね
>>408 丸shape用意して、くるっと1周回してみたけど円を大きくすると荒くなりますね。
5回転で及第点でした。
丸shapeをcopyPixelして最後に中を塗りつぶすか、
setpixelで1つずつやるか迷っとります。
sin cosに一票
4分の1だけ描いてコピーでいける。
>>410 あなるほど、cloneしてmatrix回転してコピーってことです?
>>411desu
だめぽいですね。おとなしく3回drawしときます。
2回でいいのか
ありがとうございましたー
AS3 CS6のFLASHからAIRを書き出しています。
初歩的な事で申し訳ございませんが・・・
下記では、メニューを別ウィンドウで開き、その中に
メニューのムービークリップを読んでいます。
その場合、ムービークリップから呼び出し元の変数などを
参照するパスはどのようなパスになるのでしょうか。
var menuWindow:NativeWindow;
menuWindow.stage.addChild(menu_obj);
var n="menu_obj内に記述のスクリプトからこの変数を参照するパスは・・・";
/////////////////////
MovieClip(root)でも
MovieClip(parent)でも
MovieClip(parent.parent)
でも読み込めなかったので、分かる方教えて頂けないでしょうか。
AIRスレで質問しちゃったんですが、ASスレあったのでこっちで聞き直しです。
フレーム移動するときって、そのフレームに存在するムービークリップとか全部visible=falseで消してます?
なんか、フレーム移動するときに稀に1009エラーが出るんですよ。
ムービークリップ内で『this.x += 10;』とかしてムービークリップを移動させている処理とかでエラーが出ているみたい。
フレーム移動した先にはそのMCが無いので、移動前にMC内で移動処理をしようとするのと同時?にフレーム移動してそのMCが存在しないフレームに飛ぶから1009エラーがでるのかな?って思ってるのですが。
似たような事が起きたのが、クリックしたときにMCの操作とフレーム移動する関数があって、クリックしたときに同様に1009エラーが生じたことがありました。
これはフレーム移動するときにその関数自体をremoveで消すと起きなくなりました。
普段は特に問題ないのに、ごく稀に1009エラーが起きる・・・原因は自分が考えているようなものなのでしょうか?
>>413 addChildしたのはstageに対してなんで、親を辿る形でアクセスするのは無理だろうな
MovieClipはDynamicなクラスだから、menu_obj.myN = 〜;とかで変数自体なりウィンドウなりを
持たせてあげればいいんじゃね
>>414 >フレーム移動した先にはそのMCが無いので、
そういうAS1的設計はダメなんだお 空白キーフレームでも入っているのかい
>フレーム移動するときにその関数自体をremoveで消すと起きなくなりました。
自分で解ってんじゃん 動的に処理すれば問題なし
>>413 参照の溯り方がわからないってだけかな?
trace( ( this.parent as MovieClip ).name );
trace( ( this.parent.parent as MovieClip ).name );
trace( ( this.parent.parent.parent as MovieClip ).name );
stageからgetChildByNameする手もある
flashbuider・flex4でactionscriptによるcomponent操作がいまいちわかりません。
mxmlを以下のようにして、asで<s:List>を操作したいと思っていて、
<s:Panel>
<s:List />
</s:Panel>
Listの中にbitmapやテキストを一塊にして追加していきたいのですが、
リストをasで拡張させないといけないと思うのですが、突っ込むデータをどのようにすればいいのかわかりませぬ。
<local:tmpList />
きっとこんな感じにしないといけないとはわかってはいるのですが。。
MXMLじゃだめなん?
dataProviderに設定するarrayはASで設定するにしても。
AS1.0の質問です
var deck = [0,1,2,3,4,5,6,7,8,9];
var ransu = new Array;
var max = deck.length;
var i;
trace("シャッフル前:"+deck);
for(i=0;i<max;i++) ransu[i] = Math.floor(Math.random()*max); // 乱数表に乱数を格納
trace("乱数:"+ransu);
for(i=0;i<max;i++){
var r = ransu[i]; // ランダムな番地を取得
var t = deck[r]; // iとランダムな番地の中身を入れ替え
deck[r] = deck[i];
deck[i] = t;
}
trace("シャッフル後:"+deck);
乱数表ransuを元に配列deckの中身をシャッフルするスクリプトを作ってみたんですが
シャッフルした後にransuを元にシャッフルした配列をシャッフル前に戻すにはどうすればいいんでしょうか?
シャッフルのアルゴリズムは変えてもらって構いません
シャッフル前にコピーじゃだめなん?
422 :
420:2013/02/16(土) 19:40:55.83 ID:OXQS3S4z
すみません行数足りなくて書き切れないのではしょりました
実際はMath.random()でなく乱数の種が同じなら必ず同じ乱数を吐くタイプのものを使おうと思っています
乱数の種(たとえばdeckの中身の総和とか)とシャッフル後の配列の2つさえあれば元の配列に戻せるような感じで
>>421が一番良いと思うけど、
またdeck[i]とdeck[ransu[i]]を入れ替えていけば良いんじゃない?おかしくなるかな?
var temp = [];
for (i = 0; i < max; i++) {
temp.push(deck[ransu[i]]);
}
deck = temp;
もうこれでいいや
逆にやってけばいいんじゃないの?
for(i = max - 1; i >= 0; --i)
{
var r = ransu[i];
var t = deck[i];
deck[i] = deck[r];
deck[r] = t;
}
>>419 なんとなくわかってきました。
独自のListコンポーネントをasで作成しアプリケーションmxmlで読み込む、
<local:myList>みたいな?
んで、同as内でnew ClassFactoryでアイテムレンダラーmxmlを読み込む。
viewhelperでmyListを読み込んで(document.myList)して、dataprovderに設定ってできるの?
できるならそれでdataproviderに突っ込んでいけばできそうな気がする
var a = document.myList;
a.dataProvider = {sprite: data, label:text},{...}
可能なのでしょうか?
mxml内のコンポーネントにアクセスしたかったら、コンポーネントにid付けなきゃ
<mx:List id="myList" />
てな感じね
アクセスする時は(親).myList.dataProviderみたいにする
>>428 ありがとうございます。
<local:myList id ="mylist">
document.mylist;
ですね。
やりかたとしては
>>427のような感じで問題ないでしょか?
あ、
mxmlは<mx:List id="myList" /> でよくて、
viewHelper側で
var a = document.myList
a.itemRenderer = new ClassFactory(itemRenderer.mxml);
a.dataPovider = {};
とすればよくて、独自のListコンポネントを作る必要もないのかな.
この場合、dataProviderの {}内のプロパティ名?を、
itemRenderer.mxmlの突っ込みたいcomponentに指定しておけばよい?
dataProviderはIList型のオブジェクトじゃないとダメ
詳しくは"mxml dataProvider"とでもググって調べてね
mxmlはまったくわからん
asだけでできないの
>>430です
テキストについては無事表示できました。
dataproviderにarraycollectionを渡してitemrendererのlabelにてテキストを表示。
試しにSpriteをArrayCollectionに突っ込んでみたらObject Spriteと表示されてしまいました。
まあ当然なのですが
arraycollectionにSprite・bitmapオブジェクトを渡す場合は、ItemRendererの受け方はどのようにすればいいのでしょうか・
>>434 ありがとうございます!
mx.control.ImageのsourceにbitmapImageを使うのですね。
こっちにはパブリックプロパティにsouceがあるのに、
spark.component.Imageには無いのです??
s:Imageの場合はdrawRoundRectで描画できちゃうのかな
fb敷居高杉泣いた、帰ったらやってみあす。
>>434 arrayCollectionにbitmap突っ込んで、itemRenderer.mxmlでsource=データでアクセスしたら表示できました!
ありがとうございました!
プロジェクトで作成したシンボルなんかを共有設定にすると AuthortimeSharedAssets.flaが自動で作成されるよね?
(同じプロジェクト内の)他のFlaで似たようなシンボルを作る為に複製して改造しようとしたら自動セーブで
「共有シンボルを更新」が起こって作成中のシンボルが目の前で古いモノに変わりやがったw
「複製」したものまで何で影響されるんだ おまけにリンケージ名まで古いモノに書き換わってやがる
複製元のシンボルのリンケージ名は「〜〜2」と勝手に2付けられてやがる ムチャクチャだなおいw
何でこんな事が起こるんだ 複製した直後にリンケージ名を変更しなかったからなのか
内部で同じグラフィックシンボルを使ってるからなのか… 共有シンボルに詳しい人がいたら解説きぼん
438 :
Now_loading...774KB:2013/02/19(火) 12:33:08.36 ID:IlJzB8Ax
AS3でCtrlキーを押しながら他のキーの同時押しってどうやって検出します?
ゲームなんかでのカーソルキーの斜め移動2個押しはフラグ管理でいけてるから
フラグでおkなんじゃないか?
440 :
Now_loading...774KB:2013/02/19(火) 13:07:04.85 ID:IlJzB8Ax
Ctrlが押された状態だと他のキーを押してもKeyboardEvent.KEY_DOWNが来ない
Ctrl以外は大丈夫
441 :
Now_loading...774KB:2013/02/19(火) 13:20:59.78 ID:IlJzB8Ax
ブラウザだと大丈夫なのか
イベントオブジェクトにそのまんまctrlKeyプロパティがあるだろうに
443 :
Now_loading...774KB:2013/02/19(火) 21:56:34.68 ID:+a6MiTgW
オブジェクトをステージから隠す場合一番いい方法はオブジェクトを移動するのが一番ですかね?
処理速度的に言うと。
444 :
437:2013/02/19(火) 22:30:38.40 ID:o+oi6txP
>>443 またすぐ使うならそうだね
プロジェクトでの意図しない自動シンボル変更は他の人は起こらないのか CS6では直ってんのかな
複製すると意図しない変更が起こるな 新規で作って中身だけコピペだと起こらない
あの現象に遭遇したら机から引っくり返るよw
FlashCSは色々やばい気がするので毎回別名保存してる
446 :
Now_loading...774KB:2013/02/20(水) 03:11:03.96 ID:Qwz5oZn6
>>444 なるほど。位置移動にしときます。
あとスタートボタンを押したと同時に複数の音声トラックが入ったムービークリップを再生したいんですけどいい方法ないですかね?
しかもこのムービークリップの音量を別のボタンシンボルが入ったmcで調整する形になってるんですが。
今こんな感じに設定してるんですが記述がぐちゃぐちゃになって見づらくてもっとすっきりした方法がないかと思ってるんですが。
import flash.media.SoundMixer;
import flash.media.SoundTransform;
var soundVolume:SoundTransform = new SoundTransform();
var statecheck:Boolean = false;
sound_btn.visible = false;
start_btn.addEventListener(MouseEvent.CLICK,musicstart);
function musicstart(event:Event){
start_btn.visible = false;
sound_btn.visible = true;
var SoundA:MovieClip = new soundA;
sound_btn.addEventListener(MouseEvent.CLICK,mute);
function mute(event:Event){
if (statecheck){
statecheck = false;
soundVolume.volume = 1;
SoundMixer.soundTransform = soundVolume;
}else {
statecheck = true;
soundVolume.volume = 0;
SoundMixer.soundTransform = soundVolume;
}
}
}
447 :
Now_loading...774KB:2013/02/20(水) 03:13:43.64 ID:Qwz5oZn6
こちらの環境いい忘れてました。
使用ソフトはAdobe Flash Pro CS6 でスクリプトはAS3です。
448 :
Now_loading...774KB:2013/02/20(水) 08:49:11.47 ID:UNcwaT8i
ブラウザごとにTextFieldの文字が違うのはどうにかならんのかね?
Chromeだと文字が細くて微妙だ
449 :
Now_loading...774KB:2013/02/20(水) 09:26:58.80 ID:L5Oy556f
ブラウザベンダーに言え
嫌ならフォント埋め込んでクソでかいswf作ってフォントメーカーに訴えられろ
サイズの問題は必要な文字だけ埋め込めばそこまでは増えないだろう
フォントのライセンスは埋め込み利用も可なフリーフォント使うとかかなぁ
そのコードはドキュメントクラス用だお?
フレームに「絵描きまくりでそれを制御したい派」ならインスタンス読込み用にした方が吉
>>452 すみません。私へのレスでしょうか?
用語がわからないので外してたらすみません。
とりあえずhitTestStateに何もセットしてなかったのが
まずかったようでクリックできました。
失礼しました。
ニコニコ動画のように動画の上に文字を流したいのですが
あれはTextFieldを生成して動かしているんでしょうか?
それとも何か直接描画するような方法があるものでしょうか?
455 :
Now_loading...774KB:2013/03/02(土) 14:06:46.22 ID:vxCLXQ6W
As3です
関数に複数の引数を渡して、戻り値を得る場合で困っています。
Cal(X,Y,Z);
function Cal(X:Number,Y:Number,Z:Number):???{
X+=1;
Y+=1;
Z+=1;
return
}
このような場合、戻り値を得るためにはどのようにすればよいのでしょうか?
よろしくお願いいたします
456 :
Now_loading...774KB:2013/03/02(土) 15:23:02.66 ID:aedOaqR/
質問です。AS3,FlashCS4
4グループの数値の組(それぞれN個,M個,K個,L個持つ)があって、
それぞれを総当りで組ませるアルゴリズムはどうなるでしょうか? 例えば
5
N ○○○○●○○
4
M ○○●○○
8
K ○●○○○○○
3
L ○○○○○○●○○○
で黒丸の所を結ぶと(例えば)該当する数字の組が5→4→8→3 = 5483 が得られる。
という感じです。
>>455 var obj:Object = new Object();
obj = {x:X, y:Y, z:Z};// 関数Cal内に書く
trace(obj.x);// 参照
は?
一旦Stringにして substrなんかで任意の位置の数字の文字を取り出しくっつけて
最後にまたintもしくはNumberに型変換すればおk
458 :
456:2013/03/02(土) 18:04:27.06 ID:zf9iekTw
…いや普通に配列でいいだろ
総当たりって普通にfor文しかないだろ
461 :
456:2013/03/03(日) 02:16:23.24 ID:nlhUP363
>>459-460 そうなんですけどねえ。 それだと元々3重のfor文があってその中で更に
for文が4個必要になるので避けたかったです。
なお、元の質問は第三案が浮かんだのでそれで解決しました。
as3です。マウスクリックの操作によってボールが上下に移動するスクリプトを組みたいです
クリック押しっぱなしの時はボールの絵が描かれたMC(ball_mc)が下に少しずつ移動
クリックをはなすとボールが元の位置に少しずつ移動 という挙動を表現したいです
var py:Number;
var click:Boolean = false;
ball_mc.addEventListener(MouseEvent.MOUSE_DOWN,mouseHandler1);
function mouseHandler1(evt:MouseEvent):void
{
click = true;
}
ball_mc.addEventListener(MouseEvent.MOUSE_UP,mouseHandler2);
function mouseHandler2(evt:MouseEvent):void
{
click = false;
}
stage.addEventListener(Event.ENTER_FRAME , function(e:Event):void{
if (click == true)
{
py += 1;
ball_mc.y = py;
}
if (click == false)
{
py -= 1;
ball_mc.y = py;
}
});
自分でここまで作ってみましたが、「少しずつ」という挙動が上手くいきません。あと、できれば減速しながら移動させたいです
クリックしっぱなしでも、一定の距離を移動したらゆっくり停止。クリックをはなしたら元の位置に減速しながら移動し、ゆっくり停止
というのが理想なのですが、どう記述すればいいでしょうか
>>462 速度パラメーターを設定したら良いんじゃね?
var ySpeed:Number = 0.5;// 速度初期値
var click:Boolean = false;
var frameC:uint;// フレームカウント用
ball_mc.addEventListener(MouseEvent.MOUSE_DOWN,mouseHandler1);
function mouseHandler1(evt:MouseEvent):void {
frameC= 0;// 一旦0に戻す
click = true;
}
ball_mc.addEventListener(MouseEvent.MOUSE_UP,mouseHandler2);
function mouseHandler2(evt:MouseEvent):void {
frameC= 0;// 一旦0に戻す
click = false;
}
stage.addEventListener(Event.ENTER_FRAME ,
function(e:Event):void{
frameC++
if (click == true){
ball_mc.y +=ySpeed/frameC;// フレームが進む毎に減速
}
if (click == false) {
ball_mc.y -=ySpeed/frameC;// フレームが進む毎に減速
}
}
);
因みに減速はイージングとかトゥイーン(Tween)と呼ばれている。
目的地が決まっていたらそこまでの距離を変数にして速度を調整するのも可能。
>>463 ありがとうございます。一旦0に戻すという処理が目からウロコでした
なるほど、イージングやトゥイーンと呼ぶのですね。検索でも苦戦していたので助かります
なんとか思い通りのができたので助かりました。ありがとうございました
AS1.0の質問です
if(hoge>=0){
trace("整数だよ");
}else{
trace("整数じゃないよ");
}
これだと変数の中身が文字列のときも「整数だよ」になってしまうんですが
変数の中身が文字列かどうかを判定することってできますか?
>>465 AS1で出来るかわからんが、
つ 文字コード判定
>>465 typeof演算子って、AS1.0で使えなかったっけ?
使えれば、戻り値が"number"かどうかで確認できる
ところでその式だと、小数点以下があっても整数と評価されそうだけど、
大丈夫なの?
>>467 できました!ありがとうございます
小数点以下は盲点でした。
分岐前にMath.floor()させるようにします
Air for AndroidでActionScript Workersは使えますか?
471 :
Now_loading...774KB:2013/03/05(火) 13:50:02.32 ID:Z/KHYPOy
対応してるSDK使う気なら使えるよ
モバイルではまだ使えない
というかAIRではまだ使えない
Flashってflvとかは読み込めますが、そんな感じでPDFが読み込めたりは
しませんか?
475 :
Now_loading...774KB:2013/03/08(金) 10:52:46.71 ID:PagT444w
これからもAndroidやiOSでflash/actionscriptを実行できるようにするにはどうすれば良いですか?
作る側の話?
AndroidはFlashPlayerあんだろ
いままでブラウザで動いてたflashをnexus7やipadでも動かせるといいなと思って
プログラマ側でなにかできることは無いかと思った
>>477 モバイル機器でのPlayerのスタンドアローン動作(ブラウザから独立し、無関係に動く)
は不可なのでAIRにするしかないと思う。
479 :
Now_loading...774KB:2013/03/11(月) 20:33:42.65 ID:QGwks7Kw
CS5、winです。
画像をバイナリ化したデータhoge.binをembedし、画像にして表示しているのですが、
ローカル環境では画像が表示されますが、ブラウザ上では何も再生されず、
右クリックで「ムービーが未ロードです。」と表示されます。
解決策を教えてください。なかなか情報がなく困っています。
宜しくお願いします。
ソースは以下、
1フレーム目に記述。
〜前略〜
[Embed(source = 'hoge.bin',mimeType = "application/octet-stream")]
var Data:Class;
var bytes:ByteArray = new Data();
var l:Loader = new Loader();
l.loadBytes (bytes);
l.contentLoaderInfo.addEventListener (Event.COMPLETE,
function(event:Event):void {
addChild(l);
}
単にswfのembedに失敗してるんじゃなくて?
481 :
Now_loading...774KB:2013/03/12(火) 00:16:48.51 ID:o15q4Pr6
>>480 swfをブラウザにドラッグ&ドロップしているので関係ないかと思います。
ちなみに、以下の場合はちゃんと動きます。
バイナリあたりがダメなんでしょうかね。。。
[Embed(source = "test.txt", mimeType = "application/octet-stream")]
var TextClass:Class;
var text:String = new TextClass();
test.text=text
LoaderじゃなくてURLLoaderじゃねーのそこは
>>482 外部から読み込まず、swfにすべて入れておきたいのです.
さっきURLLoaderを試してみましたが、
URLLoaderは外部ファイルのurlを指定しないといけないのではないでしょうか。
>>483 Yes というかサンプルやリファレンス見たの?
485 :
Now_loading...774KB:2013/03/12(火) 11:36:02.33 ID:f9CcnTg8
初歩的な質問ですいません
function addNumber(num1:int, num2:int):int {
var answer:int = num1 + num2;
return answer;
}
の場合、戻り値の関数answerを関数外で使う場合は
どのようにつかうんでしょうか?
>>485 よく分からんが、 var hoge:int = addNumber(a, b); じゃいかんの?
あるいは、外で var hoge:int; として関数内で hoge = answer;
>>483 バイナリ化っていうのがどういう処理なのか分からんけど
そのバイナリから画像データに戻すとこは自前でやる必要があるんじゃねーのかな
その後でloadBytesするべきなんじゃないの
>>484
webサイトを調べていたら画像をバイナリ化し、phpで表示するとかいうサイトはありました。
他にもbinファイルをembedして何かするというサンプルはありましたが、
質問内容そのままの例はないです。
別のところで質問します。ありがとうございました。
489 :
Now_loading...774KB:2013/03/12(火) 23:06:40.47 ID:V57O/l02
そのまんまで動くけどなあ。
メッセージ見ると、埋め込みデータの読み込み以前の、swf読み込みが変なんじゃないの。
mimeType指定したわけじゃないけど、
cs5でつくったswfをFlashBuilderで同様にembedしたものは、ふつうにうごくね。
491 :
Now_loading...774KB:2013/03/14(木) 14:16:35.96 ID:Q3X4vd8E
CS5.5。As3です。
タイマーイベントを作ったのですが
var fadeOutTimerObj:Timer= new Timer(10000,1);
dialogInit();
function dialogInit():void{
fadeOutTimerObj.start();
}
fadeOutTimerObj.addEventListener(TimerEvent.TIMER_COMPLETE,dofadeOut);
function dofadeOut(event:TimerEvent):void{
parent.removeChild(this);
}
デバックすると、
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at NaviDialogMc2/dofadeOut()[NaviDialogMc2::frame1:32]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.utils::Timer/tick()
と出てきます。タイマーイベントが生きているせいかと思うのですが
誰かお解りになる方はいらっしゃいますか?
>parent.removeChild(this);
これがおかしいんだろ? そのコードどこに書いたのかわかんないけど
親の階層でaddChildしたのかい してないならエラー出るお
493 :
471:2013/03/15(金) 22:00:28.96 ID:8DDaBlmM
検証したら、Air for Androidだとworkerを作ってもnullが返るっぽいね。
デスクトップAIRやブラウザだと普通にworkerが得られるので、モバイルだけ使えないみたいだ。
まぁ、11.2以下の環境でも作動するように、代替クラスとtry{}catch(){}忘れなければ問題なし。
workerの生成部分をラップしてクラス化しておくと、よりスマートだな・・・。
リファレンスに書いてあるじゃん
AS1.0というか算数の質問なんですが
剰余の結果ってマイナスになったり小数点がついたりすることはありますか?
496 :
Now_loading...774KB:2013/03/16(土) 19:32:12.46 ID:SvT9Xpom
>>491 parent.removeChild(this)という記載のあるfunction dofadeOutが
このクラスのメソッドではなく、他のfunctionの内部に書かれている場合は
this が このクラスのインスタンスを指さなくてエラーが出る
・・・・ような気がする。
499 :
Now_loading...774KB:2013/03/20(水) 03:05:22.04 ID:pWLADXyH
基本的な質問スレが落ちてる
誰か立てて
500 :
Now_loading...774KB:2013/03/20(水) 08:21:39.52 ID:KDCBErvx
BitmapってSpriteにaddChildeした後にnullにしてるんだけどメモリ節約になってるかな?
ちゃんと表示されるんだけどバグの原因になったりする?
なんの意味もないな
表示リストが保持してるんだからButmapはGC対象でもないし
もしかしたらvar bitmapとして確保されてた変数一個のメモリ(32bit)は開放されるのかもしれん
まあ無意味
次のようにした時、★の部分は問題ないでしょうか。
環境 CS5.5 AS3 Win7
(1) ドキュメントクラスで、ステージにインスタンス page1 を配置
Main.as :
page1 = new Page1
stage.addChild(page1)
page1 = null ★
(2) ステージ上に表示されたインスタンスpage1において改ページボタンを押すとpage2を表示しpage1は消去
Page1.as :
page2 = new Page2
stage.addChild(page2)
parent.removeChild(this)
page2 = null ★
(3) 以下同様
Page2.as
page3 = new Page3
stage.addChild(page3)
parent.removeChild(this)
page3 = null ★
(実際は各ページから複数のページへ飛べる選択肢を用意)
----
★のコードを実行してもaddChildした次のページは(望み通り)消去されずに表示されていますが、
GCされて消去される心配はなぜ無いのでしょうか。
また、★のように =null としていかないと変数1個分とはいえメモリリークするのでしょうか。
その場合 = null は参照を切るって事だから表示されたままだお
参照用の変数がGCされるってだけ
メモリリークは扱ってるデータによる
大容量の画像や音楽ファイルへの参照ならnullしないと心配
pageをaddChildというのは表示リストがpageの参照を保持するからaddChildされたものが勝手に消えることはない
removeChildしたら親からのpageへの参照が消える
この時他のオブジェクトがpageへの参照を持っていなかったらpageがGC対象になるってだけ(GCのタイミングは基本はこちらから明示できない)
★のコードを実行することは★が書いてあるクラスからの参照を切ってるだけ
506 :
Now_loading...774KB:2013/03/22(金) 04:52:15.85 ID:Q5y+6nmh
var sprite:Sprite = new Sprite();
sprite = new Sprite();
ってやると最初に作ったspriteはGCの対照になる?
507 :
Now_loading...774KB:2013/03/22(金) 04:55:22.68 ID:Q5y+6nmh
まてよ
var parent_sprite:Sprite = new Sprite();
var sprite:Sprite = new Sprite();
parent_sprite.addChild(sprite);
sprite = new Sprite();
これで最初に作ったspriteはGCの対照になる?
>>503-504 返信thanks
>>502のコードの場合、インスタンス page2 は
・ Page1.as内で、page1を指す変数にnullを代入している
・ Page2.as内で、page2自身がparent.removeChild(this)で画面上から消去している
この2つを行っているから、(3)が実行されステージにpage3が置かれた段階では
page2はメモリ上から跡形も無くなっている(メモリリークしない)ですね。
>page3が置かれた段階ではpage2はメモリ上から跡形も無くなっている
GCのタイミングはわからないんだお ちょっとづつメモリが増えていく感じなら20〜30秒に1回くらいかな
510 :
Now_loading...774KB:2013/03/22(金) 16:33:29.55 ID:xN9cfE3X
需要がほぼ無くなったからねぇ。
ちょっと画面遷移のフレームワークとは違うけど
いまからならStarling(Feathers)やったほうが良いだろうし。
Flex自体でやってもいいし。
>>511 うーむ、そうなのか・・・ でもProgression4ってデビューしてから3年くらいなのに。
せめて開発環境(mxpファイルやら)とドキュメントはどっかからDLできるようにして欲しいと思う。
progressionは死んだのですか?
あまり使っていなかったのですが、
なくなると寂しい気がします。
作者さんどうしてるんだろう...
(横レスだがメモリについて)
ガーベージコレクション・GCでこんなの見つけた。
池田 泰延 ?@clockmaker
@whirlpower AIRならSystem.gc()で任意に呼び出せます。FPでは任意に呼び出せませんが、
FP11以上ならGCの頻度の調整ができます。
515 :
Now_loading...774KB:2013/03/26(火) 17:09:21.82 ID:XZTx+S3u
Spriteの.alphaって重い?
60fpsでリアルタイムで1枚Spriteの透明度を変えるだけでCPU60%とか行くんだけどこんなもん?
517 :
Now_loading...774KB:2013/03/26(火) 18:23:59.79 ID:XZTx+S3u
init()で作ってaddchildしたSpriteをEnterFrameで.alpha+=0.002してるだけだけど
>>517 う〜ん何でだろう。 その程度なら携帯のLite2でも問題なく動くはずなのに。
(参考)
import flash.system.System;
trace(System.totalMemory); でチェック
つーか、環境を書きなはれ。
異常は感じられないなあ
試行錯誤してみるか・・・
520 :
Now_loading...774KB:2013/03/26(火) 20:09:25.28 ID:XZTx+S3u
stage.quality = StageQuality.BEST;
これだったわ
stage.quality = StageQuality.HIGH;
に設定したら途端にCPU1%になった
>>520 デフォルトはHIGH; でしょ。 いじった?
小さいプログラムだし画質あげようと思ってやったけどそれかなり重いのな
FlashDevelop Flex4.6 AIR3.5 FlashPlayer10.1
windowsXP
core2duo 2GHz
メモリ2G
>>524 あんがと。
体調が良ければ色々と検証できるのだけど、今はここでのレスが精一杯。
526 :
Now_loading...774KB:2013/03/30(土) 16:24:43.05 ID:X8IPbbja
CS4,WinXP
Threadライブラリ(そうめん)のSerialExecutorでの再実行(シリアル動作でのスレッドの再実行)
について質問です。
serial = new SerialExecutor(); として
serial.addThread(個別のスレッド); を10回したとして(計10個のスレッドが存在)
特定のスレッド実行は serial.getThreadAt(番号).start() で実行できます。
例えば
serial.getThreadAt(0).start();
serial.getThreadAt(2).start();
serial.getThreadAt(5).start();
ここで一旦実行したスレッドを再実行するにはどうしたら良いでしょうか?
serial.getThreadAt(0).start();
serial.getThreadAt(2).start();
serial.getThreadAt(5).start();
serial.getThreadAt(2).start();// **** 番号2を再度
しかしこれだと
Error: Thread is already running.
at org.libspark.thread::Thread/start()
と出ます。 ※各スレッドには実行関数 next() がありますが、この次の関数は無いので2の実行後
スレッドは終了されている筈ですが・・・
試しに
serial.getThreadAt(2).start();
serial.getThreadAt(2).join(); としてもダメでした。
よろしく願います。
528 :
Now_loading...774KB:2013/03/31(日) 10:09:35.52 ID:VcVkAWSM
アクションスクリプトでアンドロイドのアプリを作っています。
インスタンスにパラメータをもたせて、
アクションスクリプトで参照したいのですが、方法はありますでしょうか。
クラスを作ればええやんという回答はなしでお願いします。
手間がかかるので。
プロパティで速度設定して、
スクリプト内で ball.x += ball.param1;
のような記述をしたいのです。
ball mc内の1フレーム目に
if( param1==null ){
var param1:int = 5;
}
とかなんとかで って事かな
クラス作る手間を惜しむ奴がAndroidアプリなんかつくんなよ…
MovieClip ダイナミッククラス
でくぐれ
531 :
Now_loading...774KB:2013/03/31(日) 21:40:31.45 ID:VcVkAWSM
>>530 デザイナーが視覚的に設定できた方がいいと思ってね。
回転する方向を+1とか0.5とかインスタンスごとに設定できたら楽じゃん。
とりあえず、テーブルで対応しますた。
アンドロイドアプリの開発簡単すぎるわw
これで月給30万とかメシウマwww
532 :
Now_loading...774KB:2013/04/01(月) 02:24:33.11 ID:2O6Y8TZM
スプライトってnewしてaddChild()したあとにremoveChild()したらGCに入る?
誰も参照してなきゃGC対象になる
format = new TextFormat(); format.font = "Arial Black";
var tf=text;
//tf.embedFonts = true;
tf.setNewTextFormat(format);
tf.text="0123456789";
suzukaで上のように書いてembedFonts=true;にすると表示が消えてしまいます
識別子"myfont"でこのシンボルを書き出す/最初のフレームへにチェックを入れて
format.font="myfont";にしても無理でした
どうすれば埋めこめるんでしょうか
そもそもAS以前にsuzukaってフォントの埋め込みできんの?
ってsuzukaかよ…メタデータ処理できんのかな
538 :
Now_loading...774KB:2013/04/02(火) 13:31:19.58 ID:WLEIhJpL
スプライトとかのグラフィックで
beginFill();
drawCircle();
などの逆に一部分だけを消し潰したりする方法はありますか?
>>538 ■■■■
■□■■
■■□■
■■■■
みたいな感じか?(上は格子状だが) Maskを使うという手もある。
それ以前に環境を書いてね。
>>534 suzukaはしらんけどparaflaでフォント埋め込みにつまづいたのはこんなとこだった
・ダイナミックテキストをタイムラインのどっかに配置する必要がある
・配置したテキストには表示されうる文字(この場合は0-9)をあらかじめ入力しておく必要がある
・太字や斜体だとフォントの名前が変わる
541 :
Now_loading...774KB:2013/04/03(水) 12:34:09.53 ID:35Hp9Rqx
CS6でアクションスクリプト編集してて、
変なところを押したのか知らんけど、
スペースを打つと「・」と表示されるようになった。
みにくいので元に戻したいのだが。
フォント変えちゃったとか?
543 :
Now_loading...774KB:2013/04/03(水) 13:12:16.40 ID:35Hp9Rqx
早めのレスありがとう。マジでびびったわ。
隠し文字でした。
Ctrl+Shift+8 で消えた。
544 :
Now_loading...774KB:2013/04/03(水) 21:39:52.65 ID:35Hp9Rqx
フレームごとにアクションスクリプトを記述しているのですが、
コンフリクト(名前の競合)を起こしてしまいます。
そのフレームだけで使用したい静的な変数を宣言するにはどうすればよいですか?
前のフレームの処理が残っているのでしょうか・・・。
>>544 配列を使うのは? hennsu[currentFrame-1] で参照。
>>544 なんか勘違いしているようだが、フレームがスコープ範囲の変数なんて無い。
>前のフレームの処理が残っているのでしょうか・・・。
処理じゃなく、宣言が残ってるって言う感じかな。
宣言したフレーム以降で参照可能になり、逆は参照出来ない。
例えば、10フレーム目に宣言した変数は5フレーム目では参照出来ないだけ。
で、そのフレームでしか使わない変数を宣言したいのであれば、
そこだけ関数にして、その中で使う変数を宣言してあげればよい。
ただ、その関数宣言も残るので関数名の工夫が要ることになる。
とはいえ変数よりは使いやすかろう。
547 :
Now_loading...774KB:2013/04/04(木) 22:27:48.13 ID:Jxrjj6Qv
>>546 詳しい説明ありがとうございます。
フレームごとにクラス(ASファイル)をひとつずつ用意する方法で解決しました。
actionscriptでは、ローカル変数で静的な宣言ってできないですよね?
(C言語の関数内でstatic宣言できる)
そろそろなんの言語か書いたら?
開発環境 FlashCS5.5 + FlashDevelop 4.2.4 RTM
開発言語 AS2.0
Flash側でリンケージ用MC作成、FlashDevelopでクラス作成って感じでやってるのだけど、
外部AS2クラスファイルに2バイト文字が入るとコンパイルエラーするのは仕様?
ex)
//コメントで書いてもアウト
var msg:String = "文字列に含まれててもアウト";
↑こんな感じ。Flash側でやる分には問題がない。
上記の記述例な感じで2バイト文字がクラスファイルに入っていると
「シーン=シーン 1、レイヤー=func、フレーム=1 、行 3 クラスまたはインターフェイス 'src.Main' をロードできませんでした。」
と出てうまくいかず。
ASファイルはUTF8、Flash側の外部クラスファイルの形式もUTF8。
アドバイスいただけるとありがたし
550 :
Now_loading...774KB:2013/04/05(金) 10:41:15.42 ID:RoRObccF
各フレームごとに1つのゲームを置いてるんですが、
一度目は正常に動いて2度目以降に、フレームを移動すると、
処理が重複されて実行されてしまいます。
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
import JumpDeFume;
var flag:Boolean = false;
if (flag == false)
{
var jumpgame:JumpDeFume = new JumpDeFume();
jumpgame.Init(this,player,enemy,ground);
flag = true;
}
フレームでこのように記述しても、
Initが何度も実行されています。
FLASH CS6です。
これは仕様でしょうか。
var flag:Boolean = false;が毎回実行されるからじゃないの?
仕様。Flashの仕組みをわかってない。
Flashのムービークリップは、一つのタイムラインがひとつのインスタンスという括りだから、
どのフレームだろうが同じ名前の変数や関数宣言したとしたら、それは同一名のプロパティやメソッドを定義したとみなされてコンフリクトする。
つまりはエラーになる。
ゲームを各フレームに置くみたいな仕組みにするとして、個々を独立したコードで管理したいなら、
フレーム上にムービークリップを作って(別のタイムラインを持つものを作って≒別インスタンスを作って)、
その中にコード書かないと駄目。
つーか他言語経験者みたいだから、タイムライン使わないでloaderで読み込むとかの仕組みの方がわかりやすいんじゃない?
正直、AS的にみると質問の内容がアホすぎる。
553 :
Now_loading...774KB:2013/04/05(金) 15:19:43.64 ID:RoRObccF
一応VC(DirectX)とVBの経験があります。
>>551 それでした。
Initの中でaddEventListener(Event.ENTER_FRAME, Main);
を呼んでて、このフレームを移動した回数分だけ同じ処理が実行されます。
(初回だけは正常に動く)
>>552 何分FLASHをはじめて1週間の℃素人なもので・・・
昨日クラスの使い方を覚えました。
スマホ向けに作っているので、apkに集約できないやり方はできないのです。
>>553 >>552の言い方は多少酷いが、それでも
>スマホ向けに作っているので、apkに集約できないやり方はできないのです。
はないわ。apk関係ないし。
>つーか他言語経験者みたいだから、タイムライン使わないでloaderで読み込むとかの仕組みの方がわかりやすいんじゃない?
ここでの一番大事なところは
「タイムライン使わないで」
ってところだろ。
画面遷移の手段としてタイムラインつかってるのなら、簡単にいけると思うんだがなぁ。
555 :
Now_loading...774KB:2013/04/05(金) 15:43:48.84 ID:RoRObccF
原因が分かりました。
みなさん笑わないでください。
removeEventListenerをしていないせいでした。
addEventListenerを繰り返した結果、
同じ処理がどんどん積み重なっていくということでした。
ACではデストラクタがないんですね。
どういう仕様だよ。
そもそもタイムラインを使うから、面倒なことになる…という
みんなの懸念が、伝わっているんだろうか
なにか根本的なところで誤解があるような気もする
>>555 同一インスタンスにaddEventListenerで同じ関数は重複登録されない
自分の糞設計を言語仕様のせいにする前に勉強して来いよ低脳
話聞かない新卒か。答えて損した。
559 :
Now_loading...774KB:2013/04/05(金) 16:46:01.07 ID:RoRObccF
>>558 趣味でアプリを作っている小売店勤務の人間です。
昔プログラムをかじっていたことがあります。
>>556 タイムラインより便利なものがあると?
かなりシンプルにかけましたよ
// 針へ糸通すゲーム
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
import JumpDeFume;
var jumpgame:JumpDeFume = new JumpDeFume();
jumpgame.Init(this,player,enemy,ground,debug);
いろいろと駄目だな。
もう少し調べろよ。
561 :
Now_loading...774KB:2013/04/05(金) 19:06:09.35 ID:RoRObccF
プログラムは簡単だが、
仕様が分かりずらい。
やれる人が少ないわけだ。
プロでもおいそれと遊びでやれる領域じゃない。
562 :
Now_loading...774KB:2013/04/05(金) 20:40:13.08 ID:RoRObccF
これでいけました
クマをサポートするゲーム
import SupportKuma;
var support:SupportKuma = new SupportKuma();
support.Init(this);
タイムラインの記述なら小学生でもできそうだ。
などと供述しており(ry
続きは日記帳にかくといいよ
>>555 >addEventListenerを繰り返した結果、
>同じ処理がどんどん積み重なっていくということでした。
んなわけねーだろ
適当に推測して解決した気になってんじゃねーよ
>>557の言うとおり同じインスタンスに何回addしても一回分と同じだよ
フレームに配置したインスタンスへの参照が残ってるんじゃないかな
一回何も無いフレームへ飛ばし戻す事で完全に参照を切れる
566 :
Now_loading...774KB:2013/04/08(月) 17:40:57.16 ID:xMeKziPK
newしたオブジェクトをaddchildして
removeしなきゃ他のフレームに行っても残るよ。
試してみ。
567 :
Now_loading...774KB:2013/04/10(水) 00:08:13.97 ID:IisAkdt9
568 :
Now_loading...774KB:2013/04/11(木) 20:45:09.90 ID:GM3bLpHg
相談にのってくれ。
アクションスクリプトで起伏のある地形の上にキャラクタを歩かせたいのだが、
ぷるぷるする。
補正の仕方が悪いのだろう。
例えば、地形と線分の交点が分かれば代入できる。
mc.hitTestObject(x,y,true)で当たったかは分かるが、どの座標に補正すればいいのか分からない。
trueのときy--したらぷるぷるするのは何となく分かるだろ。
y-=0.01 をあてっている間、whileしたら処理が重くなることも分かるだろ。
どうすればいい???
569 :
Now_loading...774KB:2013/04/11(木) 20:47:54.26 ID:GM3bLpHg
具体的なプログラムです。
for (var i = 0; i < 10; i++)
{
if (ground.hitTestPoint(kuma.x,kuma.y,true))
{
kuma.y -= 0.1;
}
}
kumaがぷるぷるするのです。
>>569 forループ終了するまでは、描画更新されないはずだから
ぷるぷるするとしたら、ループ外の場所に原因あるんじゃね?
座標に小数はいってるとたまにぷるぷるしたような気がする
572 :
Now_loading...774KB:2013/04/12(金) 19:48:19.55 ID:FstnUrpE
話が通じる人間が居て助かった。
>>570 ぷるぷるする理由はわかっているんですよ。
例えば、線を縦に引いて、オブジェクトとの交点が得られればその座標を代入できますよね。
3D地形はこういうやりかたで実装しました。
代入であればぷるぷるはしないんです。
補正の仕方に問題があると思ってます。
同じ当たり判定を何回もチェックするのは、処理的にもダメダメです。
>>571 坂道で横に移動すると、小数は絶対に入る。
厳密に言うと、0.1以下の数値が入っているとぷるぷるする。
当たった箇所の座標を得たいのだが、いい方法はないものか。
ちょっと考えてみるわ。
この話の通じ無さは、ID: RoRObccFの再来か…
574 :
Now_loading...774KB:2013/04/12(金) 21:21:13.71 ID:91mOPbXW
タッチイベントで
Multitouch.inputMode = MultitouchInputMode.NONE;
に設定すると画面タッチでMouseEvent.MOUSE_DOWNのイベントが来る?
座標を記録しておく変数を少数を含ませない変わりに単位を10倍とか100倍にして
本当の座標に代入するときに_x = Math.floor(zahyou/10);とかにしたら
マジでなに言ってるかわかんねえ
>>572 ぷるぷるする理由分かってるって言っといて書いてないんだけど、結局小数点だからプルプルに見えるってことでいいの?
ピクセル吸着か浮動小数点の誤差の話じゃない?
当たり判定があるときに地面の頂点に移動させる→ピクセル吸着か何らかのバグで1ドット下に戻される→次のフレームで当たり判定がヒットして1ドット上に移動する(以下無限ループ)
こんな感じでぷるぷるしてるんじゃないかな
こういうの怖いから座標関係は毎回切り捨てて整数にしてるわ
578 :
Now_loading...774KB:2013/04/13(土) 13:25:02.21 ID:prEC4huv
>>575 固定小数点数ってやつか。
>>576 hitTestPointでY座標をマイナスするときの数値が
最小の単位じゃなければならないってことだよ。
0.01以下の数値が入った場合、-0.1だと余分に補正するでしょ。
かといって、0.01でループ組んだら処理がえらいことになる。
>>577 むりやり整数で処理するのがよさげですね。
ちょっとやってみます。
579 :
Now_loading...774KB:2013/04/13(土) 15:10:10.69 ID:prEC4huv
Math.floorに答えがありました。
少数を切り捨てて表示すればOKでした。
:F1JJp3E+を神認定します。
580 :
Now_loading...774KB:2013/04/13(土) 15:32:52.51 ID:prEC4huv
どうでもいいけどFLASH AIR で発表したオレのアプリが、
オレしかダウンロードしていない件。
数が多すぎて埋もれてしまうみたい。
PCの同人ソフトなら雑誌が取り上げてくれたのだけど、
アンドロイド市場ではそれも厳しいわ。
説明にマリオとかゼルダみたいなゲームとか書けばいいのだろうか。
どんないいアプリあろうが、誰も知らなきゃ落としようがないからな
582 :
Now_loading...774KB:2013/04/13(土) 16:43:53.91 ID:prEC4huv
恥ずかしいからここでは書かないけどな。
画面のボタンを押すとムービークリップが再生するスクリプトを書いたのだが、
連打すると画面が止まっているのは気のせい?
メインのenterframeでキャラクタのムービークリップをkuma.gotoplay(1)した瞬間に止まる。
アクションゲームでこれはまずい。
60fpsなら分からない程度だが。
この意味のわからん断定はこないだのやつか……
説明下手なの分かってんだから簡略化したサンプルswfでもあげればいいのに
584 :
Now_loading...774KB:2013/04/13(土) 20:01:53.79 ID:prEC4huv
>>583 要するにだ。
ムービークリップをgotoplayで再生した一瞬だけ、
ゲームプレイが止まる気がするのだよ。
一フレームだから、動いていれば気にするほどでもない。
>>580 アプリ紹介サイトにでも売り込んで来い。
良い物なら宣伝してくれるだろうよ。
586 :
Now_loading...774KB:2013/04/14(日) 18:36:39.25 ID:Aqg0MiVk
>>585 検索したら出てきたアンドロイダーね。
参考にさせてもらうわ。
一瞬止まるのは、インバースキネマティクスを使った多関節アニメーションだから、
処理が重かったのかもしれない。
iphoneアプリ. Windowsアプリを売って生き残れ Ver 1.7 リンク数61
Http://qr. net/kh4y
588 :
Now_loading...774KB:2013/04/14(日) 20:25:04.28 ID:Aqg0MiVk
FLASH AIRでアンドロイド向けにパブリッシュして、
Google Playで配信って流れは理解できたけど、
iPhone向けが分からん。
配信するために、
マックを用意しなきゃいけないのは分かった。
パブリッシュはwinodowsでAPKファイルだけマックへ持っていけばいいの?
マック用のFLASHが必要なの?
winodwsにiphone向けのパブリッシュあるよね。
おしえてんご
iPhoneはapkでなくipaファイル
パブリッシュはwinでFlash proで可能
実機確認はios devセンターに登録(年9000円ほど)が必要
app storeへのアップロードにもしかしたらMac必須だったかも
590 :
Now_loading...774KB:2013/04/15(月) 16:11:25.33 ID:1l8FOBMr
ノートPCが古いから買い替えにmacを考えたけど、
ウイルスソフトやら、mac用に揃えると本体代だけじゃ済まないよな。
今はアンドロイド優勢だし、
ソフトをアップするだけで毎年更新料かかるのはネックだ。
スルーすることにするわ。
>今はアンドロイド優勢だし、
それがノートのOS選択に関係あるん?
>ソフトをアップするだけで毎年更新料かかるのはネックだ。
これWindowsもおなじやん。
592 :
Now_loading...774KB:2013/04/15(月) 20:33:06.44 ID:1l8FOBMr
>>591 ウイルスソフトのことだよ。
windowsのは3台まで使えるから。
FLASH CSもwindowsなら2つに入れられるでしょ。
macならFLASHも買いなおしになる。
そういうことを言ってる。
ただ、ネット用途として使うならありかもしれん。
おすすめあったら教えて。
あと、フラッシュのサンプル置いてるサイトないかな。
絵を描くのが面倒になってきたわ。
プログラムが組みたいのに絵で時間を取られる。
creative cloudならwin/macどっちなもいれられるよ
フラッシュのサンプルと絵を描くのが面倒ってのが結びつかないんですが
594 :
Now_loading...774KB:2013/04/15(月) 21:45:38.74 ID:1l8FOBMr
>>593 win版 CS6 proを8万で買ったばかり。
IKのサンプルの人をちょっと加工してキャラクタとして使ってる。
顔だけ付け替えれば別キャラになる。
これはおもしろいものになりそうだ。
スクロールペインに入れたテキストフィールドだけ文字ちっちゃくなってワロタ
普通にstageに配置したテキストフィールドと
スクロールペインにいれたテキストフィールドだと16ptと24ptが同じ大きさでワロタ
同じように定義してプロパティやテキストフォーマットも同じなのにワロタ
596 :
Now_loading...774KB:2013/04/16(火) 15:37:05.59 ID:yTVsPf2J
スマコン対応のアンドロイドアプリが増えているようですが、
FLASH AIRでスマコンに対応することは可能でしょうか?
ウォークマンZをテレビに繋げば
OUYAいらん。
スマコンってなんなん?
スマホをリモコンにするやつ?
598 :
Now_loading...774KB:2013/04/16(火) 21:12:37.43 ID:yTVsPf2J
ブルトゥース対応のコントローラだよ。
wiiリモコンも使えるんやね。
テレビ出力つければwiiUいらんやんw
そういう単語をみんな知ってる前提で使うのはどうなんだ。
さらにいえば全くこのスレに関係ねーし。
600 :
Now_loading...774KB:2013/04/17(水) 16:42:20.01 ID:6cTayblO
>>599 関係あるよ。
FLASH CS6のFLASH AIRでゲームアプリを作ってる。
で、画面タッチだと操作しにくいからゲームコントローラを使いたいわけ。
方法はあるの?ないの?どっちよ!!!
じゃぁ回答しよう
最悪、方法はある。
ネイティブエクステンションで対応すればいいからな。
全角使うなや
FLASH AIRってなんだよ
もうー
うーん・・・FLASH CS6とFLASH AIRでFLASHがダブってしまった
604 :
Now_loading...774KB:2013/04/20(土) 19:05:23.03 ID:tPzzz5+F
次のバージョンではゲームパッドに対応してくれると信じているが・・・
Windowsストアアプリはまだ開発環境弱いからはよAIRも対応して欲しいな
>>604 11.7にAndroidのGamepadAPI対応が含まれているぞ
607 :
Now_loading...774KB:2013/04/21(日) 17:19:34.15 ID:c5v7E0/H
2013 年 4 月 9 日ってタイムリーやな。
使い方は?
609 :
Now_loading...774KB:2013/04/22(月) 08:53:24.92 ID:pviRHRjF
>>608 同時にOUYAにも対応してるみたいだな。
同じ命令でいけるってことか。
アンドロイドとOUYAのマルチも可能ということですな。
まぁOUYAってAndroidだし不思議なことじゃないな
611 :
Now_loading...774KB:2013/04/22(月) 21:11:02.52 ID:pviRHRjF
OUYA用にパブリッシュできるようになるんだろうか。
FLASHの次のバージョン(CS7)で搭載してきそうだな。
スマフォ用のアプリと
完全に同じコードでパブリッシュできるならありがたいが。
612 :
Now_loading...774KB:2013/04/22(月) 21:12:58.35 ID:pviRHRjF
ところで、あの高かったスマコンが4980円に値下げされているね。
wiiリモコンを繋ぐより遅延が少ないらしいから注文してみた。
OUYAのコントローラ価格に合わせたのかな。
いずれにせよOUYAは買うぜ。
おれのためのゲーム機をつくる。
613 :
Now_loading...774KB:2013/04/24(水) 13:33:41.96 ID:BZBGJj6h
マリオ風のステージを作成しているのだが質問させてくれ。
マップを描いているのだが、
キャンパスが狭くて狭いステージしか作れない。
ある一定サイズ以上になると絵がはみでる。
解決策はあるのか?
普通はマップチップ作って、それを動的に配置してスクロールするように作るが。
615 :
Now_loading...774KB:2013/04/24(水) 19:13:39.43 ID:BZBGJj6h
>>614 知ってる。2次元配列でしょ。
ツール作るの面倒だから、絵で済まそうというわけですよ。
マップチップは古いよ。
616 :
Now_loading...774KB:2013/04/24(水) 19:14:37.05 ID:BZBGJj6h
アンドロイドのレイマンやった?
あれはマップチップでは再現できないよ。
ソニックもマップチップじゃない。
ピクセル単位で球の判定でしょ。
617 :
Now_loading...774KB:2013/04/24(水) 21:04:05.36 ID:BZBGJj6h
まる一日球とムービークリップの当たり判定に挑んだけど、
うまく動かない。
一応補正はできているけど、
ゲームには使えないレベルやった。
for (j = 0; j < 36; j++)
{
X = Math.cos(j*10 * 0.0174444) * 20 + kuma.x + this.x;
Y = Math.sin(j*10 * 0.0174444) * 20 + kuma.y + this.y;
// for (i = 0; i < 150; i++)
{
if (ground.hitTestPoint(X,Y,true))
{
kuma.x-=Math.cos(j*10 * 0.0174444);
kuma.y-=Math.sin(j*10 * 0.0174444);
}
else
{
break;
}
}
}
やりたいことはなんとなくでも分かってくれ。
そして、ソースがあれば頼むわ
618 :
Now_loading...774KB:2013/04/24(水) 21:12:53.60 ID:BZBGJj6h
619 :
Now_loading...774KB:2013/04/24(水) 21:43:25.09 ID:BZBGJj6h
とりあえず、坂道と頭上のコリジョンは完全に実現できた。
横だけコリジョンブロック置いて誤魔化すという方法もあるな。
横で斜めの判定が必要な状況ってほとんどないし。
マリオU見てると、
やつらの技術の蓄積はすごいと思うわ。
一人じゃ絶対にできない所業だね。
bitmapdataにdrawして色々とか
622 :
Now_loading...774KB:2013/04/25(木) 20:40:20.30 ID:p/c+fGtO
3Dの方がコリジョン簡単やよな。
>>613 >キャンパスが狭くて狭いステージしか作れない。
>>615 >マップチップは古いよ。
とかいっている奴が出したコードが
>>617 すごい。
おまえスマホアプリつくってんだっけ
おまえが生み出すコードはスマホに向いてないからやめといたほうがいいよ
面倒という理由でクソ長いマップ作るとか…
>キャンパスが狭くて狭いステージしか作れない。
配置するトコは左上基準で0, 0 みたいにわかりやすい位置にする
実際の作成は作業フレーム、もしくは作業用Flaファイルでも作ってそこでMCずらしながらやる
ただしとんでもなく長いのは作れなかったはず…
626 :
Now_loading...774KB:2013/04/27(土) 13:59:36.23 ID:yOednvSH
>>624 てめえに言われたくないですな。
それがしのコードよりマシ。
>>625 方法はあるよ。
はじめからスケールしておいて、
拡大した状態で作業すればいい。
座標管理が若干ややこしくなるけど。
>はじめからスケールしておいて、
10倍か100倍なら分かり易いな でも比率が違いすぎるとペンやブラシで描こうとするとカクカクして大変
作成途中のでいいからどっかにうpってみてお 動かしてみたいw
>>626 俺のコードどこでみたんよw
人のコードにケチつけれるほど、
すばらしいコードだからいいのね?
プ
629 :
Now_loading...774KB:2013/04/28(日) 12:20:50.27 ID:U+Elqrd/
AS3でstageのscaleModeを変えるとマウスボタンが効かなくなることがあるのは何かのバグですか?
マウスホイールだけは効きます
再現するコードと、どうやって確認してんのかわからんとなんとも。
初期化時に
stage.scaleMode = StageScaleMode.SHOW_ALL;
で
ENTER_FRAMEでグローバルのBooleanに変化があったとき
stage.scaleMode = StageScaleMode.NO_SCALE;
にしたらそうなるときがある
632 :
Now_loading...774KB:2013/04/28(日) 14:07:11.83 ID:exbCFyxH
どうやって確認してんの。
stageに対してaddEventListener(MouseEvent.○○
しても駄目?それとも特定のインスタンス?
で、そうなるとき、って何って話になるわな。そうならない時と違うことやってんじゃないの?としか言えんよ。
stageじゃなくてthis(メインタイムライン)でaddEventListener(MouseEvent.○○ してもだめか?
635 :
Now_loading...774KB:2013/04/29(月) 10:57:02.76 ID:f3NhJI3D
スマブラみたいなゲームつくる
636 :
Now_loading...774KB:2013/04/29(月) 13:11:15.76 ID:f3NhJI3D
BOX2Dっていうプラグインつかえば、
簡単にコリジョンが取れそうだね。
iosのThe Incidentみたいなゲームが作れそう。
プラグインってのが何か知らんが
おまえには無理
プラグインって呼んでる時点で無理
639 :
Now_loading...774KB:2013/05/01(水) 16:38:57.50 ID:F2uRpzrR
>>637 元ゲームプログラマなめるな。
一応大手におった。
>>638 ライブラリやな。
ジョイントはムズイけど、
長方形と円はでけたぞ。
そんな素性だとしても
>>613の発言はおかしかろう。なおさら。
641 :
Now_loading...774KB:2013/05/01(水) 18:46:58.26 ID:F2uRpzrR
マッはデータで配置して、
キャンパスに直接マップを描くなってことだろ。
その考えが古いんだよ。
当たり判定は絵で取れる時代なのだ。
3Dやってればわかるでしょ。
コリジョンの絵を描くの!
3Dやってれば、オブジェクトを指定位置に配置するだけだって考えると思うんだが。
あたり判定を絵で取ることと馬鹿長いマップをステージに作れないとかいう基地外じみた理由でIDEにクレームいれることとなんの関係もないけどな
そもそも
コリジョンの絵を描く
ってなんだよw
645 :
Now_loading...774KB:2013/05/03(金) 08:30:15.46 ID:GBw3Dm6K
Box2D解説してるサイトない?
647 :
Now_loading...774KB:2013/05/03(金) 12:43:40.31 ID:GBw3Dm6K
>>646 神認定します。
洋書をキンドルで翻訳して悪戦苦闘してたとこ。
648 :
Now_loading...774KB:2013/05/03(金) 12:45:24.09 ID:GBw3Dm6K
これでアンドロイド版 TheIncidentつくる
Box2Dのバージョンにハマる展開まだー?
650 :
Now_loading...774KB:2013/05/03(金) 14:57:10.99 ID:GBw3Dm6K
>>649 それ、とっくに回避したわ。
Box2D for Flash Gamesという比較的新しい本を買って、
サンプルをいじってるから。
キンドルストアで売ってるからお前らも買ってみ。
前編英語だけどなwww
後編買うわ
652 :
Now_loading...774KB:2013/05/03(金) 15:50:04.82 ID:GBw3Dm6K
画面をタッチすると、はこが上から降ってくるプログラムつくったったw
端末の傾きで重力が変わる。
四角と円のコリジョンはできたけど、
それ以外は、矩形の組み合わせで実装するので、コードを組むのがめんどい。
TheIncidentつくるの楽勝www
653 :
Now_loading...774KB:2013/05/03(金) 15:52:43.54 ID:GBw3Dm6K
GWなのに、一日中モニタの前やった。
プログラムが仕事じゃなくてよかったわ。
遅れるとどやされるけど
トラック運転するの楽しいわー。
654 :
Now_loading...774KB:2013/05/05(日) 16:48:36.37 ID:oR3qxRZK
キャンパスってHTML5以外で聞いた事ない。
655 :
Now_loading...774KB:2013/05/05(日) 17:38:01.40 ID:pezWvzPi
ウィルス↑
657 :
Now_loading...774KB:2013/05/06(月) 08:04:48.03 ID:khShmLgW
これから勉強しようと思っている、actionscript と javascript の違いについて質問させてください。
ちょっとググったりしてみた感じでだいたいどんな用途で使うのかは分かりましたが、
文法的な違いは大きいですか?
例えば javascript をある程度勉強したら、基本的な部分は似ているので
actionscript も少しは使えるようになる、とかもしくはほとんどの部分で違ってるから
別物として勉強しなおす必要があるのかなど、両方の知識がある方そのあたりを教えてください。
よろしくお願いします。
勉強しなおしって事にはならないけど、同じように書けるってわけでもない。微妙。
jsはスコープチェイン分かってないときついし、自作クラス作ろうとするとクソ。
その辺わかるレベルになれば、どっちでもそんなに変わらん。
つかasだけならそのへんで苦労しないだろうけど。
>>657 ※以下長文でスマン
actionscript(以下AS)はAS1,2,3があってAS1は(他の2つに比べると)基本的な動作しかできず
古く、ライブラリ(誰かが作った道具箱)も皆無なので通常actionscriptと言えばAS2かAS3を指す。
文法はAS1と2は殆ど変らないがAS2とAS3は全く別のシロモノ。 AS2は規格上JavaScriptの兄弟で、
文法は殆ど同じなので、コードの流用が出来る。 また比較的簡単なので勉強しやすい。 反面ライブラリは
充実していないので(AS3に比べると)やれることが限られてる。
一方、AS3はJavaに匹敵するオブジェクト指向言語でライブラリも豊富にある反面、初心者には
勉強しにくい。
*** 例えると、AS1は魚でAS2は両生類だが、AS3は類人猿みたいなもの。 ***
世間の潮流はAS3だけど俺は使い分けだと思う。 AS2でもかなりのことが出来るがAS3は更に
可能な項目が10倍以上になる。 そうなると逆にオーバースペックで使わない機能が出てくる。
実際、AS3のEventサブクラス(何かの出来事が生じた時の処理機能)は5年以上前の時点で250個
以上(下記)あるから、これの5%でも活用して、他のクラスも使えばそれなりのアプリが作れる筈。
ttp://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/events/Event.html ※標準パッケージのクラス総数は不明というか膨大
【まとめ】 AS2とAS3の比較上の長短は
AS2の長所: JavaScriptのコードが流用できる。 勉強しやすい。 それなりのことが出来る。
〃 短所: やれることが制限される。
AS3の長所: 多彩な動作が出来る(Felicaのデータ読み込みとか、高度な3Dとか、バイナリ解析とか)
〃 短所: ちょっと難しい。 場合によってはオーバースペック。
あと商用では1回限りの案件で短納期でチャチャと作る場合はAS2が向いている。
660 :
659:2013/05/06(月) 13:47:54.79 ID:fxS8rhAV
追記)
>>657 AndroidスマホとPCではAS1〜AS3書いたコードのSWF(コンテンツファイル)が
実行できるが、ガラケー(フィーチャーフォン)ではAS2以下によるSWFしか実行出来ない。
これは搭載される実行プログラム(FlashPlayer)の違いによって起こる事象。
ちなみに、FlashPlayerはExeファイルで、PC用なら任意の名前でタダで簡単に
作成できて簡単に配布できる。
※AS2以下用(Player8)のみならファイルサイズは4.2MB程度だが、最新のAS3も
動かせるPlayer11.7だと16.7MBになる。
661 :
659:2013/05/06(月) 17:16:04.70 ID:fxS8rhAV
追記2) 度々すまぬ
SBのガラケーの一部では Player Lite4 によりAS3のSWFも実行可能。
ただし機種名は分からん。
あと、Yahooの広告SWFなんかはどの環境でも動作できるようにワザとAS2
のPlayer8以下(7年以上前のPlayer)での動作を求めている。
※ Flash SWF 入稿 規定 Player で検索
JavaScriptの経験が長くて、蓄積コードも多いならAS2でも良いと思う。
最初からAS3を勉強しとくのが吉
AS3→AS2、JavaScriptへの移植はAS2、JavaScriptを知らなくても比較的楽
AS2、JavaScript→AS3への移植はAS3を知らないとどーにもならん
AS1.0しかやってないけどjavascriptの参考書が参考になるレベルには似てる
最近ASに興味を示して色々本を買ったりwonderflからソースもらってきたりしてるんだけど
どうもイベント駆動式ってーのがわからん
イメージが掴めんって言うのか
もはやASとは関係ないほど低レベルなんはわかってるんだけど、手続きしきって言うのかな?古いBASICからASに移行する為の注意点ってーのを教えてほしい
イベント駆動ってーのはBASICで言うON ERROR GOTOやらON KEY GOSUB、ON TIME GOSUBなんだろうけど、継承?の考え方がイメージが掴めんのよ
説明できる人がいたら教えてください
イベント駆動と継承って何の関係もないわけだが。
なんかオブジェクト指向とごっちゃになってないかい?
従来型のプログラミングのやり方(構造化)でGUIの処理をやろうとすると
非常に面倒だってことで出てきた方法論?で、
何かしらのイベント(ex:ボタンがクリックされた、キーが押された)が
発生した時の処理を記述するやり方。
結局VM内部では従来通り、高速に状態変化を監視するループが走ってて、
その変化の内容を処理を振り分けてるだけ。
オブジェクト指向ってのは、データ構造も含めて考える概念で
イベント駆動とオブジェクト指向は相性が良いこともあって、
まとめて解説してあったりして混乱しやすいとおもう。
>>664 イベント駆動式に限定して言うと、
・バレンタインにチョコを貰った → お返しをする
・迷惑メールが届いた → 破棄した
・彼女の乳首を触った → 彼女が悶えた
というAction説明(因果の関係)ではどうかな?
ActionScriptってイベントスクリプトとも言えるかも。
667 :
Now_loading...774KB:2013/05/07(火) 14:03:29.53 ID:8dbRiGvU
>>664 イメージが掴めないのは単純に経験が無いから。
気にせず作ればいいよ。
API触ってたら勝手に学習していく。
>>667 まあ、どのプログラム言語もそうだけど、解説資料を参照しながら短い(行数が少ない)
多彩なサンプルをイジくり回して遊ぶのが近道だわな。
AS2の時は、「Flash MX ActionScript ほぼ10行道場」(毎日コミュニケーションズ)
がスゲー役に立った。
669 :
664:2013/05/07(火) 19:36:48.98 ID:iFZhqKgA
>>665-668 たくさんレスありがと
イメージ的にはこんな感じでいいの?
[VM内処理]
メッセージループ
//イベントhooを登録するとここに
/*
if hoo=1 then gosub *hoo
*/
//これを追加
繰り返し
質問が低レベル過ぎて申し訳ない
まぁ、そんな感じ。
ただ、AS3に関しては非同期処理だから注意が必要。
イベント駆動を知りたいだけならVM内での実装はどうでも良いのがホントで、
>>666が書いたように、イベントに対する処理を記述するだけ。
低レベルというか難しく考えているだけじゃなかろうか。
671 :
664:2013/05/07(火) 20:55:02.87 ID:iFZhqKgA
いや、「BASICしか知らない」とは言ったものの、実際にはDelphiとかBCBとかJAVAとか齧ってきたの
三つ子の魂百までとはよく言ったもので、逐次式に慣れてしまってたらその考えがずっと後追いしててさ
イベント駆動式だっけ?にはどうやっても移行できんのよ
だから全部挫折したわ
ASっていうか、wonderflのサイト教えてもらった時に、サンプルが多い分できるかなって思ったんだけど、ここに来て強敵のイベント駆動式が立ちはだかったんよ
イベントの登録と処理を記述するのが今の方法だろうと思って、確認をお願いしたんだよね
後出しだがレス書いてた時に気づいた
疑問がもう一つあるんだけど、いいかな?
>>669のメッセージループに入る前に初期化処理っていうのは作れるの?
例えば
イベント[初期化処理]ってーのを登録した
でも[初期化処理]のフラグを立てる術がない
だからいつまで経っても初期化されない
ってことに陥る気がするんよ
そもそも、メッセージループにそういうフラグを監視する処理を入れる必要はなく、メッセージループ前に処理しちゃったら手っ取り早いと思うんよね
「非同期処理」ってーのは、次のメッセージループまで判定しないって意味?
うーん、VMの話をし出すと厳密な事書かないといけなくなるからなぁ。
俺もそこまで詳しい訳じゃないし。
イベント駆動の何につまずいているのかがわからん。
BASIC、特にVBやったことあるなら、一番概念がつかみやすいと思うが。
ボタンクリックした時の処理を個別に記述できるでしょ?
JavaはGUI用のAPIのSwingとかじゃないとイベント駆動とはあまり関係無いが。
DelphiだってVCL上の話だし。
>
>>669のメッセージループに入る前に初期化処理っていうのは作れるの?
> 中略
> そもそも、メッセージループにそういうフラグを監視する処理を入れる必要はなく、メッセージループ前に処理しちゃったら手っ取り早いと思うんよね
これも、VMの話であってASによって手出しする部分じゃない。
だから処理系の持つ実際の処理(VM内の処理)の話は考えなくていい。
CPUのカウンタがどうだとかレジスタがどうなってるとか気にしたこと無いでしょ?
> 「非同期処理」ってーのは、次のメッセージループまで判定しないって意味?
フラグの判定とは全く関係無い。
例えば、よくあるサーバからデータとって来て表示処理を考えると、
値が返ってきてから表示すればよいだけで、
値が返って来るまでメッセージループを停めて、他の処理が出来なくなるのはバカらしいでしょ?
その返って来る時間が不定ならなおさら。
(実際そういう事考えずに画面描画が止まるアプリも多いけど。)
だから、データが返ってきたら呼んでね!っていうイベントを登録して、
処理が終わった!イベントでその表示処理をするわけ。そうした方がリソースを有効に使えるから。
こういった処理を非同期処理って呼ぶ。
なんか話が発散してしまった。
675 :
Now_loading...774KB:2013/05/07(火) 22:17:56.81 ID:8dbRiGvU
メッセージループってなんだ?
while(1){
sleep();
}
こういう処理はFlashではできないぞ。
>>675 割り込みとかスレッド処理ってこと?
Workerとやらで出来たような・・・
677 :
664:2013/05/07(火) 22:29:53.03 ID:iFZhqKgA
皆さんすいませんね
概念がイマイチ理解できてないから、やたら低レベルな話で
やりたいこと自体は別にそんなに大仰なことではなくて、「とりあえずワンキーゲームでも」って感じでかじってみたの
そんなにすんげー事するつもりはないんだけど、今のスタイルがどうにも飲み込めないから色々質問したんだけど
でもレスってくれた方々のおかげで理解はそこそこ深まった ってーのが今の感想よ
VMレベルでの質問は「嘘教えた!てめー責任取れ!」て言いたい訳じゃなくて、概念を知りたいからなんよ
今はこんな感じで理解しているかな
[元ソース]
初期化を登録 こいつはメッセージループ前に実行するよ
メインルーチンを登録 こいつはループごと実行するよ
なんか押したを登録 こいつはループ中になんか押したら実行するよ
終了処理を登録 こいつはループ終了後に実行するよ
[コンパイル時の解釈]
gosub *初期化
メッセージループ
if 1 then gosub *メインルーチン
if inkey$><"" then *なんか押した
繰り返し
gosub *終了処理
678 :
664:2013/05/07(火) 22:40:12.20 ID:iFZhqKgA
>>675 ああ、ごめん
有り体に言えばそれなんだけど、知りたいのは方法じゃなくて考え方
だからそういう具体的なコードを求めてるんじゃないの
でもそこで引っかかってるって思われてもしかたない質問よね
680 :
664:2013/05/07(火) 23:01:54.85 ID:iFZhqKgA
>>679 どうやったらこんなサンプル見つけれるんよ?
こういうのがたくさん欲しいから、是非ググり方教えて
ID:siLVUOZJの方もかなりためになったけど
ID:6vR4EpSnのあなたにも感謝するよ
くだけた口調でもの申してるけど ホンキで感謝してます
682 :
681:2013/05/07(火) 23:15:47.64 ID:6vR4EpSn
追記:
KEY_DOWN lines:5-30
で検索した
プログラミングについて語るとこじゃないんだって
実際に組んで困った箇所があったら質問してこいお
FireWorks開発終了だね……
AdobeのページでWEBデザインの項目で
Dreamweaver・Edge-a・Edge-r・Edge-i・Photoshop
でFlashもFireWorksも全ての表示を押さないと出ないし……
Adobeの扱いが酷すぎるんだが……
Adobe自らFLASHを消しに掛かってる印象を受ける。
まだ5年くらいはゲームエンジンとしてでも使える
ポテンシャル有りそうなのに
Photoshop に慣れると Fireworks は正直使いづらい
Flash はまだまだいけると思う
>>685 Flashは既存の機能(クラス&関数)をどう使いこなすかの時代になると思う。
※企業で言うと新しい資産を求めるのではなく、既存の社内資産の活用ってこと
まあこれはExcelの関数にも言えると思う。
Player8でもかなりのことが出来たのに、Player11以降なんてメチャ多機能で
専門の人でも全く使わないクラス&関数もある筈。
絵の具で言えば12色あれば組み合わせで大抵の色が出せるのに、既に120色もあって
無駄になってる。
>>684 Adobeはかなり前からFlashはGameに特化するって言ってるよ。
だから、Gameの項目にFlashは入ってる
Fireworksも結構前から統合するって言ってたんだよ。
あとCCだったらFireworksCS6は販売を続ける。
Web用の画像はHTML5対応だと作り方が従来と全く違う。
ひとつのソースでデスクトップからモバイル、タブレットに対応しないといけない。
だから、それに対応出来るEdgeシリーズを新規に作ってる。
従来の様な枠やバナーを作るのには、今までのままで十分でしょ?ってこと。
>>686 > Player8でもかなりのことが出来たのに、Player11以降なんてメチャ多機能で
> 専門の人でも全く使わないクラス&関数もある筈。
互換性で残してあるPlayer8よりも、9以降に追加された機能のほうが超強力で重要だし、
特にAS3になったことは意味がでかい。
AS2を使う意味をほぼ感じなくなったから、そのたとえはどうかと思う。
今時ガラケー用のFlash作ることも無いし。
>>687 レス、ありがとう
でも一機にadobeに日陰者にされたのも事実だと思うんだ。
CCのメインのソフトにもPS、DW、PE、AI、AE、IDなどはあるけどFLはないし。
WEBのメインのソフトからすら消えて。どこにあるんだよ状態。
以前は、アップデートの売りで全面押しだったのにさ。
モバイルの時みたいに、どっかのブラウザが対応しませんと言ったら、
「Flash-Playerの削除を勧めます」で一機に終わるんじゃないかと怖いよ。
FWもだけどFlashとか切り捨てみたいにして次は、Edge使ってねって
Adobeは馬鹿じゃねーのと思う。別ソフトでなくFLASHで同じ事できるようにしろよと。
AIRも名前をモバイル用FLASHとかにしけば
モバイルでも動くと言う事で撤退・衰退と一機に思われずにすんだわけで。
切り捨て新しい物を使ってねと言ってもついてこないっての!とadobeへの不満でした。
>>688 > でも一機にadobeに日陰者にされたのも事実だと思うんだ。
Adobeが日陰者にしたくてしたわけじゃないと思うよ。
Jobsに叩かれまくって、iPhoneから閉め出されたのがでかかった、と思うんだけど。
FlashPlayerの機能とかセキュリティの問題を叩いてたけど、
結局、自分の庭で少しでも稼ぐのは許さないって事だったわけで。
> CCのメインのソフトにもPS、DW、PE、AI、AE、IDなどはあるけどFLはないし。
> WEBのメインのソフトからすら消えて。どこにあるんだよ状態。
たしかに、どこにあるんだって思ったw
ただ、FlashはWEBのメインストリームから外れたことは確かで、
その流れからするとしょうがないのかなぁ。PhoneGapが入ってるのが納得いかないがw
今時のWEBページを作ろうとすると、レスポンシブは必須だし、
アニメーションしたい客が居てもFlashを選択することはなくEdgeAnimateを検討するからね。
(ちなみにEdgeAnimateは登録だけすれば無償で使える)
CreateJSでも良いんだろうけど、まだまともに使ったこと無いからなぁ。
> 「Flash-Playerの削除を勧めます」で一機に終わるんじゃないかと怖いよ。
AIR、Flexもあるし、そういう終わり方は無いと思うよ。仕事で使ってる会社がどれだけあるのかとw
> FWもだけどFlashとか切り捨てみたいにして次は、Edge使ってねって
> Adobeは馬鹿じゃねーのと思う。別ソフトでなくFLASHで同じ事できるようにしろよと。
これは全く同意出来ない。
レスポンシブデザインとアニメーション作成、画像作成は全く別の事だし
Flashの閉じた世界の話だけじゃ無くなってしまった。Flashで作りたければCreateJSで一応出来るっぽい。
> AIRも名前をモバイル用FLASHとかにしけば モバイルでも動くと言う事で撤退・衰退と一機に思われずにすんだわけで。
これはほぼ同意。
ただ、ブラウザ外で、実行環境のリソースを直に触れる=AIR
だから、区別した方が良いのかなとも思うんだよね。
>>690 > 前者だけなら通常のFlashPlayerでもOKだよ。
わざわざ知らせてくれるのはありがたいが、プロジェクタの事でしょ?
AIRであれば、ランタイムさえあれば(ここのハードルが高すぎる)直接実行できるし。
重要なのは後者の方なんだよね。
アプリ作るとなったらディスクの読み書きは必須だし、
OSネイティブのプロセスと通信出来ることとか出来ないとつらい。
>>691 「ディスクの読み書きは必須」・・・ コレは同意できるが俺が言いたいのは、
共通の最新Playerが1個あれば無数のSWFがブラウザから独立して利用OKってこと。
なんか噛み合わないが、
>共通の最新Playerが1個あれば無数のSWFがブラウザから独立して利用OKってこと。
なぜこれを強調して、伝えようとしているのかがわからない。
最初に
>>689で書いた
>ただ、ブラウザ外で、実行環境のリソースを直に触れる=AIR
が良くなかったのかもしれないが、
前者・後者に分けられたら意味が無いんですよ。
こう書き直した方がいいかな。
> ただ、ブラウザの制限から外れた、OSネイティブのリソースを直に触れる=AIR
これだとわかってもらえるだろうか?
>>693 度々スマン。言いたいことは分かる。
ただ俺は、 SWF=ブラウザ内のコンテンツ という固定概念が広がり過ぎてるので
これを是正したかったのよ。
AIRのOS・リソースへの親和性は俺も全く同意している。
ActionScript3.0で質問です
ダイナミックテキストの縦の最大行数を知りたいのですが
maxscrollやmaxscrollVではエラーとなってしまいます
他にプロパティがあるのでしょうか?
よろしくおねがいします
>>694 なるほど。
>>695 numLines
あと、エラーになったんなら、どんなエラーか書こうよ。
>>696 ありがとうございます
先のプロパティが存在しないというだけでしたので
エラーを省略してしまいました すいません
>>697 そのプロパティが存在しないとなると、numLinesも同様にエラーになると思うが。
コード示してよ。
使用しているのは、as3のSharedObjectなのですが、
最近、これで値が記録出来ないと言う方が増えていまして、
理由をご存じの方いらっしゃるでしょうか。
「FlashPlayer の設定」によりエラーが返って来た時は、
設定の変更して下さいの表示をしていますので、別の理由の気がしています。
昔から記録できない人は居たのですが、
最近とくに増えていまして、以前は出来たけど今のPCでは
出来なくなったと言う方も居るので
何か心当たりの居る方いらっしゃるでしょうか…
ブラウザのせいかセキュリティのせいか原因を特定出来なくって…
もしかしたら私が日本語の変数名などを使ってるので特殊な例だったりするのかもしれませんが
ブロックに画像を使ったテトリスのソースって
どう書くんすか?
702 :
>>700:2013/05/09(木) 21:24:07.28 ID:KbEZ69OS
flashというよりASとしてならおk。
ブロックどうやって表現してるん?
スプライトならLoderで画像ロードするだけ。
>>700 やるとしたら、色数を落とした方がいいかも。 16bit 6万5536色とか
>>698 下記の通りです
hoge.maxscroll
未定義である可能性が高いプロパティ maxscroll に
静的型 flash.text:TextField の参照を使用してアクセスしています。
移行の問題 : プロパティ maxscroll はサポートされないようになりました。
代わりに、TextField.maxScrollV プロパティを使用してください。。
hoge.maxscrollV
未定義である可能性が高いプロパティ maxscrollV に
静的型 flash.text:TextField の参照を使用してアクセスしています。
hoge.numLines
問題なし 最大行数取得可能
あ、取れたんだw
TextField 使ってないのかと思った。
サンプル作成にAIR書き出し試してみたけど、簡単なものならほんとに何も考えず動くんだなー
AIRで自分用ツール作ったりキッチンタイマーつくったり色々やってたんだけどcygwinいれてシェルスクリプトでいいやってなってきてしまった。
もう歳かね…
>>707 書籍にGoogleストリートビューのAIRサンプルが載っていたけど、あっけなく出来ちゃったしw
710 :
Now_loading...774KB:2013/05/14(火) 18:37:20.84 ID:ttwq3Amr
>>708 おれはBox2Dでアングリーバードもどき作ってるぞ。
今年30歳だが、田舎の肉体労働者なので休日のプログラミングが楽しみでしょうがない。
年齢は関係ないな。
仕事でパソコン触ってるやつは趣味ではきついやろうな。
711 :
Now_loading...774KB:2013/05/22(水) 19:39:20.39 ID:z0vZzp2c
あれれ 回転はrotationだろ 傾斜のプロパティってなんだっけ?
ムービークリップが反転されてるかどうか調べたいんだけど
>710
完成したら、やらしてね。
ググればわかんだろ
714 :
Now_loading...774KB:2013/05/24(金) 11:08:55.20 ID:pCITSPtS
Adobe Flash CS5 でAS3つかってます
if(currentFrame ==1)
trace(currentFrame);
else if(currentFrame ==5)
trace(currentFrame);
else if(currentFrame ==10)
trace(currentFrame);
このスクリプトを10フレームの長さのレイヤーに書いてルートに置いて再生してみると、1フレーム目だけトレースが動いて残りの2つが動きません。
2つのelse if条件を動かすにはどう記述したらいいんでしょうか?
1フレーム目に記述してるからってことじゃないかい?
Event.ENTER_FRAMEを使ったらやりたい事ができる。
詳細はググれ
716 :
Now_loading...774KB:2013/05/24(金) 11:50:52.95 ID:pCITSPtS
>>715 調べてみます。どうもです。
あともう一つ聞きたかったんですがたとえばルートに
var AAA:Boolean = false;
とフラグを用意しておいてルートにおいた10フレームの長さのmcをそのAAAというフラグがtrueになったら再生させるみたいなことをしたいんですがうまく動きません。
mcの中に
if(MovieClip(root).AAA)
play();
else if(!MovieClip(root).AAA)
stop();
と書いてあるんですが、ルートのフラグの切り替わりが反映されないんです。
stop();の部分は反映されていてmcの再生は停止したままになってるんですがフラグをtrueにしてもifの部分が動きません。
親のフラグの切り替わりを条件に子のif elseを動かすことってできないんでしょうか?
結局同じ質問なわけだが。
原因は「1フレーム目でしか実行されていない」ってこと。
フレーム毎にそのスクリプトが実行されればやりたい事が出来るとおもわれるが。
もう一つ質問です
例えばですが。
1フレーム目にmcAというインスタンス名のムービークリップを配置します
2フレーム目に1フレーム目とは別物のムービークリップを1フレ目と同じようにmcAというインスタンス名をつけ配置します
そしてmcAというインスタンス名をもったインスタンスの可視性を変更するボタンを用意して、クリックをすると1フレ目のmcAと2フレ目のmcA両方の可視性を変更できるようにしたとします。
こういう方法は避けたほうがいいでしょうか?2フレ目に配置したシンボルの名前はmcBとかにしてボタンも別のものを用意して、mcBの可視性を変更する、といった設定にしたほういいんでしょうか?
今作ってるものがメインタイムライン5フレーム使っていて、それぞれのフレームに別々のムービークリップを合計5つ配置していて、すべてmcAというインスタンス名をつけて配置している感じなんですが。
1フレーム目のシンボルには文字列が入っていて、2フレーム目にはまた別の文字列が、3,4,5フレーム目にも別の文字列が配置されている、という感じの設定になっています。
すべてのフレームのムービークリップをボタンを押すと同じ動きをさせる、という設定にしたいので今のようなことをしている感じです。
>>719 避けたほうが良い、というか無理
まず、一度に同じ識別子をもつインスタンスが複数存在することはできない
次に、フレーム1に再生ヘッドがいるなら、フレーム1のmcAしか存在しないので
2フレーム目以降にあるmcAでもmcBでもいいが、それらを操作することはできない
そもそも、状態をフレームで分けて管理するのは一見楽そうだが
実はFlashの仕様などの知識が必要になり初心者には難しかったりする
1フレームにすべて配置する方が、考え方も整理しやすいと思う
721 :
Now_loading...774KB:2013/05/24(金) 20:17:54.42 ID:pCITSPtS
>>720 うまく伝わりませんでした。すいません。
ルートのそれぞれのフレームにstop():を書いていて
別のボタンで、play();を実行するようにしています。そのボタンを押すとメインのタイムラインの再生がはじまり、stop();で止まります。
そして、ルートのフレームが切り替わると同時にそれぞれのフレームにあるmcAの中身がアニメーションする、という設定にしています。
なので例えの設定のswfを再生すると、
ルートフレーム1にあるmcA(シンボルA)のアニメーションが始まる→ボタンを押す(play()を実行)
→ルートのタイムラインが1から2に切り替わり止まる(2フレーム目のstop()で止まります)→ルートフレーム2にあるmcA(シンボルB)のアニメーションが始まる
といった設定にしています。
それで、ルートフレーム1にあるmcAとルートフレーム2にあるmcAの動きを制御するボタンを一つ作っていくといった感じのことをしています。
試したところエラーも出ずに動いているんですが、どうなんでしょうか?やめたほうがいいのでしょうか。
すいませんまた追加なんですが
たとえば中身が空っぽのシンボルを1フレーム目に配置してmcBとインスタンス名をつけておいて、
2フレーム目に中身のあるシンボルを配置して同じようにmcBと名前をつけて、(1フレーム目と2フレーム目の別々のmcBを用意)
mcBを操作するスクリプトを書いておく、みたいなことって普通にするもんでしょうか?
存在しないmcに関するASはエラーがでるのでそのためにダミーのインスタンスを用意しておくみたいなことです。
こんなことをするよりもっと効率的な方法があったりしますかね?
動くのが正義だから、やめたほうが良いとかない。
> たとえば中身が空っぽのシンボルを1フレーム目に配置してmcBとインスタンス名をつけておいて、
> 2フレーム目に中身のあるシンボルを配置して同じようにmcBと名前をつけて、(1フレーム目と2フレーム目の別々のmcBを用意)
>>720が言うとおり出来ないわけだが。
タイムライン上の特定のフレームで実行したアクションでアクセスすれば存在しないMCが居るわけない。
説明が足りてない部分がまだあるとおもうが。
インスタンスとかシンボルとか普通に使ってるけど、
どうもオレオレ解釈が入っているっぽくて、本来の意味でない使い方をしている風に感じる。
>存在しないmcに関するASはエラーがでるのでそのためにダミーのインスタンスを用意しておくみたいなことです。
とんでもねえことすんな
>>723 スクリプトとかまったくわからないのでどう説明したら一番伝わりやすいのかもわからない感じです。すいません。
シンボルはライブラリにあるムービークリップシンボルやボタンシンボルのことですよね。それをレイヤーに配置するとインスタンスになるという解釈をしてます。
例えばすべてのフレームで同じように動くボタンがあってそれを押すと
mcB.x += 10
と動くような設定をしておきます。
1フレーム目には中身が空のシンボルがインスタンスmcBになっているのでボタンを押しても表示上は何も変化がありませんが、それを
var mcB_x:int = mcB.x
と1フレーム上で変数に格納しておいて2フレームでそれを中身がある2フレーム目のmcB.xに代入する、みたいな使い方をしたいんです。
本当はもう少し長ったらしくてぐちゃぐちゃと込み入ったif elseの条件文の羅列があって、自分の作ってるものは全部で5フレームある上にmcの数ももっとたくさんあります。
たくさんある上に、あとから表示されるmcと常に表示されているmcの位置関係が関係したようなスクリプトになっています。
if(mcB.x > 50)
mcA.y += 2
みたいなものがある感じです。
なのでわざわざあとからでてくる数個のmcのためだけにボタン動作を変更するためのASを新しく用意するのは手間なのでこういう感じにしたいんです。
あとから変更があったときにも修正がしやすいですし。やめたほうがいいですかね?
>>724 やっぱりやばいですかね。あとからおかしなことになりますかね。
空のシンボルとやらの必要性が分からん
必要になるタイミングでaddChild すればいいんじゃないの?
あとやりたいのは順番にmcが動き出すような事?
それならフレーム移動させずasだけで制御したほうがごちゃごちゃにならんよ
suzuka -> AIRSDK -> androidのapk は作れるが actionscriptが動かんかった
当然ながらadobeのflash練習サンプルswfからだとちゃんと動く
これはsuzukaがactionscript2だからか・・・
suzukaなんか使ってんなよ
>>728 suzukaってダメなの?
最近ASに興味を示した下郎なんだけど、良さげなツールを教えてよ
今はWonderflでソース引っ張ってきてFlashDeveropでいじったりしてるんだけど、これも変?
☆Wonderflは俺のパソコンではなんか遅い
FDでいいだろ
731 :
Now_loading...774KB:2013/05/28(火) 06:46:08.41 ID:vPHfbVkL
732 :
731:2013/05/28(火) 07:11:22.53 ID:vPHfbVkL
すいません。
引き続き調べたらWMFは悪意あるコードを仕込めるということでこれは取りやめます。
代わりにその後継のEMF(Enhanced Meta File)でお願いします。
http://e-words.jp/w/WMF.html これも同様にCS5でそのまま読み込めます。 ※ただし、inkscapeのver0.46では不可
>722
第1フレームのステージの外に必要なムービークリップを配置し、
白い画像などをかぶせて隠しておけばよい。
734 :
Now_loading...774KB:2013/05/29(水) 21:19:50.41 ID:ssRH27VT
AS3 FlashCS6 です。
タイマーイベントを使用して処理をさせていますが、タイマーの時間を可変にしたくて悩んでいます。
var intervalTime:int=1000;
var timerEvent:Timer = new Timer(intervalTime);
timerEvent.addEventListener(TimerEvent.TIMER,onStart);
function onStart(e:TimerEvent):void {
wark();
}
こんな感じです。これを
ボタンを押すことでintervalTimeの値を入れ替えて可変にしたいのですが、タイマーを生成した際の間隔時間を変えられないでいます。
タイマー生成後にタイマー間隔を可変化する良い方法があればお教えください。
735 :
731:2013/05/30(木) 05:42:43.63 ID:0H9gYSYz
>>733 どうも。
任意のファイル名を指定してダイナミックに読み込み&表示したいです。
736 :
734:2013/05/30(木) 08:59:05.92 ID:tC6uPyls
いろいろ試行錯誤していますが
newしたタイマーインスタンスの引数を後から変更ってできるのでしょうか?
>>734 一旦 var timerEvent:Timer; と宣言だけしておいて、ボタンを押す度に
timerEvent = new Timer(intervalTime); としたら?
var timerEvent:Timer = new Timer(intervalTime); だと固定されてしまう。
それ普通にTimerのdelay変更すれば済む話と違う?
739 :
737:2013/05/30(木) 10:02:08.31 ID:O0OYKOHE
>>735 対応してないフォーマットなら、loaderによって動的にロードしてswf内に表示はできないと思うが、
対応してることは確認してあるの?
741 :
731:2013/05/31(金) 12:47:57.11 ID:VhjvGmbx
>>740 すいません。 EMFは対象外でした。
これを読めるようなライブラリを探しましたが見つかりませんでした。
AS3, FB4.6です。
WSDLを定義したWebサービスと通信するActionScriptのプログラムを作っています。
このプログラムでは、Flash Builderの「データとサービスに追加」機能を使って、
通信用のプロトコルを自動生成しました。
(WebServiceWrapperクラスを拡張したクラスが生成されます)
このプロトコルについて、接続時のタイムアウト時間を変更したいと考えています。
(デフォルトの20秒より長く設定したいです。)
通常、接続時のタイムアウト時間は、Socket.timeoutで設定できるようなのですが、
自動生成したプロトコル内では、Socketクラスを参照する方法がなさそうです。
どなたか変更方法をご存じでしたら、教えていただきたいです。
同じ関数からSpriteオブジェクト取得して、
そのSpriteにaddhildされたbitmapにはアクセスできますが、
bitmapdataにアクセスするとtest2ではなぜかできません。
原因がわからないので教えていただきたいです。
環境:flashbuilder4.7
var test1:Array = new Array();
test1.push( getSpriteOfBitmap( 1, 1 ) );
//できる
trace( test1[ 0 ].getChildAt(0).bitmapData);
var test2:Sprite = getSpriteOfBitmap( 1, 1 );
//できない
trace( test2.getChildAt(0).bitmapData);
>>743 追記です。
test2の型宣言をObjectにしたらbitmapDataにアクセスできるようになりました。
なお、なぜこれでよいのか根本的な理解はできていない模様。
どなたか教えてくださいませ。
getChildAtの返り値の型がDisplayObjectだからじゃないかね。
DisplayObjectはbitmapDataってプロパティ持ってないから、
「だーめよ」って怒られてたりとか。
これはDisplayObjectを継承したBitmapなんだよー、って具合に
(test2.getChildAt(0) as Bitmap).bitmapData
Bitmap(test2.getChildAt(0)).bitmapData
↑2例みたいに明示的にキャストしてやればいいんじゃないかな。
ArrayやObjectの場合は中身はなんでも格納してくれるから、
とりあえずあるプロパティにはアクセスできちゃうからじゃない。
>>745 ありがとうございます!
Sprite型でもBitmapにasキャストしたらbitmapDataにアクセスできるようになりました。
可読性的にはArrayのほうも明示的にキャストしておいたほうがいいのでしょうか?
Vectorつかうよろし
CS6 AS3使ってます。
光源が微妙にゆらゆら揺れてる感じの演出が作りたいんですがどうするのがいいですかね?
自分が思いついたのがブレンドモードをスクリーンにした放射グラデーションのスケールを
スケール変化完了までの時間を毎回ランダムで出してツイーンで動かすとかなんですけど
いまいちです。もっといい感じのないですかね?
どうやりたいのか、ようわからん。
wonderflで探したほうがはやい。
bit演算について質問です。
24bitカラー値にアルファNumber型(0-1.0)を16進数の形で足したいのですが、
下記の?のとこを出すにはどうすれば良いでしょうか?
0x??ffffff
あ、256をalphaに書けてからtoString(16)すればいいのです?
>>750 訂正です
「255を掛けてから」です。
var alpha:uint = alpha * 255;
alpha1.0でtraceで出したらffになったのでいいのかしら
そだね
((alpha*0xFF)<<24)|color24
>>752 なるほど0xFFかけてもいいのですね、ありがとうございます!
最新のFireFoxインスコして、そのブラウザでサインインしようとするとすぐ弾かれるみたいなんだけど
これってなんかの仕様?
IE、Chromeはサインインできるんだが・・・
ArrayCollectionにクラスのインスタンスをいれ、そのArrayCollectionをdataProviderに設定しております。
テキストとクラスのSpriteオブジェクトを設定したいのですが、下記だとdataProviderにインスタンスが設定されてしまい、RendererのimageにSpriteを表示できません。
とは言え、
lLabel: 'test',
lClass: new ClassName().spriteObject
とやるとクラスメソッドが利用できないため不便です。
うまくやる方法があればご教授ください。
環境はflashbuilder4.7です。
var ac:ArrayCollection = new ArrayCollection();
var item:ObjectProxy = new ObjectProxy(
{
lLabel: 'test',
lClass: new ClassName()
}
);
ac.addItem( item );
var list:Object = document.Container;
list.itemRenderer = new ClassFactory( Renderer );
list.dataProvider = ac;
>>758 追記です。
arrayCollectionには表示オブジェクトをセットして、
getQualifiedClassNameでクラスメソッド利用できるかも?
>>758,759
Rendererのほうの指定をクラスの表示オブジェクトにしたら解決できました!
761 :
Now_loading...774KB:2013/06/10(月) 09:25:48.65 ID:KSfWivsj
762 :
Now_loading...774KB:2013/06/10(月) 18:51:44.56 ID:IOsV+W5V
action script 3.0でノベルゲーム,アドベンチャゲーム,ギャルゲー用のライブラリやゲームエンジン、流用できそうなサンプルって何かありますか?
よろしくお願いします
男ならフルスクラッチ
ごめんフレームワーク使ったことないです
俺もフルスクラッチだな。
知ってたら使ったかもしれないけど。全く知らない。
765 :
Now_loading...774KB:2013/06/15(土) 21:30:10.05 ID:5AB2yV+V
adobe flash cs5 as3つかってます
ビットマップファイルの扱いについて質問です。
ブラーをかけなければ100kbでブラーをかけると150kbくらいになるpngファイルがあります
解像度は1kです。この画像を256x256に縮小してファイルサイズを減らしてそれをフラッシュ上で1kに拡大してやれば丁度ブラーをかけた150kbの画像のようになります。
100kbのままでインポートしてあとからスクリプトでブラーをかけるか、先に別アプリでブラーをかけておいた150kbを読み込むか、それとも縮小した256の画像を4倍に拡大して使うか、どれがベストですかね?
それとAEで作った一枚100kb程度のアルファ付き連番pngを100枚くらいadobe flashのライブラリに読み込んで使ってみたんですが
メモリ使用量がひどいことになりました。ビットマップファイルを連続で表示するようなことはFlashではやらないほうがいいのでしょうか?
だとしたらベクターで代用するとかflvを使うとかそういう方法をとるべきなんでしょうか?
ちなみにこの100枚連番画像は最初の質問のpngファイルと同じものです。
環境flashbuilder4.7
spark.ListのdragCompleteが発火されずに困っております。
ListにitemRendererとdataProviderを設定しており、
Listのe.targetにdragイベントをくっつけております。
DragManagerを使った手動ドラッグの実装をしたいのですが、
ドロップまではtraceで受け取れてるのですが、Completeはだめです。
さんざんサイトを回ったのですが、情報がなく解決できていません。
有益なサンプルなどあれば教えてください。
flashbuilderでロジックとデザインの分離で、
子コンポーネント間でのデータのやりとりってどうしてます?
メインmxmlのヘルパーでaコンポネントのイベントをbへ流すようにしていますが、
Bのmxmlではイベントを受け取れますがBのビューヘルパーでランタイムエラーになってしまいます。
プロパティeventHandlerはないです言われます。
メインに書くのは下記です。
document.idA.addEventlistener( "event", document.idB.eventHandler);
FLASH CC更新しました。
Flash lite とAS2.0完全に切ったみたいですね…
400Mくらいのファイルでも起動は早くなりました。
確認してませんが、create JSってas2.0で書かなくて良かったのかな・・・
CCインスコしたらプロジェクトウィンドウとAS3のオートフォーマットが見当たらない
新規プロジェクトの作成もないしまさか無くなったのかしら?
CS4 actionscript3.0で質問です
※ stage.scaleMode=StageScaleMode.NO_SCALE;
フルスクリーンとノーマルを切り替えするボタンがあります
ボタンで切り替えする分には問題ないのですが
ESCキーを使い全画面から復帰するとhtml内のswfは
フルスクリーン化した時の大きなサイズのまま動いてしまいます
これはどのように対応したらよいでしょうか?
よろしくお願いします
772 :
771:2013/06/21(金) 12:27:40.90 ID:4+fUs6Te
stage.addEventListener(FullScreenEvent.FULL_SCREEN, hoge);
解決致しました
AS3が大好きです
PC9821-AS3
環境:flashbuilder4.7
各コンポーネントにコントローラを設定していて、
コンポAが生成された後にコンポBへAの情報を渡したいのですが、
コンポーネントの読み込み順が変わるとバグってしまいます。
どちらもcreationCompleteで子オブジェクトを作成し、
メインコントローラからapplicationCompleteイベントがですパッチされるのを待ちます。
コンポAが作成されたのちにコンポBへ単独で読み込みイベントをデスパッチすれば解決するとは思いますが、
もっと簡単な方法があればご教授くださいまし。
>>775 受け側の初期処理をcreationCompleteで処理するようにして回避できました。
777 :
Now_loading...774KB:2013/06/25(火) 22:12:19.47 ID:nWZZei4u
携帯のアプリを作ろうと思うのですが、FlexモバイルプロジェクトとActionScriptモバイルプロジェクトの違いがよくわかりません。
違いを教えてください。
ゲーム関係ならActionScriptモバイルプロジェクトで作った方がいいのかしら?
FlexだとMXMLでUIを定義できる。
ゲームアプリならあんまり関係ないかも。
StarlingとFeatherだっけ、こっち調べると幸せになれるかもしれない。
779 :
Now_loading...774KB:2013/06/25(火) 23:20:07.66 ID:nWZZei4u
ありがとうございます。
描画の処理とかに違いがあまりないなら、情報の多いFlexモバイルプロジェクトで
開発しようかなと思います
780 :
Now_loading...774KB:2013/06/25(火) 23:24:00.21 ID:nWZZei4u
StarlingとFeatherですか、調べてみます。
781 :
Now_loading...774KB:2013/06/28(金) 12:32:24.50 ID:TSZgMv/B
CS6 actionscript3.0使用してます
占いのFlashを作ろうと思い、条件式を記入したのですが、コンパイルエラー(1151: 定義 kekka (名前空間 internal) にコンフリクトが存在します。)が出てしまい上手くいきません
学校の課題で少しやっているのみなのであまりFlashのことを理解出来ていません
間違っている点を教えていただけると幸いです
var kekka = Math.floor(Math.random() * 2);
if (kekka == 0) {
gotoAndStop(25);
} else {
gotoAndStop(26);
}
こいつぁひでぇwww
784 :
Now_loading...774KB:2013/07/01(月) 12:55:18.84 ID:De4FUvqL
785 :
784:2013/07/02(火) 13:40:16.23 ID:ZEbtdN46
Flashとかどうなるんすか今後
AIRとしてならまだ生き残る。
デスクトップ用途はほぼゲーム向け。
大規模ゲームとかはやっぱまだまだFlash独壇場だしな
HTML5だとBGMファイル隠せなかったり面倒だし
モバイルアプリは結構AIRあるよ
AIRってiOSでも使えるんだね
アップルから散々叩かれてたイメージだけどジョブスも死んだしまた息を吹き返しそうすね
TextInputとSpriteでカスタムのNumericStepperを作成していて、
UIComponentを継承したクラスでTextInputとspriteステッパー生成してaddChildしてます。
これをコンポーネントとしてitemrendererで使用したいので、
下記のようにMXMLでCustomStepperのtextにアクセスできるようにしたいのですが、どのようにすればいいのでしょうか。
よろしくお願いいたします。
<itemrenderer>
<test:CustomStepper text="500"/>
</itemrenderer>
環境:flashbuilder4.7
>>790 設計ミスのようです。
解決できそうですー
>>789 ジョブスが息吹き返すって言ってるのかっておもったw
793 :
Now_loading...774KB:2013/07/19(金) 01:14:00.10 ID:Mfnb2cMk
FlashBuilderのスクロールの中にスロットのリールのような機能を作ることは可能でしょうか?
出来たらやり方を教えてください。
いみがわからん。
iOSのUIPickerview のような物が欲しいのではなくて?
795 :
Now_loading...774KB:2013/07/20(土) 19:16:06.66 ID:v3rqxABl
as3初心者です。
データプロバイダを使って、datagridの中のitemrendererの中のボタンのlabelを変更することは可能でしょうか。
datagridは下記のような形で、[Bindable]になっているのはgriddata、変更しようとしているのは設定値がchangeになっているlabelです。
よろしくお願いします。
<mx:DataGrid id="adg1" x="38" y="452" width="1130" height="322" alpha="1.0" backgroundAlpha="0.0" dataProvider="{griddata}">
<mx:columns>
<mx:DataGridColumn width="105" dataField="reg" headerText="header">
<mx:itemRenderer>
<mx:Component>
<mx:Button width="22" height="14" label="change"
click="outerDocument.openDataWindow(event);"
borderColor="#3C86B6" color="#FFFFFF" fillAlphas="[1.0, 1.0]"
fillColors="[#3E3F40, #000000, #3E3F40, #000000]" fontSize="12" fontWeight="normal"
textRollOverColor="#E3007A" themeColor="#00ADED">
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
>>795 griddata(ArrayCollection?)を元にscriptで変えるしかないんじゃないかな。
itemRenderer Banana Systemsでググってみよう。
パート1が読めば実装できそうです。
※当方も同じく初心者ですので悪しからず
>>795 label="{data.key}"
でいけなかったっけ
>>797 あ、そういうことか。。
もっと動的に変えたいのかと勝手に解釈してた。
>>796は無視してください。
799 :
Now_loading...774KB:2013/07/22(月) 08:43:56.51 ID:76jEN3Y3
795です。返信ありがとうございます。
やろうとしていることは、データベースからArrayCollectionに対応した形でデータを取ってきて、
ある行に特定のデータAが存在すればその行のボタンのlabelをhogeに、Aが存在しなければfugaにする処理です。
ここまでは、labelfunctionを使ったら行ごとにlabelが変化しなくて失敗。
currentのボタンのrowindexを取ってそれを元に同じ行のAを取得しようとしたら、
datagridは表示されている行のインスタンス使い回しっぽくて使いたいindexが取れずに失敗、という感じでした。
>> 796、797
ありがとう。情報調べたり試したりしてみる。
800 :
Now_loading...774KB:2013/07/22(月) 08:58:58.80 ID:76jEN3Y3
続きです。
データベースから取ってくる方法としては、
var result:SQLResult = state.getResult();
var gd2:ArrayCollection = new ArrayCollection(result.data);
で、データベースからのデータをgd2に一度入れて、
for(var i:int = 0; i < gd2.length; i++){
griddata.addItem({a:gd2[i].aaa,b:gd2[i]bbb});
}
みたいな形でやろうとしています。
このaddItemで、ボタンのlabelを指定するのが一番やりたい事で、
上に書いたlabelfunctionを使う方法や、curenntのrowindexを取得する方法は、
そっちがなかなか上手くいかなかったので試行錯誤の中でやろうとした方法です。
801 :
Now_loading...774KB:2013/07/22(月) 09:39:10.53 ID:76jEN3Y3
795です。解決しました。
label="{data.A}" を使って同じ行にあるAを一度labelに指定して、
その後ボタンにdataChange="button1_dataChangeHandler(event)"を設定して、
ボタン要素内のスクリプトでlabelに文字列があるかないかによって、
改めてlabelの文字列を指定しなおしました。
ありがとうございました。
そんな面倒な事しなくて良い気がするが。
判定用のメソッド準備してやって呼び出せばいいんじゃない?
lblfunc(data:Object):String な判定用メソッド準備して、
その中でdata
["key"]が存在するか判定して、label設定文字を返す。
あとは
lable="{outerDocument.lblfunc(data)}"
で呼んでやれば良いと思う。
表示のためのだけのデータなら、
>>800のように、データ複製する過程で表示用の列を作っちゃうと言う手もある。
それだったら、最初からSQLで列作ってしまえとも思うが。
label="{(data.hasOwnProperty('A'))? 'hoge' : 'huga'}"
こんなんだとできる?
プロパティが存在=データが存在
だったらそれでもいけると思う
805 :
Now_loading...774KB:2013/07/22(月) 18:34:33.57 ID:76jEN3Y3
795です。
最終的に802さんの方法を使わせてもらいました。
処理が二度手間にならなかった事と、条件判定にdata.A以外のデータも使えるのが良かったです。
803さんの方法だと、全部hogeになりました。
data.Aに入っているのが空文字等の場合でもデータが入っていると見なされたからでしょうか。
色々とアドバイスいただきありがとうございました。
>>805 そりゃhasOwnProperty関数が、プロパティがあるかどうかを判定する関数だからね。
807 :
Now_loading...774KB:2013/07/23(火) 19:27:59.34 ID:osJt0zJf
はじめまして。質問よろしいでしょうか。
Flash側でSimpleButtonを作って、MCのOBJと同様にそのボタンにプロパティを持たせる方法は
ありますか?
どなたかご教授いただければ幸いです。宜しくお願いします。
package{
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
public class Main3 extends MovieClip{
public function Main(){
var btn0:Btn0 = new Btn0();
btn0.x = 275;btn0.y = 200;
btn0.num = 0;//←ダイナミックなインスタント変数みたいに出来ないですか?
addChild(btn0);
btn0.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
var btn1:Btn1 = new Btn1();
btn1.x = 275;btn1.y=300;
btn1.num = 1;//←こちらも
addChild(btn1);
btn1.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
}
public function onMouseDown(event:MouseEvent){
var thisBtn:SimpleButton = event.target as SimpleButton;
trace(thisBtn);
trace(thisBtn.num);//←イベント発生させたボタンに割り当てた数値を返させたい
}
}
}
SimpleButtonを継承した自分独自のクラス作って、それにnumってプロパティを用意してあげれば可能だが
808さん、ありがうございます!
初心者なので、クラスの継承という発想は全くありませんでした
参考書を調べてみます〜〜〜!!!
810 :
Now_loading...774KB:2013/07/24(水) 18:10:33.85 ID:8RHl5bdC
AS3,FlashProCS4
テキストフィールドの Event.CHANGE(文字変更)での setSelection で質問です。
ステージ上にテキストフィールド(tFd)を置いて、中身が変更される度に、setSelection で全部の文字列に
ハイライトを適用しようとしているのですが、変更の度に文字列長が1(たまに2)になってしまいます。
※実際、テキストフィールドの文字も1文字か2文字しか表示されない
ASはテキストフィールドを tFd.text = "最初の文字列"; として
tFd.addEventListener(Event.CHANGE, tFd_onChange);// 文字変更の際にイベント発行
function tFd_onChange(evt:Event):void {
trace( "文字長さ= " + tFd.text.length );// これが毎度1か2になってしまう
tFd.setSelection(0, tFd.text.length );// 全部の文字を選択状態にする(ハイライト化する)
}
どうすべきでしょうか?
811 :
810:2013/07/24(水) 20:14:40.02 ID:8RHl5bdC
自己レス)
原因が分かりました。 全選択の状態でキーインすると自動的に1文字になっちゃいます。
なので、別のタイミングで全選択状態にすればOKでした。
812 :
Now_loading...774KB:2013/08/05(月) 19:05:24.83 ID:Ggd2baG5
win7 CS6 です
var a0101:String = "";
var a0102:String = "";
var a0201:String = "";
var a0202:String = "";
・・・
var a1001:String = "";
var a1002:String = "";
と初期設定をしたい場合に、繰り返し処理で初期設定を行いたいのですが、
頭が熱暴走してしまい方法が思いつきません。
ぜひ、お教えくださいよろしくお願いいたします。
どういう使い方したいのか不明なのでなんとも言えないですが。。
配列で管理してfor文で回せばいいのでわ
var ar:Array = new Array( a0101, a0102, a0103, a0104);
for( var i:int = 0; i < ar.length; i++ ){
ar[ i ] = "";
}
以降はar[ idx ]で参照
StringだけならVector配列で
補足:
ar[ "a" + i ]で連想配列にすれば変数いらないね
var max:int = 7777;
var ar:Array = new Array();
for( var i:int = 0; i < max; i++ ){
ar[ "a" + i ] = "";
}
ar[ "a0" ]
ar[ "a1" ]
ar[ "a2" ]
・
・
ar[ "a7776" ]
ar[ "a7777" ]
flashbuilder4.7でカスタムコンポーネントで作ってるのですが、
TextInputってSpriteに追加できないんです?
SpriteやTextFieldは親スプライトに追加できますが、TextInputができなくて困っとります。
簡単にですが、ソースはこんな感じです↓
class test extends UIComponent {
btn = new Sprite();
btn.graphics.beginFill(~);
btn.graphics.drawRect(~);
btn.graphics.endFill();
t = new TextInput();
t.text = "foo";
sp = new Sprite();
//できる
sp.addChild( btn );
//できない
sp.addChild( t );
this.addChild( sp );
}
TextInput → UIComponent → Sprite 継承順がこうだから
UIComponentを実装しても使えないお 直接TextInputを継承してもだめかい?
818 :
Now_loading...774KB:2013/08/09(金) 11:22:29.32 ID:rEpioE3B
>>817 ありがとうございます!
>>816みたいに実装したい場合は、textinputを継承したクラス内でspriteを作ってそこにthisを突っ込めばいいのでしょうか?
1つのコンポーネントみたいにしたいのですが。。
質問が曖昧でイマイチ意味がわからんお
方法てのは人それぞれなんだから好きなようにやればおk
その
>>816の「できない」って時のエラーはどんなんだった?
コンポーネントてのはライブラリ内に読込んでおかないとエラーになるんだよな
import fl.controls.TextInput;//クラスファイル内でインポートしただけじゃだめ
確かにわからんw
addChildもふるいしな。
821 :
Now_loading...774KB:2013/08/09(金) 21:47:57.85 ID:rEpioE3B
レス遅れましたサーセン
>>819 PANELっぽいカスタムコンポーネントをASで作りたくて、Uicomponentを継承したクラス内で、
コンテナ用のSpriteを作り、そのSpriteにボタンやshape、textfield、などを突っ込んで、コンテナをuicomponentにaddChildしたかったのです。
が、TextInputはスーパクラスなのでできないということを教わりました。
TextInputを継承したクラス内でコンテナをaddchildすれば1つのコンポーネントで完結するのかなぁと思いった次第です。
>>820 addchildが古い…だと?
最近のas3では一体なにが起こってるんです?
822 :
Now_loading...774KB:2013/08/09(金) 21:58:34.46 ID:V4FE+BVp
>>819 追記:
ただ表示されないだけでエラーなどはでないです。
TextInputをコンテナSpriteではなく、Uicomponentを継承したクラスにaddChildすると表示されます。
これは継承関係が問題ってので納得しますた。
importはspark.component.TextInputだったはずです。
TextInputを継承したクラスでdisplayobjectをaddChildできちゃうの?ってのが正しい質問かもしれないです。
OOP初心者なのでシャキっと質問できなくてすんません。
addElementだろと。
addChildだとコンパイル時に警告ださない?
>importはspark.component.TextInputだったはずです。
sparkのコンポーネントつかってるわけだし。
>TextInputを継承したクラス内でコンテナをaddchildすれば1つのコンポーネントで完結するのかなぁと思いった次第です。
これもわからん。
>
>>816みたいに実装したい場合は、textinputを継承したクラス内でspriteを作ってそこにthisを突っ込めばいいのでしょうか?
の説明だとはおもうが。
>>823 警告でないですね。。なんでだろ。
こんなんです。
spにいろんなものいれて表示させたいだけなのです。
◆as
public class PopupWindow extends UIComponent
{
public function PopupWindow() {
super();
this.init();
}
private function init():void{
var sp:Sprite = new Sprite();
sp.graphics.beginFill( 0xffffff );
sp.graphics.drawRect( 0, 0, bw, bh );
sp.graphics.endFill();
this.addChild( sp );
}
◆mxml
<view:PopupWindow id="pw" ~~~~~/>
>>825 UIComponentを動的に追加する場合はaddElementっぽいですね。
カスタムコンポーネントで
<view:PopupWindow id="pw" ~~~~~/>
とクラス指定しておくと、addElementする必要ないのかも。
外部スクリプト化してるので、mxmlコンポーネントでtextinputだけわけると、
いちいちイベントデスパッチしなきゃいけなくて、数が増えてくるともうただただ面倒なので悩んでござんす。
とりあえずデブ防止のため走ってきます。
やりたいことはわかったような気がするが、
> 外部スクリプト化してるので、mxmlコンポーネントでtextinputだけわけると、
> いちいちイベントデスパッチしなきゃいけなくて、数が増えてくるともうただただ面倒なので悩んでござんす。
の部分を考えるとやっぱりわからん。
<view:PopupWindow id="pw" click="hoge.onClickHandler(event)"/>
のようにイベント書くのが面倒なのか、
pwがTextInputでないために、pwの中に作ってるTextInputへのイベントを
書き直してやらないといけないから面倒なのか。
どっち??
IMXMLObject使ってるとか言わないよな?
> pwがTextInputでないために、pwの中に作ってるTextInputへのイベントを
> 書き直してやらないといけないから面倒なのか。
なんかおかしいな。
pwの中に置いたTextInputへのイベントを橋渡ししなきゃならんから面倒なのか。
かな。
>>827 IMXMLObject使ってます・。・
>>828 IMXMLObject使ってるので、タグにイベントハンドラは書いてないっす。
IMXMLObjectを実装したControllerでタグid.addEventしてる感じです。
なのでTextInputだけ他のコンポーネントとして置くと、
TextInputControllerから入力されるたびにPopupWindowControllerへデスパッチしなければならないのですっ!
もしかして、、わたくし根本的にやりかた間違ってます??
UIComponentのサブクラス、というかmx系のクラスはいろいろ変わってるからな
素直にUIComponentの方にaddElementしたほうがいいんじゃないの?
>>830 そうですね。
別コンポネントに分けるくらいなら同一クラス(UIComponent)に追加したほうがラクそうです。
flashbuilderって情報少なすぎて、どういう書き方が主流なのかわからんですわ。
仕事とかでas3使う人なんですか?
うーん、コントローラーへ分離までやってるの、になんかちぐはぐな・・・
> なのでTextInputだけ他のコンポーネントとして置くと、
> TextInputControllerから入力されるたびにPopupWindowControllerへデスパッチしなければならないのですっ!
>>824をみるかぎりでは自作PopupWindow内にTextInputを置きたいわけだよね?
そしたら、引用部分のようなことにはならんかと。
内部においてない前提となると、TextInputコントローラーの存在がよくわからなくなる。
TextInputとPopupWindowの両方が置いてある親コンポーネントのコントローラーでの話だろうし。
Flex4(Spark)使ってるわけだから、自作コンポーネント作るのなら、
GroupかSkinnableContainerを親にするのが楽かと。
MXMLコンポーネント作るとウィザードの初期表示がそうなるでしょ?
> flashbuilderって情報少なすぎて、どういう書き方が主流なのかわからんですわ。
Flex・FlashBuilderの情報は今はすくないけど、昔の情報でもかなり役に立つと思うよ。
おれもどういう書き方が主流なのかはわからんけど、IMXMLObjectを拡張した奴を使ってる。
俺は仕事でも使ってる。
ちなみに
>>830とは別人
>>832 内部に置きたいのですが、
UIComponentを継承したクラス内でSprite(displayObject)にはTextInputは入れられないってとこまできました。
> GroupかSkinnableContainerを親にするのが楽かと。
親っていうのは継承ってことです?
Groupを継承しても、結局中で作ったSprite(displayObject)にTextInputをaddChildできないのでは??
俺の先生になってください!!
親がSpriteであってほしい理由がわからんのだよね。
下記のように直接graphicsをいじってもいいし、
Spriteを入れたいのであれば、
SpriteVisualElementかUIComponentで一枚ラップしたなかに入れればいいわけだが。
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="
http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler(event)"
width="400" height="300">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function creationCompleteHandler(event:FlexEvent):void {
this.graphics.beginFill( 0xff0000 );
this.graphics.drawRect( 0, 0, this.width, this.height );
this.graphics.endFill();
}
]]>
</fx:Script>
<s:TextInput text="aaa"/>
</s:Group>
>先生
一日単価4万ならやるw
>>834 んーー、すいません、なんかうまく説明できてないみたいです。
◆CustomPopupWindow.mxml
<custom:CustomNumericStepper id="aaa"/>
<custom:CustomButton id="bbb"/>
ボタン押下でコントローラー側でTextInputの値をデスパッチ。
CustomNumericStepper.asにTextInputとSpriteで作ったStepperを追加して、<□> ←こんな感じのを作りたいときに、この箱としてUIComponentを使っていたのですが、TextInputが表示されずどうしようと思っていたのです。
public class CustomNumericStepper extends UIComponent
{
public function CustomNumericStepper() {
sp1 = new Sprite();
sp2 = new Sprite();
tinput = new TextInput();
this.addChild( sp1 );
this.addChild( sp2 );
this.addChild( tf );
tf.adddEvent( Event.Change?, textInputEvent );
sp1.adddEvent(MouseDown.Evt, mde);
sp2.adddEvent(MouseDown.Evt, mde);
}
}
あれ、これ、期待どおり動くんじゃ。なにで悩んでたんだ俺は。。あああ!これで座標計算がラクになるように、spriteでラップして
this.container = new Sprite();
this.container.addChild(sp1,sp2,tf);
this.addChild( this.container );
としたらtfが表示できなかったんです!
> 先生
時間5千円で8時間ならぜひお願いしたいですわw
ヽ(・ω・)/ ズコー
まぁよかったな
UIComponentの座標基準で各子要素の位置設定できるのかな。
みなさんありがとうございました!!
引き続き精進します!
わざわざSpriteに入れなくてもUIComponentに対してgraphicsつかえたんですね。。
spriteの親だから当然ちゃ当然ですけど。
みなさま本当にありがとうございました
環境:flashbuilder4.7
カスタムコンポーネント内でイベント登録はできるのですが、他のカスタムコンポーネントへデスパッチすることができなくて困っております。
コンポネントBのサイズ(幅高)をコンポネントAで設定できるようなものを作っています。
値の渡し方は、Eventを拡張したクラスにプロパテーを追加して、カスタムコンポネントAで設定しボタン押下でコンポネントBへデスパッチし、
コンポーネントBのコントローラー側(IMXMLObjectを実装)で受けるつもりだたのですが無反応です。。
コンポネントAはUIComponentを継承したasファイルです。
>>840 コントローラー側(IMXMLObjectを実装)で、ApplicationにaddEventしたらとれました。
けれども、
なぜコンポネントABともに、parentDocumentからdispatchしないといけないのかがわかりmせぬ。。
■コンポネントA(イベントデスパチ)
var cec:CustomEvent = new CustomEvent( CustomEvent.CUSTOM_EVENT );
cec.cWidth = Number( cwTinput.text );
cec.cHeight = Number( chTinput.text );
this.parentDocument.dispatchEvent( cec );
■コンポネントB(Controller)リスナ登録・ハンドラ
this.container = document as Container;
this.container.parentDocument.addEventListener( CustomEvent.CUSTOM_EVENT, handler );
private function handler(e:CustomEvent):void {
e.cWidth;
e.cHeight;
}
コンポーネントはよくわからんな コンポーネント専用のアクセッサーが
色々用意されてるみたいだし そういうルールなんじゃね?
詳しい解説は先生の出現を待て
コンポーネントAは、コンポーネントBを知らないから
逆も然り
元々どう書いてたのかが分からんと何とも言えんな
でも、サイズ変化ぐらいなら、わざわざカスタムイベントなんて作らんでも
出来合いのイベントあると思うんだけども
>>843 なるほど、目から鱗です。こういうものなのですね、ありがとうございました。
カスタムコンポネントmxmlにカスタムコンポネント(asクラス)をタグで置き。
さらにそのas内でボタンみたいのを置いて、
それが押されたときにコンポネントBにデスパッチするときは、
this.parentDocument.parentDocument.dispatch
になるてことで問題ないです?
あれ、てことは同一コンポネント間は自由にデスパッチできるのです?
※もちろんタグそのものが押される場合はコントローラー側からデスパッチになりやる。
>同一コンポネント間は自由にデスパッチできるのです?
試せw
>>846 ありがとうございます。
できなかったっです。
書き方がわるいのでしょうか?
<親mxml>
<custom:CustomA />
<custom:CustomB />
</親mxml>
コンポネントA.as(UIComponent)
this.dispatchEvent( customEvent );
コンポネントB.as(UIComponent)
this.addEventListener( customEvent, test);
this.parentDocumentはnullってました、両方のコンポネントのcreationCompleteを待たないといけないのかしら
お盆休みだろうに頑張るなぁ
> this.parentDocument.parentDocument.dispatch
> になるてことで問題ないです?
その条件では問題無いが、そんな事しなくて良い。
そんな事するとカスタムコンポーネントにする意味が無くなる。
素直に親MXMLまで含めてコンポーネント化を検討した方が良いとおもうが。
そうしないとこういう事になる↓
> this.parentDocumentはnullってました、
これについては正しい解決方法ではないが、親MXML側のcreationPolicyを弄ると回避は可能。
また、子から親へのイベント伝達については
イベントフローをググってみると良いかとおもう。
Eventの第二引数を調べろ。
>>848 > 親MXMLまで含めてコンポーネント化
そうですね。。
なにもわからぬまま始めたので、
カスタムコンポネントmxmlにさらにカスタムコンポネントmxmlを追加していってたのでこんな状態に陥ってます。
これからは、applicationに置くタグは全部asクラスで作っていこうと思いますた。
イベントのバブリングは書いてある記事をいくつか見たけどスルーしてました。
要するにthis.parentDocument.parentDocument.をバブリングで検知するってことなんですね。
やっと理解できました。
ありがとうございました!
850 :
Now_loading...774KB:2013/08/17(土) 13:55:12.56 ID:mBPd0VET
AS2.0ではステージ上にムービークリップを貼付けたら識別子で参照出来ていましたが
AS3.0ではどうやって参照すればよいのでしょうか?
やりたい内容はステージ上にムービークリップを貼付けて、
gotoAndStopで貼付けたMCのフレームを2フレームに移動させたいんですが。。。
そういう基本的な部分はたいして変わらんお
同じようにインスタンス名で参照できる
>>849 > これからは、applicationに置くタグは全部asクラスで作っていこうと思いますた。
なぜこういう結論になるのかがわからん。
853 :
Now_loading...774KB:2013/08/19(月) 20:33:43.33 ID:Al/3xTOv
>>852 えっ、
コンポネント内でのイベントのやりとりがラクだから?
コンポネント内でnewしたインスタンスにaddEventすれば、parentDocument.dispatchEventで常にデスパッチできますし。
さらにその子コンポネントからdispatchすることはほとんど無いと思いますし、インスタンス.プロパティーで値も取れるので、それをデスパッチすればいいかなと。。?
そもそもMXMLを使わない or MXMLでは出来ない というのであればわかるが、
Applicationタグだけ作って、MXMLで配置できるような設定までを含めた
ASクラスを作るとか面倒だと思うんだがなぁ。
IMXMLObject使ってるならイベントの部分だけ抜き出すだけだし、
ViewとControlが分かれてわかりやすくなると思うが。
何ならコンポーネントだけのプロジェクトに分ければいいだけだし。
855 :
Now_loading...774KB:2013/08/20(火) 20:39:44.52 ID:0exGSMjK
>>854 カスタムコンポネントmxml内に子カスタムコンポネントmxml置かれている場合、controlも二つ必要になるのがちょっと嫌なのと。
MXMLを使ったデザインをいまいち理解していないってのが大きいです。
list系itemrendererで各itemにカスタムコンポネントやカスタムイベントを付けるとき苦労しました。
だた始めからpureASで作ったほうが。。という甘えです。
ちゃんと理解すればそっちのほうがラクなのかもしれないっすけど。
>>855 >だた始めからpureASで作ったほうが。。という甘えです。
甘えとは思わんし、ASのみで作るなら理解できる。
が、Applicationタグを使うと書いてあるわけだから、MXMLを使うわけでしょ。
なんでそんな面倒なことをするかなぁと。
前後するが
> カスタムコンポネントmxml内に子カスタムコンポネントmxml置かれている場合、controlも二つ必要になるのがちょっと嫌なのと。
これ、おかしくないかい?
<MyComp1>
<MyComp2 id="a"/>
<MyComp2 id="b"/>
<MyComp2 id="c"/>
</MyComp1>
こんな感じであった場合、MyComp1、MyComp2にそれぞれについて
コントローラが1つになるように作ると思うんだがなぁ。
a,b,cの各コンポーネントのイベントやらを書くのはMyComp1側だし。
子のカスタムコンポーネントがいくらMXMLとASに別れていても、それで一つのコンポーネントでしょ?
>>856 ありがとうございます。
<MyComp1>
<MyComp2 id="a"/>
<MyComp2 id="b"/>
</MyComp1>
この場合、MyComp1にはコントローラを設定しますが、
MyComp1Controller implements IMXMLObject{
a.addEventHandler( ~~ );
b.addEventHandler( ~~ );}
}
MyComp2がmxmlでその中にさらにカスタムコンポネントがある場合、MyComp2にもコントローラが必要になりますよね?
コントローラものすごい数になりません?
いずれにせよ、ディスパッチイベントする時にparentDocument.parentDocument....となるのが嫌なのです。
バブリングで簡単解決できちゃうならそのほうが管理しやすそうですが。。
知識不足なのもので、
<Application>
<MyComp1 id="comp" />
</Application>
として、a,b,cのクラスを作り、機能を盛り込んだMyComp1.asを作ればいいかなという結論に達しました。
この場合、textInputの値をaクラスのプロパテーで保持しておき、MyComp1でnew a().propertyでアクセスできるようにしておけば、
デスパッチ処理はMyComp1からnew b().label.textへ代入するのがラクかなと。。
> Applicationタグを使うと書いてあるわけだから、MXMLを使うわけでしょ。
Aplicationタグ(本体?)は必ず必要じゃないのですか??
端的に言うと
> ディスパッチイベントする時にparentDocument.parentDocument....となるのが
こうなる書き方がおかしい。
コンポーネント化する=部品として再利用可能な部品を作る
わけだから、今回のように親、親の親が何であるかを知っておく前提だったら
コンポーネント化のメリットが薄れてしまうでしょ。
だからよく言われる「疎結合」を意識的に行わないといけないと。
IMXMLObjectを使うのは見た目とロジックを分離するためだよね。
そこまでやってるのに、なぜこの部分は無頓着なのかがわからないと言いたかった。
> MyComp2がmxmlでその中にさらにカスタムコンポネントがある場合、MyComp2にもコントローラが必要になりますよね?
> コントローラものすごい数になりません?
各コンポーネントに付き1つ必要なのが「ものすごい数」とは思えないのだが。
> バブリングで簡単解決できちゃうならそのほうが管理しやすそうですが。。
試してみたらどうだろうか。
> 知識不足なのもので、
> ※ 中略 ※
> デスパッチ処理はMyComp1からnew b().label.textへ代入するのがラクかなと。。
MyComp1のインスタンスがa,b,cじゃないの?よくわからない。
イベント使うんだったら、値の受け渡し自体をイベントでやればよくないかい?
DataEventとかTextEventとかあるわけだし。
> Aplicationタグ(本体?)は必ず必要じゃないのですか??
ActionScriptプロジェクトってのがあってだな
最近またActionScript始めました。
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
を使用して読み込み後に処理したいのですが
ブラウザでは(Chrome, IE10, FireFox)読み込み後の処理が行われません。
でもGOM Playerなら動くのです。昔のソースを見ても同様の処理で動いてました。
Flex3.0->4.0 とか ブラウザの環境も3年前と違いますし
何か仕様が変わってる部分があったら教えてください。
わからんのでエスパー回答で
イベントリスナーじゃなく
loaderInfoの info.bytesLoaded と info.bytesTotal を毎フレームチェックする方式でもだめ?
すまん infoてのはメンバ変数 private var info:LoaderInfo;
もしくはLoaderInfo型のタイムライン変数
862 :
Now_loading...774KB:2013/08/25(日) 21:25:36.82 ID:WDLRL+Dq
Eseclockという時計のFlashを動かそうと試みているのですが、
fl.video.FLVPlayBackクラスのインスタンスを生成しているタイミングでエラーが発生してしまいます。
■環境
Flash Develop 4.4.2
Flash player 11.7
Windows8 64bit
■fl.swcライブラリ
以下のサイトからダウンロードしたfl.swcをライブラリとして指定
http://evolve.reintroducing.com/downloads/ ■該当の処理(ソースコード)
//FLVの読み込み
_flvp = new FLVPlayback(); // ここでエラーが発生
_flvp.autoPlay = false;
_flvp.autoRewind = false;
_flvp.scaleMode = VideoScaleMode.EXACT_FIT;
_flvp.addEventListener(VideoEvent.READY, _flvpRedyHandler);
_flvp.load("movie.flv");
■発生したエラー
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at fl.video::FLVPlayback()[D:\DEVELOP\test_lib\fl\video\FLVPlayback.as:875]
fl.video.FLVPlayBackクラス自体、fl.swcをライブラリパスを指定するだけでは使用できなかったり
するのでしょうか。
> at fl.video::FLVPlayback()[D:\DEVELOP\test_lib\fl\video\FLVPlayback.as:875]
エラーがライブラリ内で出ているように見えるから
そのあたりは大丈夫なんじゃない?
実現可能かどうかを教えて下さい
FLASHで外部サイトのHTMLソースデータを取得し、
そのHTMLソースデータをjavascriptの変数へ受け渡すことは可能ですか?
javascriptで外部サイトのHTMLソースデータは取得不可能なので
FLASHであれば可能なのかな?と考えております。
jsで外部html取得できるんじゃ?
>>867 実際にやってみたら分かると思いますが
クロスドメイン通信はjavascriptでは不可能ですよ?
as3の質問です
MCをクリックするとそのMCが点滅するものを作りたいです
var blinkTimer:Timer = new Timer(50,8);
blinkTimer.addEventListener(TimerEvent.TIMER, blink);
mc.addEventListener(MouseEvent.CLICK,mouseHandler);
function mouseHandler(event:MouseEvent):void
{
blinkTimer.start();
}
function blink(event:TimerEvent):void
{
mc.visible = !mc.visible;
}
このように作ったのですが、1回目のクリックでは正常に点滅するのですが
2回目以降クリックすると点滅してくれません(MCが消えっぱなし)
どのように改善すれば2回目以降も点滅するでしょうか?
>>869 2回目以降のクリックイベントが重複してるんじゃ?
それでタイマーイベントも重複して変になってると
>>870 それは通信先に対して自分が権限や許可を持っていたら出来るでしょうよ
要はJSではこちらから一方的に外部ドメインのhtmlソースを引っこ抜くことは無理
>>872 そこのページにFlashに関しても色々書いてあるよ
ってかあなたのやりたいことのタイトルで記事書いてあるんだから試してみればいいのに
>>873 だから無理だっっーの
別サイトの相手の許可を得ずにJSでHTMLソースを取得するのは不可能
あんたはSAME DOMAIN POLICYとか
CROSS DOMAIN POLICYも知らない素人か?
>>873はできるっていいたいのかどうかがいまいちわからん。
「あなたのやりたいこと」も正しく認識できていないようだが。
そのクロスドメイン制限を突破する方法が書いてあるんだから、
それで無理なら無理なんじゃね
「クロスドメイン制限を突破する方法」が書いてあるのは間違いないようだが、
クロスドメイン制限を突破して「なに」が得られるのかがわかってないってことか。
880 :
869:2013/08/28(水) 01:09:01.88 ID:CjrHy3W1
>>871 ありがとうございます
どう記述すれば重複しないようになりますか?
881 :
869:2013/08/28(水) 01:17:57.65 ID:CjrHy3W1
var blinkTimer:Timer = new Timer(50,8);
blinkTimer.addEventListener(TimerEvent.TIMER, blink);
blinkTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
mc.addEventListener(MouseEvent.CLICK,mouseHandler);
function mouseHandler(event:MouseEvent):void
{
blinkTimer.start();
}
function blink(event:TimerEvent):void
{
mc.visible = !mc.visible;
}
function onComplete(event:TimerEvent):void
{
blinkTimer.stop();
}
タイマーの繰り返し終了時にblinkTimer.stop();と記述すれば重複はなくなるかと思って上記のようにしましたが
それでも変わりませんでした
>>881 .stop() の変わりに .reset() 使ってみるとか?
あと2回目以降消えたままってのは、2回目のクリック直前はもちろん mc は表示されてるんだよね?
>>877 違うだろ
>>874にも書いてあるように
取得先のサイトにもテコ入れしなきゃ
実現できないってことだろ
>>882 resetでいけました
ありがとうございました。助かりました
>>883 > 取得先のサイトにもテコ入れしなきゃ
> 実現できないってことだろ
そこは当たり前のことで、そういうことをいってるんじゃない。
JSONPで突破した場合、それで得られるものはそいつがほしい「HTML」じゃないだろと。
なんのためのクロスドメインだよ
許可されてないのにパクろうとすんなよ…
コミュ障同士のやりとりってすげえな。
結論言っちゃえばFlashでも無理だろ
ここの住人でも答えられない質問って結構あるんだなw
お、おう
答えられないってか、実現できないんじゃないか?
892 :
Now_loading...774KB:2013/08/31(土) 18:46:59.49 ID:d7akHP6W
var a:* = b;
これってどういう意味?
aの型は決めずに、bの型に対応させるって意味
FlashのCS6で開発しています。
FileReference.load()でファイル選択ダイアログを開いたときに
windowsプロジェクター(exe)でパブリッシュした場合
ダイアログの開くボタンが"保存"と表示されてしまいます。
Ctrl+Enterで起動した場合や、HTMLパブリッシュした場合には
きちんと開くと表示されます。
FileReference.load()で表示されるダイアログで"開く"と表示される解決方はありませんでしょうか。
CS4までは問題ありませんでした。
win7 CS5.5です
var list1:ListMc=new ListMc();
addChild(list1);
としています。
newするムービークリップが増えてきたので、配列とfor文を使おうと思っています。
var McNumArray:Array = ["1","2","3","4","5"];
for (var i:int=1; i<=5; i++) {
}
この後に、ムービークリップをnewする時と、addCholdを行う場合に。変数listに配列の数字を結合する場合にどうすればいいのかわかりません。
ぜひお教えください。よろしくお願いいたします。
>>895 getDefinitionByName
>>894 ほんとだ。回避方法は無いだろうね。Adobeにバグ報告するとか?ちなみにbrowse()だよね?
どうしても気になるなら、CS6のAIRのランタイム付き書き出しで書き出すとかかな。
ファイルサイズ恐ろしくでかくなるけど。
>>894 browse()でした。
もしくは、CS4でターゲットをFlash Player 11で
パブリッシュする方法はありませんでしょうか。
そりゃ無理な話だよ
横から&未確認でスマンが、FP10をターゲットにしたら問題なかったりしないかな
901 :
Now_loading...774KB:2013/09/03(火) 13:11:36.68 ID:X+Uolkag
初歩的な質問ですいません
hogeMc1.x = 100;
hogeMc2.x = 100;
--->
hogeMc30.x = 100;
としているコードを、for文を使って処理したいと思っています
hogeMcの後に付ける連番の付け方を教えてください
this["hogeMc"+i].x = 100;
904 :
901:2013/09/06(金) 16:56:02.84 ID:8PXnKp7Q
配列アクセス演算子で解決しました!
ありがとうございました
905 :
Now_loading...774KB:2013/09/10(火) 18:07:09.15 ID:M5W+vy1N
var Ax:MovieCrip=Object(root);
Ax.list1.x=100;
Ax.list1.y=100;
を配列アクセス演算子を使い
var Ax:MovieCrip=Object(root);
var hNum:int=1;
this["Ax.list"+hNum].x=100;
this["Ax.list"+hNum].y=100;
としてみましたが、エラーがでてしまいます。
たぶん、変数Axと配列アクセス変数の部分がおかしいためと思いますが、
ネットで検索してもこれという解決策が見つけられません。
よろしくお願いいたします。
>>905 まずthis.Ax(インスタンス変数)がないので
this["Ax.list1"]にはアクセスできない
つぎに階層はドットでつなげず配列アクセスでつなげなくてはならない
this["Ax"]["list1"]
1,Ax["list"+1].x
2,Axをインスタンス変数にした上でthis["Ax"]["list"+1].x
このどちらか
お前らの培った、その技術と経験が、
数年後には、ただの忌むべきゴミ屑になると思うと…………
責めるならadobeを責めろ。
ゴミと思ってくれるとうれしい。
残存者利益が多い方がいい。
AS3はEECMAScriptを拡張したものだから別に無駄にならないしな
adobeが潰れたらFlashに関する技術はどこかコミュテニィにでも全部渡す言ってるし終わることもないだろ
910 :
Now_loading...774KB:2013/09/21(土) 17:25:46.76 ID:Zxk9supw
>>909 AS3は今のところ移植先無いだろ。
無駄にならないのはAS1。
AS1って今どこで使うの?
912 :
Now_loading...774KB:2013/09/26(木) 16:07:59.86 ID:lq9HpavC
Object(root).Mcのフレームで
var a:int=0; var b:boolean=false;
var test:testClass=new testClass);
test.testFnc(a,b);
と変数を宣言して,外部クラスを呼び出して引数にて変数を受け渡して
package{
public class testClass {
var C:int; var D:boolean;
pjublic function testFnc(C,D){
C++;
D=true;
return
}
}
}
外部クラス内で値を変えて、元のObject(root).Mcに変更した値を戻したいのですが上手くいきません。
よろしくお願いいたします。
適当に書きすぎ。
コンパイル通るtestClassのソースをそのまま張ってよ。
くそわろた
エスパーするとプリミティブ値は参照で渡されないのでreturnで返すしかない
その場合返り値として取れるのはひとつだけなので
もしくはObject(のような参照を渡せるもの Objectはオススメしないので自分でデータクラスつくったほうがいいかも)を渡して操作する
var obj:Object={a:0,b:false};
test.testFunc(obj);
trace(obj.C);
testFunc(obj:Object):void{
obj.a++;
obj.b=true;
}
×trace(obj.C);
◯trace(obj.a);
916 :
Now_loading...774KB:2013/10/02(水) 19:04:01.70 ID:ixKYVTRj
TextFieldで"をrestrictしたいときはどうやれば良いですか?
917 :
916:2013/10/02(水) 19:08:38.62 ID:ixKYVTRj
自己解決しました
var str:String = '"';
テキスト.restrict = "^" + str;
これで行けた
>>917 おめ
たぶんだけど、バックスラッシュで"をエスケープしてもいけるかな
テキスト.restrict = "^\""; みたいな感じで
919 :
Now_loading...774KB:2013/10/03(木) 04:00:21.73 ID:wOOr2WPC
ループ素材のFlvファイルをNetConnectionでループ再生させています。
再生される事自体は出来るのですがループ時に一瞬映像が切れてしまいきれいにループしてくれません。
コードを再生部分だけにしても症状は改善されず、また再生自体はされているので調べても該当問題が見つかりませんでした。
(CS5/player9でパブリッシュしていた時はなめらかでしたが、必要な命令上CS6/player11.2で実行する必要があるんです)
Flaファイルと素材等をアップさせていただきました。使用バージョンはCS6、AS3.0、player11.2です。
http://www.dotup.org/uploda/www.dotup.org4548752.zip.html どうぞよろしくお願い致します。
補足です。
CS5にFP11.2のswcを導入してパブリッシュしてみたところ同様の問題が発生しました。
FP10に戻したら今まで通り正常に動作しました。
しかしながら右クリック入力を利用したいためFP11.2以上が必要です。
FP11.2以上でもちらつかずなめらかに再生させる方法はないでしょうか?
Objectの長さを取得するにはどうしたらいいでしょうか?
JavaScriptでいう Object.keys(myObj).length のようなものに該当するやり方を教えてください
for in で列挙するしかないんじゃないかな。
ぱっと調べた感じObject型ではそういうメソッドはないように見える。
自分でObject継承したクラス作ってkeysメソッド作ってやればいいんじゃない?
>>922 ありがとうございます
やはりありませんか・・・
自作することにします
希望とはちょっと違うと思うけど、describeTypeってのがあるでよ
>>924 仰る通り、ちょっと違いましたが、
わざわざありがとうございました。
926 :
Now_loading...774KB:2013/10/12(土) 13:39:15.85 ID:9I9I0Hj/
ActionScript3のエントリーポイント(初めに実行されるメソッド)ってどこよ。
教えろください。
ドキュメントクラスのコンストラクタ
ローカルのhtmlをブラウザで出すのはどうやるんだっけ?
var req:URLRequest = new URLRequest( "/help.html" );//help.htmlは本体swfと同階層
navigateToURL( req, "_blank");//ブラウザは立ち上がるがホームで設定したページが表示されてしまう
930 :
Now_loading...774KB:2013/10/18(金) 16:39:54.47 ID:MemT2L45
文字コードの変換を行うにはどうしたらよいでしょうか?
UTF-8 から Shift_JIS や Shift_JIS から UTF-8 に変換したいです。
932 :
Now_loading...774KB:2013/10/18(金) 17:59:29.47 ID:G9485Ttu
おれにも知恵を貸してくれお!
PNG画像を同階層に置いて外部読込みすると正確な色を抽出できないんだ みんなもテストしてみてくれ
以下を1フレームにコピペ 同階層にwhite.png(真っ白一色)と名前付けたPNG画像置く
var loader:Loader = new Loader();
loader.load( new URLRequest( "white.png" ) );//同じ階層に置いた真っ白なPNG-8画像(アルファ無し)
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, function( e:Event ){
var obj:DisplayObject = e.currentTarget.content as DisplayObject;//目視用の型変換
var bm:BitmapData = new BitmapData( obj.width, obj.height, false );//falseは透明無し
bm.draw( e.currentTarget.content );//塗り(そのまんまコピー)
//bm.draw( obj, null, null, null, null, false );//色々やってもだめだ…
addChild( obj );//目視用
trace( bm.getPixel( 1, 1).toString(16) );//ffffffと出るはずがfdfdfdとなる なんで?????
} );
追記
画像をgifにしgifで読込むとffffffと出る 他の色でも正確に抽出される
なぜなんだろ 画像ソフトの設定なのか もしくは bm.drawでのコピーがまずいのか?
PNGでの色抽出を成功させたいです 他に方法があったらご教授よろです
934 :
Now_loading...774KB:2013/10/18(金) 18:28:32.58 ID:MemT2L45
>>931 ありがとうございます。
ただ、実際にやりたい事は、
ファイルやURLからの読み込んだデータではなく、UTF8のソースコード上に指定した文字列を変換したいので、
その方法を知りたいです。
言葉足らずで大変申し訳ありませんでした。
よろしくお願いします。
>>932 24か32ビットじゃないとだめと思われる
PNG外部読込みのはバグ認定でいいよ
埋め込みだとちゃんと色値取れるんだから
>>934 System.useCodePage = true;
>>937 チャンクといわれても… こんなん出ました 何かまずい箇所があるでしょうか
IHDR Size:13 Byte Offset:8 CRC32:29E16883 / verify: true
gAMA Size:4 Byte Offset:33 CRC32:36058AE9 / verify: true
tEXt Size: 25 Byte Offset:49 CRC32:61C9653C / verify: true
PLTE Size:6 Byte Offset:86 CRC32:6B62BF3E / verify: true
IDAT Size:228 Byte Offset:104 CRC32:E1C10A36 / verify: true
IEND Size:0 Byte Offset:344 CRC32:AE426082 / verify: true
gAMAチャンクがガンマ値なんだが、その値が効いてるんではなかろうか。CRC32の値出されてもわからんw
試したわけではないからわからんが、ブラウザだとIEとモダンブラウザでPNGの色味が違うときはまず疑った。
safariも面倒だった覚えが。
fireworksでチャンク削るとかなんかそんなオプションなかったっけ?
いやいやw ガンマ値で色値が変わるなんて困るよw
それなら埋め込みでも変わるべき 何で外部読込みの時だけ影響するんだ
作ってるのはゲーム系で PNG画像をそのままマップデータとして扱いたいんだ
個々のエンドユーザーにマップを作ってもらう仕様なんだけど 一々ガンマのチャンク削るとか
そんなの説明したらメンドクサくてプレイしてもらえないでしょ?
ちなみに
>>939さんも
>>932のコードで色値が変わるよね?
ああ ブラウザによってガンマ値が異なってて
それをHTML等の外部読込み時に忠実に再現するって事なのかな?
それにしたってローカルからの読み込み時は無視してもらいたい
getPixelの方にガンマ値を無視するチェックでもありゃいいのにな
>>940 面倒だけどFlashBuilderで試した。
が、fdfdfdになったぞw
で、gAMAチャンクを削除した画像だとffffffという結果。
ちょっと気になったんで、回避方法は調べてみよう。
気長に待てw
ちがう、fefefeだった。<なにもしてないpng画像
gAMAに限らずチャンク全削除だった。
現実逃避の時間がなくなってきたんでまた今度
横から失礼
頑張れ!回避方法期待してます
結局デコーダ自作じゃないと無理という結論に。
> それにしたってローカルからの読み込み時は無視してもらいたい
> getPixelの方にガンマ値を無視するチェックでもありゃいいのにな
ファイルガンマが設定されているということは、
そのガンマ値での表示が正しい表示と、作成者が決めたはず。
だからFlash環境では正しく表示されるべき方(=チャンクを正しく解釈すること)を選択することは理にかなっている。
問題は、そういう設定があるのを知らずに使ってる人が多いってことだと思う。
画像作成者=PNG利用者の場合、チャンク削るなりして正しい画像にすればいいが、
システム何が正しいかわからないのだからしょうがない。
となると、システムに準備されていない限り、
プログラム作成者が正しいと思うファイル読み込みで処理するしかない。
同じように悩んでる人が居るね。
http://wonderfl.net/c/t2BDW 目的は違うけど、デコーダ作っている人がいた。
http://d.hatena.ne.jp/heriet/20090123/1232650068 こんなもんじゃないだろうか。
>>946 解決しました ありがとうございました!
回避方法は PNG画像をURLLoaderでバイナリで読み
そこのherietさんのデコーダにぶっ込み生成された画像(色値のみ?)で正確な色値を抽出できました
当初はByteArrayから直接色データを取り出そうとしましたが超メンドイのであきらめましたw
…と思ったらだめでしたOTZ
自分の作品に組み込んだらいくつかの色が正確に抽出できませんでした
今までのように全滅とはならなかったのは救いですが
誰かPNGのバイナリデータから色値のみを抽出するデコーダクラスを作ってくれないかな…w
>>946のリンクの奴の、パレットとかそこらへんは読んだ?
どう悪いかわからんとどうしようもない。
AS1.0でテキストフィールドに配列の一部を表示したいんですけど
tf.variable = "array[3]";
これだとうまくいかない……
tf.variable = "array";
ではさすがに読みづらいし、何か上手い方法はないですか?
tf.text = array[3];
厳密にやるなら
tf.text = String(array[3]); か tf.text = array[3].toString();
かね。エラー出るかどうかはわからん。
TextFieldのvariableプロパティなんて使ったことないわ。
952 :
Now_loading...774KB:2013/10/31(木) 12:32:14.52 ID:Oy+baEdM
いつの間にかFlash Player プロジェクターでexe化できなくなってる
Flash CC もプロジェクト書き出しはないみたい
古いの使え以外に何か代替方法ありますか?
無いんだなこれが
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
public class Main extends Sprite
{
public function traceKeyDown(event:KeyboardEvent):void {
trace("key down: " + event.charCode);
}
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
addEventListener(KeyboardEvent.KEY_DOWN, traceKeyDown);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
}
}
}
これでコンパイルしてみたけどtrace文が出力されない
キーボードの文字が押されたかどうかを取得したいがどうすればいいの?
addChildした親MCの子MCをaddChildしています
子MCからイベントリスナーで親のMCに定義してある
functionを参照させたいのですがエラーがでてしまいます。
親MC 関数定義
function do_Open():void{
trace("ボタンを押しました");
}
子MC イベントリスナー
hoge.addEventListener(MouseEvent.CLICK,Open);
function Open(e:MouseEvent):void {
parent.do_Open();
}
エラーメッセージでは、親MCに書かれている関数が見つからないぞ。
という感じだと思うのですが解決方法がわかりません。
よろしくお願いいたします。
こうじゃね? ( parent as MovieClip ).do_Open();
てかその構造が変だな ボタンも親で定義しる
parentはDisplayIbjectContainerだからな
実行時はともかくコンパイル時にはdo_Openメソッドが保証されてないのでその親クラスでキャストする
>957
>958
( parent as MovieClip ).do_Open();にて思うような動作をさせることが出来ました
勉強のためにキャストする方法も試してみたいと思います。
どうもありがとうございました
可能
あなたの言う地図上での最小移動単位でグラフを作る必要がある。
へクスなのかスクエアなのかどうするつもりかで変わる。
962 :
960:2013/11/06(水) 10:33:22.74 ID:iZP6+rB4
>>961 本当ですか!ありがとうございます。
スクエアのつもりです。
ドラクエタイプを想定するとマップチップごとの移動コストがグラフになるだけだから、
スタート地点、ゴール地点が何処だろうと処理しやすいと思うんだけど。
964 :
Now_loading...774KB:2013/11/09(土) 13:33:54.82 ID:+s1+OvXv
Loderを作り外部画像を読み込ませて、
画面内のボタンを押すことで別画像を読み込ませたいと思っています
ボタンを押すことで、最初の画像もRemoveされて
URLRequestの内容も変わっていることがトレースで確認できるのですが
画像表示用の表示用McをNewしてみると、古い画像を読み込んでしまいます。
Removeしても、古い情報を持ったMCが影にスタンバっているような感じなのですが、これを削除して
新規Mcとして生成、新規URLRequestを読み込ませるためにはどうしたらよいのでしょうか?
すみません、実現可能かどうかの質問をさせてください。
自分のサイトに設置したflash(swfファイル)が
訪問者によって実行される度に
他サイトのとあるページのHTMLソースを取り出すことは可能でしょうか?
それと、もし可能だった場合は
その際のリファラ情報はどうなりますか?変更可能ですか?
可能、可能
969 :
Now_loading...774KB:2013/11/13(水) 17:01:26.25 ID:jY5ikZrl
不可能だろ
970 :
Now_loading...774KB:2013/11/14(木) 07:22:49.04 ID:TC9ZzzID
いいえ、可能です
この話題何度目だ?
不可能でしょ
Starling + AndroidでflvのVideoを再生しています。
デスクトップでデバッグすると普通に再生されますが、
実機だと色が少し暗くなります。Videoの上に半透明の
黒をのっけたようなかんじです。なにか解決策がありましたら
教えて下さいお願いします。
ちなみにstagevideoクラスではなく、videoクラスを使っています。
>>973 やっぱりデスクトップも色が若干黒くなっていました。
仕様でしょうねたぶん。
as1のtextfieldでtf.wordWrap=true;の時
表示範囲の右端に「」が含まれてると
勝手に改行されて一行の文字数と合わなくなっちゃうんですけど
自動整形をなくして右端に「を表示させる方法は何かないですか?
chromeでflashを動作させるとアンチエイリアスが綺麗にかかりません
対策法をご存知のかたいらっしゃいましたらお願いします
978 :
Now_loading...774KB:2013/11/23(土) 00:02:04.99 ID:duI7peTC
FlashDevelopで[Embed(source=〜でファイルを埋め込んで使っています
エディタからプロジェクトをテストすると埋め込んだオブジェクトを表示できるのですが、bin/htmlを実行しても表示されません
どんな問題が考えられますか?
やってることはFlare3Dで.f3dファイルの埋め込みです。
ちなみに埋め込まずにURLLoaderでファイルを読み込んでも同じ結果です。
979 :
Now_loading...774KB:2013/11/23(土) 22:30:45.73 ID:+4L9Ib7x
>>977 IEを使うんだ
>>978 Flare3Dなどわからん 専用スレないのか
おれにも教えてくれ フォーカスをセットしたボタンを消すとstageに定義したキーボードイベントも
反応しなくなる(キー入力での処理が効かなくなる) Tabキーを押すと復活するんだけど
Tabキー押下以外でコードで復活させる事はできないの?
stage.focus = stage;//これはだめだった
勘違いだった stage.focus = stage; でフォーカス戻ったw
>>978 エラーが出てるんじゃなくて?
wmodeとか
982 :
978:2013/11/24(日) 01:01:29.37 ID:4JZA8CY4
>>981 デフォルトのparams.wmode = “direct”;
Spriteに画像を読み込むのとかはちゃんと表示されてるから、bin/配下からだと何か必要な物に対するパスがズレるのかなと思ってる
>>982 それにしたってファイル読めてないならなんかエラー出ると思うんだけどなあ
telemetry有効にしてScoutで見たらStage3Dのところにエラーは出ていない?