Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
     12
3456789
10111213141516
17181920212223
24252627282930
<< November 2019 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
ブログパーツ-BLOG PARTS.
Profile
Links
Recommend
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2009.11.09 Monday
Debug作業の効率化。

Debug作業の効率化がしたい。
またバグらないソースの書き方がしたい。
多少動作スピードが遅くてもいいから
バグらないコード、改変しやすいコード
自分なりにそんなプログラムコードを目指す。
動作スピードアップはその後の話だ。

いつもデバッグをしていて。
なにが原因かわからなくなるのでそのTipsのまとめ

◎より改変しやすいバグりにくいコードへの教訓
・スケジュールは多めにもらってあせらない状況を作る。
・「当たり前ジャーン」などの「思い込み」、などは非常によくない。
 そんな当たり前の動作をつくるのが一番苦労する。


・デバッグのスピードはそのまま仕事のスピードに影響する。

・まず起こったバグは解決する前にでいいから自分で必ずtxtファイルにまとめる事。
 認知しているかしていないかを書いておく。
 これ自体をやらないと、複数の問題は解決しにくい
 関連してそうなバグを近めに書く (あくまでしてそうなと書いておく)

・複数のバグか関連するバグかは
 これのせいだと、決め付けるのが一番よくない。
 全バグを解決してからでないと実際はわからない。

・複数のソースが入り組んだ部分にいきなり機能拡張しない。
 複数の機能は 単体での動作をFIXしたら
 それを複数ソースへどう入れ込むかだけに集中できるようにする。


---------------------------------------------------------------------------------------
・具体例
個人的によくある配列のデータをNextPrevボタンで切り替えモーションさせる際の
バグがよく起こりやすいので

具体例にとる。 完成系はこんなものだ。
function viewPrevNextBtnChecker(goN, Max) {

    trace(goN+"/"+Max);
    if (goN == undefined) {
        trace("goN== undefined"+"なので出す消す処理やめる")
    } else {
        arrow_next_mc._visible = false;
        arrow_prev_mc._visible = false;
        if (goN >= Max-1) {
            trace("でかすぎたら消す");
            arrow_next_mc._alpha = 0;
            arrow_next_mc._visible = false;
        } else {
            arrow_next_mc._alpha = 100;
            arrow_next_mc._visible = true;
        }
        ///////////////////////////////////////
        if (goN<=0) {
            trace("小さすぎたら消す");
            arrow_prev_mc._alpha = 0;
            arrow_prev_mc._visible = false;
        } else {
            arrow_prev_mc._alpha = 100;
            arrow_prev_mc._visible = true;
        }
    }

}


☆どんな問題が起こったか?
  先頭、最後尾のデータを表示した際に矢印が消えない。

★それをどう解決したか?
  矢印を消すタイミングは表示モーション前だ。なので、
  1個前の状態で未来の値でのチェックが必要になる
     if (goN >= Max) {}を
   if (goN >= Max-1) {}へ修正。
  


※0から1はできない、0.1を積み重ねることで1により近くなる。
 デザインのアイデアを作るときにも言えると思ってた。
 机を片付けるのだって同じだ、たくさんいろんなものが乗っている。
 これはあっちの部屋のあそことか、一つ一つ元の場所に戻す必要がある。
 いっぺんに解決する方法なんて机をひっくり返すしかない。
 床に落ちたモノをあとで片付けなきゃいけなくなるだけ。
 自分でそんな事2年前ぐらいに考えてたのに忘れてた。

●それでもあせってしまう時は。。。
 遅めの同じリズムの曲とかレゲエとか聴くしかないねえ。
ンッチャ、ンッチャ、ンッチャ、ンッチャ、ンッチャ
チャチャチャとかじゃなくて
まえは溜めるだけだから 楽に感じるのかなあ。いやただ好きなだけなのね。そなの。
誰もいないときにも積み重ね続ければいつかは感動するものが作れるハズ。

●眠くなったときは・・・
曲をハウスに変えるとか?
| whaison | ScriptCore | 17:39 | comments(0) | - | pookmark |
            
