ヤッチマイナシコ

ゆうて いみや おうきむ こうほ りいゆ うじとり やまあ きらぺ ぺぺぺぺ ぺぺぺ ぺぺぺ ぺぺぺぺ ぺぺぺ ぺぺぺ ぺぺぺぺ ぺぺ

ナシコ
  • 0810
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  

11/9

Vmware Fusion 2.0 ぶちこんでみた

早速買ってきてぶちこーー。


快適ぃぃ!!···とは言えなかった。。。

Macスペック
CPU 2.2GHz Core 2 Duo
メモリ 2GB 667MHz DDR2

Fusionへの割当
メモリ1GB

これでも結構モッサリしてます。
通常使うだけならこれでおkなのかもしれない。

やりたかったことは、MacでFlashを使い、Fusion Win側でFlashDevelopにてコーディングという組み合わせ。
落とし穴としてFusion Win側のFlashDevelopからMacのAppを呼べません···。
Ctrl+Enterでのパブリッシュの実行ができないって···これはこれは致命傷ではあーりませんか(´-`)
今現在の方法は切り替えてやるしか無いようですな、、、うーむ面倒。

Fusion買って後悔はしてませんよ!!そりゃもう後悔はしてません...。
ただ思うのは素直にWinのFlashをアップグレードすればよかったってことさ...。

さて、、メモリを4Gにして遊ぶかな( ´-`)フゥー

2008/11/9 - 21:00 | コメント (2) | トラックバック(0)

Category : FLASH AS3Mac買い物あれこれ

TrackBack : http://nashiko.net/blog/1106/trackback

10/23

外部swfの読込み削除でのメモリリークを解決

お題のとおり解決した。しょーもない理由で。。。

どういう風にテストしてたかを説明します。

1.外部swfを用意。中身の動きは無し。
2. loader = new Loder()で外部swfをロード。
3.ロード完了後、外部swfをaddChild()。
4.loaderをunload()。
5.外部swfをremoveChild()。
6.loader = null にする。
7.2へループ。


通常、unload()、removeChild()、 loader=null で解決するらしいのですがうまくいかない。
あれこれ悩んで深夜5時。。。
次の日これをWindowsで試したらバッチリガベコレしてくれたんです。
え、Mac駄目なん?とか思って画面と会話すること2時間ぐらいでFlashPlayerのバージョン問題だということに気が付いた。

最初に疑えっつーのね···。何回これにやられてんだ。

バグ発生してたバージョンは 9,0,115,0
変更後のバージョンは9,0,124,0です。

10にしてもよかったんですけど、なんとなーく最低ボーダーラインが知りたかったからコレにしました。


実験用に作成したファイル
ダウンロード

2008/10/23 - 1:47 | コメント (0) | トラックバック(0)

Category : FLASH AS3

TrackBack : http://nashiko.net/blog/1099/trackback

10/3

虫みたいな動き - AS3

テスト用に作ってみました。



元データをBitmapで保持して、色がある部分を選別してMovieClipにPixelCopyしたのを貼付けて動かしまくってる。
だからサイズがでかいと重たくなるのが致命的。
他の方法が思いついたけどなかなか作る時間が···。


とりあえずサンプルASをペタペタ。
ダウンロード

※コーディングミスにより突然処理が終わるバグがあります。

// 2007/10/14 追記
修正版 ダウンロード

2008/10/3 - 1:02 | コメント (2) | トラックバック(0)

Category : FLASH AS3

TrackBack : http://nashiko.net/blog/1088/trackback

8/24

URLVariables でPHPと通信 - AS3

AS2でいうとSendAndLoadになるかな。

さくさくっと書いていきますね。

Actionscript 3 :
  1. // データ作成
  2. var url_Variables:URLVariables = new URLVariables();
  3. url_Variables.str = "hoge";
  4. url_Variables.num = 5;
  5.  
  6. // データ送信先
  7. var url_Request:URLRequest = new URLRequest();
  8. url_Request.url = "variables.php";
  9. url_Request.method = URLRequestMethod.POST;
  10. url_Request.data = url_Variables;
  11.  
  12. // 送信
  13. var url_Loader:URLLoader = new URLLoader();
  14. url_Loader.dataFormat = URLLoaderDataFormat.VARIABLES;
  15. url_Loader.addEventListener(Event.COMPLETE, completeHandler);
  16. url_Loader.load(url_Request);
  17.  
  18. // 受信
  19. function completeHandler (evt:Event):void{
  20.  var vars:URLVariables = new URLVariables( evt.target.data );
  21.  var tField:TextField = new TextField();
  22.  tField.autoSize = TextFieldAutoSize.LEFT;
  23.  tField.border = true;
  24.  tField.appendText(vars.comp);
  25.  tField.x = tField.y = 20;
  26.  addChild(tField);
  27. }


