2010年10月9日土曜日

Jobs。。

Jobs氏の意向?かApple社のどこかの意向で、
FLASHが、iPhone、iPadでは見ることが出来ない状況です。

そんなこんなで、最近、HTML5なぞにそなえ、
javascriptでFLASH代わりに色々出来るか試しているこの頃。

FLASHだとすぐつくれることが、javascriptだと自分にはまだまだ時間がかかるなああ。。
クロスブラウザ大変だなあああ、、と
叫びを上げたい気持ちもありますが、

まあ、ぼちぼちいきますか。

でも、バナーぐらいはやっぱりFLASHでいくのがやっぱり楽だな。。

さて、これからのweb業界、どうなっていくのでしょうか。

共存共栄してくれればいいのだが、と思うこの頃です。

2010年7月6日火曜日

フィルタ(光彩、ぼかしなど)の適用方法メモ

Flashで、photoshopの「光彩」などのようなフィルタはどうやってかけるのだろう、
と探し、
発見したのでメモです。
プロパティインスペクタの「フィルタ」という一番下の項目の、一番右下の「新規」アイコンをクリックしたら出てきました。

「光彩」や「ぼかし」「ドロップシャドウ」などなど。

自分以外にも、初心者の方で、見つけにくい方のためにメモです。(CS4)

2010年3月17日水曜日

グラデーションの変更ツールは、「自由変形ツール」の陰に。。

Flashでグラデーションをオブジェクトに適用しようとして、なかなかツールが見つからなかったのでメモです。

ツールバーの「自由変形ツール」のオプションに「グラデーションの変形ツール」が隠れていました。
これを使えば、グラデーションも色々変更ききますね。
ありがたや。

2010年3月16日火曜日

atan2で求める角度

atan2で対辺と接辺から角度が求められることを知りました。
便利。

以下は、ActionScript 3.0 アニメーションのP63~65のサンプルから。
マウスを追従する矢印です。
atan2で求めたラジアン値から角度を求め、追従しています。
atan2、便利。

python電卓。円周率の使い方。

Flashの話題ではないですが、最近関数電卓として、pythonを使っています。
けっこう便利。
Flashでtraceを用いて計算させるのも手ですが、別に電卓としてpythonを使うのもいいな、と。

さて、今回は、ラジアン値を計算しようとして、PIを使うのに手間取ったのでメモ。

import math
を実行してから、
math.piで円周率が使えるようになりました。

以下、参考になったページ。

http://python25.blogspot.com/2009/10/blog-post.html

2010年3月15日月曜日

RSSを外部から取得するための道のり。。。(未解決メモ)

RSSを外部から取得するには、crossdomain.xmlというものが必要らしい。
今のところ、うまくいっていない。。。

yahoo.pipesというサービスを使えば、可能になる様子。以下、参考ページ。
http://chikura.fprog.com/index.php?UID=1175617938


yahoo.pipesの中の、flash developer向けのドキュメントページ。
http://blog.pipes.yahoo.net/2007/03/10/pipes-adds-flash-developer-support/

RSSの値を取得するので躓いたのでメモ

bloggerからRSSでswf上にフィードさせたいと思い、XMLを読み込ませるも、各値の取得がなかなかできず困ったので、解決メモです。

大事だったのは、namespaceの設定。「名前空間」についての設定をしてやらないと各ノードの各要素にアクセス出来ませんでした。

具体的には以下のような感じで設定。default xml namespaceとして設定してやると、その後の記述が楽です。
var ns:Namespace = new Namespace("http://www.w3.org/2005/Atom");
default xml namespace = ns;

::::::::::::::::::::::::::::::::::::::::::

で、このブログからのRSSをフィードさせ、各エントリのタイトルを取得するコードメモ。

var myURLLoader:URLLoader = new URLLoader;
var req:URLRequest = new URLRequest('http://playwithflash.blogspot.com/feeds/posts/default');
myURLLoader.load(req);
myURLLoader.addEventListener(Event.COMPLETE,loadHandler);

//namespaceを設定
var ns:Namespace = new Namespace("http://www.w3.org/2005/Atom"); 
default xml namespace = ns;

//各エントリのタイトルを取得して表示。
function loadHandler(e:Event){
    var rss:XML=new XML(e.target.data);
    for(var i:int=0;i<rss.entry.length();i++)
        {
        var tf:TextField=new TextField();
        tf.width=400;
        tf.height=100;
        tf.x=50;
        tf.y=i*30;
        tf.htmlText="■"+rss.entry[i].title.toString();
        addChild(tf);
        }
}