2009.11.03 Tuesday
ASで背景以外コンテンツ見えないんだけどーSearchContents()が強引に解決してくれるよ。
ページとかシーン推移中に
ボタンカバーボタンみたいなのを表示して
「推移中にボタンを押されたらバグ」
ってバグを未然に防ぐのが
うちの会社のチーフFLASH DEVELOPER の教えなんですが、

その中にhit_mcをいれといて
そこにヒットが何もなかったらコンテンツエリアになにもないってことだから
それはまずいってことで
for inループとhitTestで洗い出して
出てきたMC.view()しようってのがこのSearchContents()の役目なの。そなの。

 var refNowContentsMc;
function SearchContents() {

    //this.onEnterFrame = function() {
    //hit_mc._x = _xmouse;
    //hit_mc._y = _ymouse;
    var noContents=true
    for (var name in this) {
        if (typeof (this[name]) == "movieclip") {
            if (name == "bgrand_mc") {
                trace("背景を検知");
            } else {
                if (mc_mat.hit_mc.hitTest(this[name])) {
                    noContents=false

                trace("you hit the  「"+name+"」 noContents="+noContents);

                    refNowContentsMc = this[name];
                    /*
                    refNowContentsMc._visible=true
                    refNowContentsMc._alpha=100
                    */
                   ///////////////////////////////////////////////////////////////////
                    refNowContentsMc.view()
                  /////////////////////////////////////////////////////////////////
                    trace(""+name+"」見えなきゃブラーが50とか?")

                }
            }
        }
    }
    if(noContents==true){
        trace("★★★★★★★★★★重大なエラー★★★★★★★★★★★")
        trace("何もないので復帰処理")
        trace("setGroupAndItem("+_global.GlobalOldGroupNum+"," +_global.GlobalOldChildNum+") ")
        trace("★★★★★★★★★重大なエラー★★★★★★★★★★")
        /*
        _global.GlobalGroupNum=0
        _global.GlobalChildNum=0
        _global.GlobalOldGroupNum=0
        _global.GlobalOldChildNum=0
        */
        //ページ推移用-関数をコール
        setGroupAndItem(_global.GlobalOldGroupNum, _global.GlobalOldChildNum)
        
    }
    //};
}
| whaison | ScriptCore | 17:22 | comments(0) | - | pookmark |
            
2009.10.26 Monday
call (Function.call メソッド)...でfunction名を値として渡したいの。

call (Function.call メソッド)

call (Function.call メソッド)

public call(thisObject: Object , [parameter1: Object ]) : Object

Function オブジェクトが表す関数を呼び出します。ActionScript のすべての関数は Function オブジェクトによって表されます。したがって、すべての関数は、このメソッドをサポートしています。

ほとんどの場合、このメソッドの代わりに関数呼び出し演算子 (()) を使用できます。関数呼び出し演算子を使うと、コードが簡潔になり読みやすくなります。このメソッドは、主に関数呼び出しの thisObject パラメータを明示的に制御する必要がある場合に役立ちます。通常、関数をオブジェクトのメソッドとして、関数の本体内で呼び出すと、次のように thisObjectmyObject に設定されます。

myObject.myMethod(1, 2, 3);

thisObject が他の異なる場所をポイントするように設定する場合もあります。たとえば、オブジェクトのメソッドとして呼び出す関数が、実際には、そのオブジェクトのメソッドとして格納されていない場合などです。

myObject.myMethod.call(myOtherObject, 1, 2, 3); 

関数をオブジェクトのメソッドとして呼び出さずに通常の関数として呼び出すには、thisObject パラメータに値 null を渡します。たとえば、次の 2 つの関数呼び出しは同じです。

Math.sin(Math.PI / 4)
Math.sin.call(null, Math.PI / 4)

呼び出された関数が戻り値として指定する値を返します。

対応バージョン : ActionScript 1.0、Flash Player 6

パラメータ

thisObject:Object - 関数の本体内で thisObject の値を指定するオブジェクト。

parameter1:Object (オプション) - myFunction に渡すパラメータ。指定できるパラメータの数は 0 個以上です。

戻り値

Object -

次の例では、Function.call() メソッドを使用することで、関数をオブジェクトに格納しないまま、別のオブジェクトのメソッドとして動作させます。

