home > September 2008

自身のロード状況を表示

September 23, 2008

//------------------------------------------
//ローディング設定
//------------------------------------------
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;

stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;

//▼SWFファイル容量取得
var totalBytes:uint = this.loaderInfo.bytesTotal;

//▼イベントハンドラ設定
stage.addEventListener(Event.ENTER_FRAME, xEnterFrame);

//▼関数定義
function xEnterFrame(event:Event) {

 var loadPer:uint = Math.floor(this.loaderInfo.bytesLoaded / totalBytes * 100);
 load_robo.h_mask.scaleY = loadPer/100;

 if (loadPer >= 100){
  load_robo.heart_click.alpha = 1;
  Tweener.addTween(load_robo, {alpha:0, time:2, transition:"easeOutExpo",
  delay:2, onComplete:onMainload});
  stage.removeEventListener(Event.ENTER_FRAME, xEnterFrame);
 }
}

//ローディング完了
function onMainload(){
 play();
}
stop();



Permalink | Comments (0)

Loader

外部のswfを読込む方法。


package {

 import flash.display.Loader;

 import flash.net.URLRequest

 
 public class MainLoad extends MovieClip{

  static var ldr_top:Loader;

  static var url_top:String;

  static var urImage_top:URLRequest;

  public function sample_load(){
   ldr_top = new Loader();
   url_top = "swf/top.swf";
   urImage_top = new URLRequest(url_top);
   ldr_top.load(urImage_top);
   mm.addChild(ldr_top);
  }
 }
}


Permalink | Comments (0)

Papervision3Dでピクセル等倍表示

ピクセル等倍になる距離 = camera.focus * camera.zoom - camera.focus
ピクセル等倍になる距離 = camera.focus * camera.zoom - camera.focus + camera.focus
でできるらしい。

camera.focus = 100;
camera.zoom = 11;

//ピクセル等倍になる距離 = camera.focus * camera.zoom - camera.focus
//ピクセル等倍になる距離 = camera.focus * camera.zoom - camera.focus + camera.focus
camera.z = camera.focus * camera.zoom - camera.focus;

詳しくはこちら
http://blog.r3c7.net/?p=166


Permalink | Comments (0)

Flash video (FLV) bitrate calculator

September 21, 2008

AdobeからFLVエンコード時のビットレートを簡単に教えてくれるサイトがありました。
使えるかどうかは良くわからないですが念のためメモ。

http://www.adobe.com/devnet/flash/apps/flv_bitrate_calculator/


Permalink | Comments (0)

Tweener

September 09, 2008

import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
import caurina.transitions.properties.FilterShortcuts;

//ColorShortcutsの初期化
ColorShortcuts.init();
//FilterShortcutsの初期化
FilterShortcuts.init();

//ムービの初期設定
var mc:Object = {time:0 , x:300 , y:200 , alpha:0 , _Blur_blurX:50 , _Blur_blurY:50, _brightness:1};

Tweener.addTween(sample.MoveClip, mc);
Tweener.addTween(sample.MoveClip, {alpha:1, _Blur_blurX:0, _Blur_blurY:0, _brightness:0,
transition:"easeInQuart", time:0.5, delay:2.5, onComplete:Sample});

public function Sample(){
〜Action〜
}

かなり多用してます。
_brightnessもあります。

【追記】
解除する時は
MovieClip.removeTweens( 〜 );
でOK

全て削除する場合は
Tweener.removeAllTweens();


Permalink | Comments (0)

AS3でリンク設定

import flash.net.navigateToURL;
import flash.net.URLRequest;

//_blank
var url_send:URLRequest = new URLRequest( "http://www.yahoo.co.jp/" );
navigateToURL(url_send);

//_self
var url_send2:URLRequest = new URLRequest( "http://www.yahoo.co.jp/" );
navigateToURL(url_send2, "_self");

なんかめんど臭い。


Permalink | Comments (0)

AS3でFlv再生

September 05, 2008

VideoStageCls.asドキュメントクラス


package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;

public class VideoStageCls extends Sprite{

//NETSTREAM
private var connection : NetConnection;
private var netStream : NetStream;
private var obj : Object;
private var video_obj : Video;
private var video_cotena : DisplayObjectContainer;

public function VideoStageCls()
{
VideoStart();
}

private function VideoStart():void
{
video_cotena = new Sprite();

addChild(video_cotena);

//ローカルファイルアクセス用のネットコネクションを作成する
connection = new NetConnection();
//ストリーミングの場合「null」を変更する
connection.connect (null);
//Object
obj = new Object();

//ネットストリームオブジェクトを作成する
netStream = new NetStream(connection);

//画面上に表示する
video_obj = new Video();
video_cotena.addChild(video_obj);
video_obj.x = 0;
video_obj.y = 0;
video_obj.width = 800;
video_obj.height = 600;

//ビデオオブジェクトとネットストリームオブジェクトを関連付ける
video_obj.attachNetStream (netStream);
netStream.play("flv/sample.flv");//再生
netStream.client = obj;

netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHandler);
netStream.addEventListener(IOErrorEvent.IO_ERROR,URLLoaderIOErrorFunc);
netStream.addEventListener(NetStatusEvent.NET_STATUS ,URLLoaderProgressFunc);

video_cotena.stage.addEventListener(Event.ENTER_FRAME, Main_EnterFrame);
}