続いてPHP
PHP:
  1. <?php
  2.  $str = $_POST['str'];
  3.  $num = $_POST['num'];
  4.  $comptxt = $str.$num;
  5.  echo "comp=".$comptxt;
  6. ?>


こんな感じですね。

これで問題になるのは、パブリッシュしたときにPHPの実行結果ではなくて中身を丸ごと持ってくるのでEvent.COMPLETE時の処理でエラーになり、その後の処理が止まってしまいます。
なのでtry,catchで分岐させた方がいいかもしれません。

localhostではうまく動きますけどね。
実行結果は hoge5 が返ってきます。

source FLASH CS3 - variables.zip

2008/8/24 - 15:54 | コメント (0) | トラックバック(0)

Category : FLASH AS3

TrackBack : http://nashiko.net/blog/1069/trackback

8/21

削除が面倒 - AS3

むっずいわー。

毎回これ言ってる気がする。リアルでも。

addChild、removeChild、addEventListener、removeEventListenerでちょっと悩み中。
通常に使う分は全く問題ないんだけど、正しく管理しないとremoveEventListenerの消し忘れとかでメモリーリークとかすぐにおこしそうで><

けども管理が面倒だーっっっってなわけで試行錯誤してます。
もうため息しかでねぇ。。

Actionscript 3 :
  1. // フレームに記述
  2. var obj:Sprite = new Sprite();
  3. var g = obj.graphics;
  4. g.lineStyle(1,0x000000,1);
  5. g.beginFill(0x000000,1);
  6. g.drawRect(10,10,100,100);
  7. addChild(obj);
  8.  
  9. obj.addEventListener(Event.ENTER_FRAME, hogeEnter);
  10. obj.addEventListener(MouseEvent.MOUSE_DOWN, hogeMouseDown);
  11.  
  12. function hogeEnter(evt:Event){
  13.  trace("hogeEnter!");
  14. }
  15.  
  16. function hogeMouseDown(evt:Event){
  17.  trace("hogeMouseDown!");
  18.  evt.target.removeEventListener(MouseEvent.MOUSE_DOWN, hogeMouseDown);
  19.  removeChild(obj);
  20. }


1つオブジェクトを作ってそれにENTER_FRAMEとMOUSE_DOWNのイベントリスナーを登録します。
そしてMOUSE_DOWNでオブジェクトを消去するだけのプログラムです。
ついでにMOUSE_DOWNのイベントリスナーも消去してます。

でもこれだとENTER_FRAMEは走りっぱなしになるんです。
あたりまえっちゃー当たり前。消してないんだもんなーハハハw

こういうことは避けないと何にせよ問題が出てくるって話ですよ。

ENTER_FRAMEも消せばいいやん



おっしゃるとおりでございます!!


まぁ通常理解している範囲だと確実に消しますが、
も し も ! 
の時の為の保険みたいなもんがほしいわけです。