function myObject() {
}
function myMethod(obj) {
trace("this == obj? " + (this == obj));
}
var obj:Object = new myObject();
myMethod.call(obj, obj);

trace() ステートメントの出力は次のようになります。

this == obj? true

call (Function.call メソッド)

関連

apply (Function.apply
メソッド)

LiveDocs のコメントを表示

---------------------------------------------------------------------------
 

コールメソッドなんとなくしか動かないな

C++自学・自習(第7章)

関数名. 場合によっては,関数名を引数としたい場合があります.例えば,
非線形方程式の根を求める関数を作成したいとします. .... 参照渡しをすれば,関数内で値の修正が可能となりますが,もし修正を許さないならば,その引数に対して, ...
こんなのみっけ。

でもなんかオブジェクト参照を切り替える方法で落ち着いた

//#########コール先を変更できるからコール内容の変更も可能############
stop()
trace("-----------------------------------------------------")

var nextFramer=new Object()
nextFramer._name="nextFramer"
nextFramer.myStart=function(){
trace("nextFramerでやりたい処理")
nextFrame()
}
trace("-----------------------------------------------------")
/*
trace("----ここで実行される?-----")
this["nextFramer"].myStart();///////////////OK
trace("----ここで実行される?-----")
*/

function callFunc(funcObject){
this[funcObject].myStart();
}
/*
trace("----
callFuncで実行される?-----")
callFunc("nextFramer")
trace("----
callFuncで実行される?-----")
*/

tweenMC(list_mc,"IN","func:nextFramer")

//#########コール先を変更できるからコール内容の変更も可能############

///################################################################
//##########################tweenMC################################
//#################################################################
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
ColorShortcuts.init();

//ブラー初期設定#####################################################
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.BlurFilter;


//http://www.tonpoo.com/tweener/properties/FilterShortcuts.html
import caurina.transitions.properties.FilterShortcuts;
FilterShortcuts.init();

/*
function setFilter() {
till_mc.filters = [blur];
//this[mcName].filters = [blur];
}
*/
function onCompleteTween(refMC,INOUT,viewTime) {
trace("onCompleteTween")

if(INOUT=="IN"){
trace("出します")
/**/
viewTimeFuncArr=viewTime.split(":")
funcTF=viewTimeFuncArr[0]
funcObjName=viewTimeFuncArr[1]
if(viewTime=="compliteToMotionEndStop"){
trace("viewTimeはcompliteToMotionEndStopなので停止します")
}else if(funcTF=="func"){
trace("onCompleteTweenで普通にFunction["+funcObjName+"]を呼び出します。")
//call(funcObjName)

///#######################################################
//var ObjectRefalence=readPaper
trace("funcObjName="+funcObjName)
callFunc(""+funcObjName)
///#######################################################
trace("onCompleteTweenで普通にFunction["+funcObjName+"]を呼び出しました。")
}else{

//trace("viewTimeは"+viewTime)

delay=viewTime*1000
param=[refMC,INOUT,viewTime]
my_timedProcess = setTimeout(my_delayedFunction, delay,param);

}


}else{
trace("消します")
onCompleteTweenOUT(refMC,INOUT,viewTime)
/*
Tweener.addTween(blur,{
time:2,
blurX:100,
blurY:100,
transition:"easeOut",
// onUpdateParams:[mcName],
// onUpdate:setFilter,
onCompleteParams:[refMC,INOUT,viewTime],
onComplete: onCompleteTweenOUT
}
);
*/
}

}
function onCompleteTweenOUT(refMC,INOUT,viewTime){
trace("onCompleteTweenOUT")
refMC._alpha=0
refMC._visible=false
//till_mc.filters = null;
trace("refMC="+refMC)
//myRef=eval(refMC)
//myRef.filters = "cleard"
refMC.filters = [new BlurFilter()]
refMC.filters = "cleard"
//this[refMC].filters = "cleard"
trace("till_mc.filters = "+till_mc.filters+"オブジェクトじゃなきゃきえたんじゃね?")
//this[mcName].filters = null;
trace("なんにも無い状態はまずいのでフレームを移動します。")
trace("”OUT”の実行フレームの次には何かをいれてください。")
nextFrame()
}
///////////////////////////////////////////////
var my_timedProcess:Number