private function Main_EnterFrame(event:Event){

//-----------------------------------------------------------------
//再生中の FLV ファイルに埋め込まれている詳細情報を取得
//-----------------------------------------------------------------

obj.onMetaData = function(param:Object){

trace("総時間 : " + param.duration + "秒");
trace("幅 : " + param.width);
trace("高さ : " + param.height);
trace("ビデオレート : " + param.videodatarate + "kb");
trace("フレームレート : " + param.framerate + "fps");
trace("コーデックID : " + param.videocodecid);

//キューポイント
var key:String;
for( key in param ){
trace("[ key ] " + key + ": " + param[key]);
}
}
}

private function asyncErrorHandler(event:AsyncErrorEvent):void
{
trace("ASYNC_ERROR");
}
private function URLLoaderIOErrorFunc(event:IOErrorEvent):void
{
trace ("ファイル入出力のエラー");
}
private function URLLoaderProgressFunc(event:NetStatusEvent):void
{
switch(event.info.code){
case "NetStream.Buffer.Empty":
trace ("バッファが空になったので中断");
break;
case "NetStream.Buffer.Full":
trace ("バッファを満たしたので再生");
break;
case "NetStream.Buffer.Flush":
trace ("ストリーム読み込みが終了した");
break;
case "NetStream.Play.Start":
trace ("再生の開始");
break;
case "NetStream.Play.Stop":
trace ("再生の停止");
break;
case "NetStream.Play.StreamNotFound":
trace ("FLV ファイルが見つからない");
break;
case "NetStream.Play.Failed":
trace ("その他のエラー");
break;
case "NetStream.Seek.Failed":
trace ("シークが失敗した");
break;
case "NetStream.Seek.InvalidTime":
trace ("有効ではないシーク時間を指定した");
trace ("指定可能なシーク時間 : " + event.info.details);
netStream.seek (event.info.details);
break;
case "NetStream.Seek.Notify":
trace ("シーク操作を完了");
break;
default:
trace ("その他のイベントコード:" + event.info.code);
}
}
}
}

【追記】
一時停止した動画を再び再生したい場合は
_netStream.pause();
_netStream.resume();

一時停止と再生を交互に繰り返したい場合は
_netStream.togglePause();

再生位置を取得する場合は
var time : Number = _netStream.time;

再生位置(単位:秒)を変更する場合は
_netStream.seek(20);


Permalink | Comments (0)

AS3のメモリー解放

これがなかなかやっかいです。外部swfをloaderで読込んで消したい時にunLoadするだけではメモリーは解放されません。

http://www.trick7.com/blog/2008/08/07-044657.php
http://www.kkfactory.net/mt/archives/2008/08/as3loaderbitmap.html

色々書いてるけど、もっと簡単にできないものでしょうか?

http://www.kkfactory.net/mt/archives/2008/08/as3loaderbitmap.html

これを実装してみたけど、うまくいきませんでした...


Permalink | Comments (0)

Papervision3Dでマウスに反応

Viewport3D.interactive = true

にする。


Permalink | Comments (0)

AS3でサウンド再生

AS3で音を再生する方法。

import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.*;

var mySound:Sound;
var mySoundChannel:SoundChannel;
var mySoundTransform:SoundTransform = new SoundTransform();
var soundURL = new URLRequest("sound/Loop.mp3"); //ロードするMP3ファイルのURL

//再生
public function MainBGM_Play(){
 mySound = new Sound(soundURL);
 mySoundChannel = mySound.play(0,99);
 mySoundTransform.volume = 1;
 mySoundChannel.soundTransform = mySoundTransform;
}
//音量調整
public function MainBGM_Small(){
 mySoundTransform.volume = 0.5;
 mySoundChannel.soundTransform = mySoundTransform;
}
public function MainBGM_Stop(){
 mySoundTransform.volume = 0;
 mySoundChannel.soundTransform = mySoundTransform;
}
//完全にストップ
public static function SoundAllNo(){
 mySoundTransform.volume=0;
 SoundMixer.soundTransform = mySoundTransform;
 SoundMixer.stopAll();//再生中のサウンドをすべて停止します。
}


Permalink | Comments (0)

APMT4

September 04, 2008

APMT4 行ってきました!かなり刺激になりました。
長谷川踏太(tomato)さんはやっぱすごいね。
やっぱり自分はメディアアートが好きなんだと思いました。


Permalink | Comments (0)

AS3

最近、やっとAS3を本腰入れてやってます。基本実戦で覚えるタイプなのでかなり苦戦しています(泣)
いろいろメモしておきたい事が山ほどあるのでこれから随時アップしていきます。


Permalink | Comments (0)