で、今のところ答えは無い(´-`)

けど、これでいける?ってのは一応ある。

Event.REMOVED_FROM_STAGE

このイベントリスナーを登録したオブジェクトが削除された場合に通知してくれる。
しかも親オブジェクト内に子オブジェクトがある場合で、親を削除した場合に子にも通知してくれる?と思う。。。
これはもうちょい検証しないと分からない。

とりあえず徐々にですが前進しとります。


//----
なんとなく作ってるもの。現在表示っつーかaddChildした物の一覧が見れる。

機能を付加したらなかなか面白いかな。



※2008/08/24 追記
Event.REMOVED_FROM_STAGEを追加したオブジェクトを消すとイベントが走るのでうまい具合にスクリプトを組めばよさそうです。
子オブジェクトにEvent.REMOVED_FROM_STAGEを追加し、親オブジェクトを消した場合でもイベントが走りました。

2008/8/21 - 2:43 | コメント (0) | トラックバック(0)

Category : FLASH AS3

TrackBack : http://nashiko.net/blog/1066/trackback

8/11

removeChild で一括消去 : AS3

AS3難しいしー慣れないしーで試行錯誤の毎日です。

ではでは、ハマったところをご紹介〜。
プログラム専門用語に間違いがあるかもですので御注意を。

今回ハマったのはAS2でいうremoveMovieClip();のループ処理です。
画面にattachMovieで配置したMCの参照値をバーッとArrayに突っ込んでおいて一気に消すってやつです。

Actionscript 2:
  1. var mcListAry = new Array();
  2.  
  3. var newMC1 = root.attachMovie("hoge","hoge1",1);
  4. mcListAry.push(newMC1);
  5.  
  6. var newMC2 = newMC1.attachMovie("hoge","hoge2",2);
  7. mcListAry.push(newMC2);
こんな感じで突っ込んで

Actionscript 2:
  1. for(var n=0; n < mcListAry.length; n++){
  2.  mcListAry[n].removeMovieClip();
  3. }
という感じで一気に消します。

まぁここでは2個しかArrayに突っ込んでませんがもっと多くある場合ってありますよね。


これをAS3でやってみたところうまくできなくて、アホみたいに手間の掛かる消し方をしてたんです><
知らんってつらいわーーー!


とりあえずどう書いたかですが、
適当な四角をムービークリップにして、プロパティでHogeってクラス名を付けたとします。
Actionscript 3 :
  1. var mcListAry:Array = new Array();
  2.  
  3. var newMC1:MovieClip = new Hoge();
  4. addChild(newMC1);
  5. mcListAry.push(newMC1);
  6.  
  7. var newMC2:MovieClip = new Hoge();
  8. newMC1.addChild(newMC2);
  9. mcListAry.push(newMC2);
こんな感じですね。

で、消すっと。
Actionscript 3 :
  1. for(var n=0; n < mcListAry.length; n++){
  2.  removeChild(mcListAry[n]);
  3. }
こーするとnewMC2がうまく消えないんです。


試しにこう書いてみるとうまく消えた。
Actionscript 3 :
  1. newMC1.removeChild(mcListAry[1]);

ふむふむ、ちゃんと何処何処のMCですよーって指定をしないといけないわけねーー。

まーじめんどくせぇ(´-`)

というわけで、ちょいと参照?の仕方が違うみたい。
結果的にparent を使うとうまくできた。


Actionscript 3 :
  1. for(var n=0; n < mcListAry.length; n++){
  2.  var targetObj:Object = Object(mcListAry[n]);
  3.  var parentObj:Object = Object(targetObj.parent);
  4.  parentObj.removeChild(targetObj);
  5. }
これでサクッと消せました。

むずかしいわー。。。

2008/8/11 - 0:41 | コメント (0) | トラックバック(0)

Category : FLASH AS3

TrackBack : http://nashiko.net/blog/1055/trackback

8/2

THE DOKAN. シンプルワンボタンクソゲー AS3




「もーそろそろまともにAS3を勉強しないとやばいんでは?」

そう悩みつつ半年以上、いや、1年以上か!?
気がつけば出遅れもいいとこだ。
次に気がついたときにはAS4になってそうで不安です。

AS2バリバリ書いててもしょうがない精進じゃ!!


というわけで、AS2でコーディングしていたものを勉強もかねてAS3で書き直してみた。
なんとか動くようになったが、DB接続で失敗した場合に処理が止まるのを回避する方法がイマイチわからなかったのが残念。

そして、コーディング速度がひどいこと。。。
致命的な処理の回避方法とかが全然思いつかなくて進み具合が非常に悪かった。

AS2のときはサラサラ〜っと書いてすぐ終わったのに、AS3で5日ぐらい格闘してやっとできた。試行錯誤でやってるから最善策とか分かんないし(´-`)

一応完成っつーことで。。。とりあえず書きまくって理解を深めねば。。。

2008/8/2 - 0:46 | コメント (0) | トラックバック(0)

Category : FLASH AS3ゲーム

TrackBack : http://nashiko.net/blog/1054/trackback

CopyRight 2004 ヤッチマイナシコー! All rights reserved.

Powerd By neustil.com