ただ、ネット上にswfファイルをアップすると表示されない不具合があり、現在調査中。。

2010年3月11日木曜日

スペースキー(など)が押されたら何か処理を始めたい時のやりかたメモ。

スペースキー(など)が押されたらある関数を実行、という場合のメモ。
以下のような感じ。

stage.addEventListener(KeyboardEvent.KEY_DOWN,isSpace);

function isSpace(e:KeyboardEvent){
    if(e.keyCode==Keyboard.SPACE){
        showQuestion(e);
    }
}


(それにしても、手打ちで全部やっていると、書き間違いが多い。。
escショートカットはせめて覚えなくては。。)

TextFieldにfocusを自動であてるには、stage.focus=textField_name;

入力窓に自動的にフォーカスをあてたかったのでググると英語で、
stage.focus=txt;
と書けばいい、とどこかに書いてありました。
そのままやると、すぐできた。

こりゃ便利。

2010年3月10日水曜日

やっとflash developが使えました。

いろいろやってもflash developで書いたAS3コードが以下のようなエラーを排出するのでまいってました。
Error: a target file must be specified

しかし、
http://www.trick7.com/blog/video/flashdevelop/

のビデオを拝見し、Flash CS4上でflaファイルを作り、
ドキュメントクラスのプロパティでクラス名をつけてやり、
そのクラス名でFlash Developにてクラスを書いてやると、無事いけました。

ほ!

これでやっと素晴らしい自動補完機能を使って、AS3のコーディングができます。

ありがたや。。。

へぼへぼのASコードによるswfファイルを上げておきます。 。


回転部分のコードは以下に。
         var sp2:Sprite = new Sprite();
            sp2.graphics.beginFill(0xf0f000);
            sp2.graphics.drawRoundRect(120,120,80,80,5,5);
            sp2.graphics.endFill();
            sp2.buttonMode = true;
            addChild(sp2);
           
            var centerX:int = 140;
            var centerY:int = 60;
            var radius:int = 130;
            var angle:int = 0;
            addEventListener(Event.ENTER_FRAME, onLoad);
            function onLoad(e:Event):void {
                   
                    var radian:Number=angle*Math.PI/180;
                    sp2.x = centerX+Math.cos(radian)*radius;
                    sp2.y = centerY + Math.sin(radian) * radius;
                    sp2.alpha = 0.7;
                    sp.x += 2;
                    angle+=5;
            }
(円運動させるとき、ラジアンとMath.PI,Math.sin,Math.cosって便利ですね。)

配列の中の値の検索はarrayname.indexOf();

indexOf();は便利。
値があれば、配列のindexを返し、なければ-1を返してくれる。

array.indexOf(searchElement)という書式。

数を並べてみた。



数を並べてみた。
コードは以下のような感じ。

for(var j:int=0;j<15;j++){
for(var i:int=0;i<15;i++){
var txt:TextField=new TextField();
txt.x=35*i;
txt.y=35*j;
txt.width=35;
txt.height=35;
txt.border=true;
txt.borderColor=0x000000;
var num:int=i+15*j;
txt.text=num.toString();
addChild(txt)
}
}

TextFieldとTextFormatの指定って面倒。。

AS3でテキストをテキストフィールドを使って表示させ、フォーマットも設定するのって、ちょっと面倒です。
面倒だから、以下にお試しコードをメモ。

var txt:TextField=new TextField();
var fm:TextFormat=new TextFormat();
txt.x=250;
txt.y=10;
fm.size=40;
txt.defaultTextFormat=fm;
txt.text="something";
addChild(txt);

array.splice();で配列からランダムに値を抜き出す

array.splice(a,b);
で配列から値を抜き出して、元の配列に残さない、というメソッドを初めて使いました。

配列からランダムに値を抜く、ということがしたかったので、
Math.random()を使って、乱数を生成し、splice();で抜き出せました。

便利。

2010年3月8日月曜日

mouseに追従し、拡大縮小する円。



scaleX,scaleY
mouseX,mouseY
を使用。
便利。

Timerも使った。

参考Flashクリエイターになるための教科書P213~

