FlashLite1.1をすこしいじった

お題目のとおり少しいじりました

携帯でオールflashのサイトです(swfを直接開いたタイプのアレ)

こまったことにdocomoのFlashLite1.1の携帯
上下キーのイベントがとれない・・・。

on (keyPress "<Up>") {
trace("Up");
}

on (keyPress "<Down>") {
trace("Down");
}

上下キーのイベントがとれないとか普通ないだろうよおお。
んで、さらに調べてたら上下キーはボタンに対するフォーカスにあてられてる模様

参照サイト KDDI au: マルチメディア・コンテンツ > Flashコンテンツ

フォーカスは上から順になります。
上からボタンが2つ並んでる状態を仮定すると

例)
○ ボタン1
○ ボタン2

一番最初に下キーを押せす
>ボタン1にフォーカスがきます

一番最初に上キーを押せす
>ボタン2にフォーカスがきます

(※注意)
ディスプレイにボタンが表示されてないとフォーカスはできません。

これを利用して
ボタンを透明、もしくは背景と同じ色にして

ボタン1に

on(rollOver,press){
trace("Down");
//gotoAndStop(3)
}

ボタン2に

on(rollOver,press){
trace("Up");
//gotoAndStop(1)
}

こんな感じで上下にスクロールできる携帯flashをつくりました
他にも方法があるかもしれませんけど。

ちなみにスクロールの一番上と下は片方だけでいいのでこんな感じにしときました。

一番上(1フレーム目)

ボタン1に

on(rollOver,press){
trace("Down");
//gotoAndStop(2)
}

ボタン2に

on(rollOver,press){
trace("Stay");
//gotoAndStop(1)
}

一番下(3フレーム目)

ボタン1に

on(rollOver,press){
trace("Up");
//gotoAndStop(3)
}

ボタン2に

on(rollOver,press){
trace("Stay");
//gotoAndStop(2)
}

これでオッケーとかおもってたんだけど
なんかフォーカスついちゃうし・・。

なので一番最初と最後のところは
2フレームづつ使いました。

説明むずかしー、こんなかんじでし
f

Tags:

小さなコトスペシャル

小さなコトでイライラしたので忘れていもいいように
書き留めときます。

stage.stageWidth/stage.stageHeightはブラウザによって値を取得できるタイミングがちがう

IEはコンストラクタで値を取得しようとしてもとれないわよ
firefoxはとれるけどね。
そうめん使ってる人はrunの時もステージサイズはとれないわ!
次のfunctionで取得して!!

flvをNetStreamクラスをつかって再生した時の音量を0にしたい
こいつがミソ! 無音にできます。

import flash.media.SoundTransform;

/*このへんはおきまり
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
*/
//音量調整するところ ※SoundTransform 第一引数と第二引数で右と左のボリュームだったきする。
var mySoundTransform:SoundTransform = new SoundTransform(0);
ns.soundTransform = mySoundTransform;

TextFieldのautoSizeはas2.0と書き方が違う
textField.autoSize = (Boolean値) だったのが
左ぞろえ右揃え中央ぞろえとか機能がついてんだね

定数 文字 説明
TextFieldAutoSize.NONE “none” なし
TextFieldAutoSize.LEFT “left” 左に揃えて整形
TextFieldAutoSize.RIGHT “right” 右に揃えて整形
TextFieldAutoSize.CENTER “center” 中央に揃えて整形

オブジェクトを最前面にしたい時

いっつも忘れるコレ
stage.setChildIndex(最前列にしたいオブジクトの名前,numChildren-1);

例)

var sp:Sprite = new Sprite();
var objS:Shape = new Shape();
sp.addchild(objS);
・・

中略
//spの中でobjS最前列にする
sp.setChildIndex(objS,numChildren-1);

しらべるといつもnumChildrenがくせものに感じる

xmlのパースの仕方

これもすぐ忘れる
本みないとわかんなくなる

アトリビュートの場合(アトリビュートがIDの場合)
var str:String = hoge@ID
長いしだんだん眠くなってきた。

長くなりそうだから続きは次にかきます。

Tags:

エア焼肉してみた

エア焼肉
お金がなくても焼肉を食べた気分になれるリクルートのflashサイト

niku

リクルートはなんだろうw
「肉が焼けるのを見ているのは楽しいからやった、後悔はしてない。」

そんな感じでしょうか。

とりあえずすべての肉をやいてみたけど
特になにもなしかよ!

ネタ的なものが出てくると期待したのにー

でもエア焼肉講座てきなmovieは秀逸。

参照URL
ねとらぼ:「エア焼肉」でお金がなくても焼肉気分 - ITmedia News

Tags:

初めてのpapervision3D その3

次は3Dの球体にテクスチャを張り付けてみよう。

BitmapFileMaterialをつかって画像をはりつける
せっかくなのでgooglemapの航空写真をつかってみました。

bg
サンプルはこちら

そしてソース

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import caurina.transitions.Tweener;
	import org.papervision3d.view.*;
	import org.papervision3d.objects.primitives.*;
	import org.papervision3d.materials.*;

    public class Main extends BasicView
    {
		private var mySphere:Sphere;
		public function Main() {
			init();
		}
		private function init():void
		{
			var material:BitmapFileMaterial = new BitmapFileMaterial("bg.jpg");
			mySphere = new Sphere(material, 300, 30, 30);
			var sp:Sprite = new Sprite();
			scene.addChild(mySphere);
			startRendering();
			sp.addEventListener(Event.ENTER_FRAME,enterFrameHandle);

		}
		private function enterFrameHandle(e:Event):void
		{
			mySphere.rotationY += 0.5;
		}
	}
}

追加変更した部分は・・

1、materialsをインポート
import org.papervision3d.materials.*;

2、BitmapFileMaterialに対象画像のパスをつっこみ
var material:BitmapFileMaterial = new BitmapFileMaterial(”bg.jpg”);

3、Sphereをnewする際に第1引数にいれちゃういましょう

mySphere = new Sphere(material, 300, 30, 30);

ちなみに第2引数は表示サイズ、第3引数と第4引数は縦線横線の数になります。
初めてのpapervision3D その2 の時より線を増やしてカクカク感をとりより球体らしくしました。

VF1からVF3位の差がでたきがします。

Tags: ,

初めてのpapervision3D その2

前回のつづきです。
※Papervision3D 2.0 Great Whiteをダウンロードしてパスが通っているのが前提とりなります。

ではではこんな感じで

サンプルSWF

3Dの球体がよこにクルクル回るクラスをかいてみましょうか。

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import org.papervision3d.view.*;
	import org.papervision3d.objects.primitives.*;

    public class Main extends BasicView
    {
		private var mySphere:Sphere;
		public function Main() {
			init();
		}
		private function init():void
		{
			mySphere = new Sphere(null, 300, 10, 10);
			var sp:Sprite = new Sprite();
			scene.addChild(mySphere);
			startRendering();
			sp.addEventListener(Event.ENTER_FRAME,enterFrameHandle);
		}
		private function enterFrameHandle(e:Event):void
		{
			mySphere.rotationY += 1;
		}
	}
}

Tags: ,