function my_delayedFunction (refArr) {
trace(refArr);
refMC= refArr[0]
INOUT= refArr[1]
viewTime= refArr[1]
tweenMC(refMC,"OUT","compliteToMotionEndStop")
}

var escListener:Object = new Object();
escListener.onKeyDown = function() {
if (Key.isDown(Key.ESCAPE)) {
clearTimeout(my_timedProcess);
}
};
Key.addListener(escListener);


///////////////////////////////////////////////////
function tweenMC(refMC,INOUT,viewTime){
/*タイトル用はMCに入れた*/

var blur:BlurFilter = new BlurFilter();
blur.quality = 3;

delete (refMC.onEnterFrame)
refMC.onEnterFrame=function(){
//フィルターを更新しつづける
if(INOUT=="IN"){
refMC._alpha+=10
}else{
refMC._alpha-=3
}

refMC.filters = [blur];
//till_mc.filters = [blur];
}
if(INOUT=="IN"){
//出す
refMC._visible=true
refMC._alpha=0
blur.blurX = 50
blur.blurY = 50
Tweener.addTween(blur,{
time:3,
blurX:1,
blurY:1,
transition:"easeIn",
// onUpdateParams:[mcName],
// onUpdate:setFilter,
onCompleteParams:[refMC,INOUT,viewTime],
onComplete: onCompleteTween
}
);

}else{
//消す
refMC._alpha=100
blur.blurX = 1
blur.blurY = 1
Tweener.addTween(blur,{
time:3,
blurX:15,
blurY:15,
transition:"easeOut",
// onUpdateParams:[mcName],
// onUpdate:setFilter,
onCompleteParams:[refMC,INOUT,viewTime],
onComplete: onCompleteTween
}
);
}
}

///################################################################
//##########################tweenMC#end###############################
//#################################################################
//###################################################################


サンプルcallFlexObjectFunctionV5SimpleTween.zipをダウンロードする。
http://files.me.com/whaison/8dc72t



じゃあAS3はー
エラーだ。w
ダイナミックなのはとりあえずAS3ではバグの味の素だから極力作らないほうがいいってのが
AS3の思想だと思うけど。。。
| whaison | ScriptCore | 21:54 | comments(0) | - | pookmark |
            
2009.05.04 Monday
AS3 interface について調べてなんかつくったりもしたので。。。
 extends
継承じゃ1つからしか継承できないから
2つ以上継承したいときか、

メソッドを共有したいときに使うんだぞってことで

public class LogUI extends Sprite implements ILogRecipient
この場合(Sprite)をUIとかテキストフィールドを作るために使ってるんだけど
でもさらに 他の共有したいメソッド
public function update(msg:String):void{
を共有したいからimplementsするの

package 
{
	
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.Stage
	/**
	 * ...
	 * @author ...
	 */
	public class Main extends Sprite 
	{
		public var logUI:LogUI
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			logUI = new LogUI(stage)
			stage.addChild(logUI)
			logUI.update("インターフェイスを実装したlogUI")
		}
		
	}
	
}
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.text.TextField
	import flash.display.Stage
	/**
	 * ...
	 * @author ...
	 */
	class LogUI extends Sprite implements ILogRecipient 
	{
		public var myTxt:TextField
		public function LogUI(stage:Stage) 
		{
			myTxt = new TextField()
			myTxt.x = 100
			myTxt.y = 100
			stage.addChild(myTxt)
		}
		public function update(msg:String):void{
			trace("LogUI:の特殊な振る舞い" + "msg")
			myTxt.appendText(msg)
			
			
		}
		
	}
	
	interface ILogRecipient 
	{
		function update(msg:String):void ;
	}


インターフェースって食べれるの? より
http://www.y-tti.com/blog/2009/03/post_69.php

「大阪AS3教えて!えら い人」のまとめ より
http://www.mrlittlebig.com/blog/029/

AS3.0 クラスの勉強(7-1)インターフェースとは - //Webbabies の 複数のインターフェースを実装するにはとかも。。。
http://d.hatena.ne.jp/larrabie/20090503/Class007_1
| whaison | ScriptCore | 15:34 | comments(0) | - | pookmark |