拡大縮小の切り替え方法は本になかったので、自分でflagを作り、Booleanでfalse,trueをscaleX<0,scaleX>1の条件分岐で変更させて実現。
Booleanで変更って、便利。

2010年3月2日火曜日

シンボルとインスタンスの扱いで悩んだこと。その2

日本地図の各都道府県をインスタンス・シンボル化し、
ドラッグ可能にしてみたら、
時々小さな島とか、湖とかがドラッグで取り残されて悩みました。

色々調べて実験した結果、
インスタンスをクリックするとシンボル自体が編集できてしまいますが、
シンボル化してある層でちゃんと全部がグループ化されていないとダメだったようです。

 

解決策は、忘れられている島のある層までクリックして降りて行って、
その島をカットし、
ちゃんとシンボルの層でペーストして配置し、グループ化しててやる、というものでした。

シンボルとインスタンスの扱いが初心者にはネックだなあ、とつくづく思ったものです。


関連する前の記事もご参考までに。
http://playwithflash.blogspot.com/2010/02/blog-post.html

2010年2月21日日曜日

poser実験(swf背景透過)

poser7で歩く人のモーションを作ってみました。
表示実験です。。



embedタグの中に、
wmode="transparent"
と設定すると埋め込みswfの背景が透過しました。
ありがたいっす。

2010年2月11日木曜日

シンボル名とインスタンス名ってややこしいっす。。

シンボル名とインスタンス名ってややこしいですね。
最初、違いがよくわかりませんでした。

F8とかを押して、シンボル化するときに付ける名前は、「シンボル名」の様子。でも、左の画像にあるように、「インスタンス」とかプロパティパネルには書いてあります。。
わかりにくいな(^^;
要するに「インスタンスの元になっているシンボル:」という意味でしょうか。

そして、その上に見えるアクティブなテキストフィールドに入力できるのが、「インスタンス名」とか。。

こちらでインスタンス名を改めて指定してやらないと、ASで動いてくれない様子。

しろーとには結構分かりにくいところでした。

(メモ:「Ctrl+F3」がプロパティパネルへのショートカット)

MovieClipを配列に渡すときは、ダブルクオーテーションがいらなかった。

MovieClipを配列に格納する際は、ダブルクオーテーションをつけず、
var ken:Array=new Array(hop,hok,ao,aki,iwa,gata,yagi,fuku,nii);
といったように、素のままでシンボル名を記述してやればいいとわからず、
ダブルクオーテーションでくくっていて、
TypeError: Error #1006: value は関数ではありません。
というエラーに悩まされてました。。

わかってよかった!

複数のインスタンスの処理をする際のインスタンス名省略法メモ(target)

複数のインスタンスを同じ関数でドラッグドロップさせたいと思って色々調べ、
「e.target」という書き方で引数の「e(MouseEvent)」のターゲットインスタンスを指定できると知り、
ハッピーでした。

使い方は、以下のような感じで。

function onMouseDown(e:MouseEvent) // マウスダウン時の処理
{
e.target.startDrag();
}
function onMouseUp(e:MouseEvent) // マウスアップ時の処理
{
e.target.stopDrag();
}

2010年2月3日水曜日

text入力実験



参照元:「プロからやさしく学ぶ ActionScript 3.0」P179ページ。

ドラッグ可能なspriteオブジェクト実験



spriteオブジェクトをつくってやって、
そのオブジェクトにイベントリスナーをマウスアップとダウンで追加してやると、
簡単にドラッグできるようになり感動でした。
//マウスイベントリスナーを二つ
sprite.addEventListener(MouseEvent.MOUSE_DOWN, funcMouseDown);
sprite.addEventListener(MouseEvent.MOUSE_UP, funcMouseUp);
//マウスダウン処理
function funcMouseDown(e:MouseEvent) {
	sprite.startDrag();
}
//マウスアップ処理
function funcMouseUp(e:MouseEvent){
	sprite.stopDrag();
}

2010年1月29日金曜日

swf表示実験

へぼへぼフラッシュの表示実験です。
blogger上で表示、なるか?!


OKでした^^

bloggerへのswfファイル表示方法メモ。

<embed src="http://example.com/example.swf"
 width="100" height="50">

のようにすれば、SWFファイルをblogger上でも表示できました。

よかった。

モーションエディタ。

つくづくモーションエディタって、便利っすね。
様々な変化をつけることが、一括でできて。

ありがたいっす。。