home > AS3
SWFObjectとFlashVars
December 22, 2008
SWFObject v1.5の場合は
var so = new SWFObject("swf/main.swf", "main", "100%", "100%", "8", "#FFFFFF", true);
so.addVariable("FlashVars", "sample");
so.addParam("allowScriptAccess", "always");
〜
so.write("flashContentsBlock");
SWFObject v2.1の場合は
<head>
<script type="text/javascript" src="swfobject-2-1.js"></script>
<script type="text/javascript">
function createPlayer(thePlaceholder, thePlayerId, theFile, theAutostart) {
var flashvars = {
file:theFile,
autostart:theAutostart
}
var params = {
allowfullscreen:"true",
allowscriptaccess:"always"
}
var attributes = {
id:thePlayerId,
name:thePlayerId
}
swfobject.embedSWF("player.swf", thePlaceholder, "320", "196", "9.0.115", false, flashvars, params, attributes);
}
function init() {
createPlayer("placeholder1", "player1", "xxxxxx1.flv", false);
createPlayer("placeholder2", "player2", "xxxxxx2.flv", false);
createPlayer("placeholder3", "player3", "xxxxxx3", false);
}
</script>
</head>
でいけるみたい。忘れそうなのでメモ。
Posted at 11:20 AM | Comments (0)
mouseEnabled
November 23, 2008
AS2ではuseHandCursorでボタンの機能を無効化していたのですが、AS3では
_mc.mouseEnabled = false;
でOK。
Posted at 09:07 PM | Comments (0)
AS3でカスタムイージング
October 18, 2008
AS3でカスタムイージングを使う時は下記のfromCurve関数を設定すればOK。
private const _sample_array:Array = [{Mx:0,My:0,Nx:0,Ny:8,Px:10,Py:-83},{Mx:10,My:-75,Nx:26,Ny:-238,Px:17,Py:206},{Mx:53,My:-107,Nx:62,Ny:186,Px:-21,Py:-195},{Mx:94,My:-116,Nx:22,Ny:-202,Px:20,Py:175},{Mx:136,My:-143,Nx:54,Ny:156,Px:-18,Py:-174},{Mx:172,My:-161,Nx:14,Ny:-94,Px:14,Py:55},{Mx:200, My:-200}];〜
Tweener.addTween(SampleMC, {y:0, time:5, transition:fromCurve,transitionParams: _sample_array});
〜
function fromCurve (t:Number,b:Number,c:Number,d:Number,pl:Array):Number {
var r:Number = 200 * t/d;
var i:Number = -1;
var e:Object;
while (pl[++i].Mx<=r) e = pl[i];
var Px:Number = e.Px;
var Nx:Number = e.Nx;
var s:Number = (Px==0) ? -(e.Mx-r)/Nx : (-Nx+Math.sqrt(Nx*Nx-4*Px*(e.Mx-r)))/(2*Px);
return (b-c*((e.My+e.Ny*s+e.Py*s*s)/200));
}
Posted at 05:53 PM | Comments (0)
setChildIndex()
October 17, 2008
最前面にするとき
var lastIndex:int = 全面にするMCの親.numChildren - 1;
全面にするMCの親.setChildIndex(全面にするMC, lastIndex);
(numChildren ・・・ この子リストに含まれる子の数)
最背面にするとき
背面にするMCの親.setChildIndex(背面にするMC, 0);
http://ameblo.jp/linking/entry-10069008383.html
Posted at 02:14 PM | Comments (0)
自身のロード状況を表示
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();
Posted at 06:01 PM | 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);
}
}
}
Posted at 05:50 PM | 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
Posted at 05:37 PM | Comments (0)
Tweener
September 09, 2008
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
import caurina.transitions.properties.FilterShortcuts;
ColorShortcuts.init();
FilterShortcuts.init();
Tweener.addTween(sample.MoveClip {alpha:1, _Blur_blurX:20, _Blur_blurX:20,
transition:"easeInQuart", time:0.5, delay:2.5, onComplete:Sample});
public function Sample(){
〜Action〜
}
かなり多用してます。
_brightnessもあります。
【追記】
解除する時は
MovieClip.removeTweens( 〜 );
でOK
Posted at 09:54 PM | 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");
なんかめんど臭い。
Posted at 09:50 PM | Comments (0)
AS3でFlv再生
September 05, 2008
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
public class VideoSetting{
//NETSTREAM
var connection:NetConnection;
var netStream:NetStream;
var obj:Object;
var video_obj:Video;
var video_cotena:DisplayObjectContainer;
//ローカルファイルアクセス用のネットコネクションを作成する
connection = new NetConnection();
connection.connect (null);
//ネットストリームオブジェクトを作成する
netStream = new NetStream(connection);
//画面上に表示する
video_obj = new Video();
video_cotena.stage.addChild(video_obj);
video_obj.x = 0;
video_obj.y = 0;
video_obj.width = 900;
video_obj.height = 675;
//最背面に
video_cotena.stage.setChildIndex(video_obj, 0);
video_cotena.stage.addEventListener(Event.ENTER_FRAME, Main_EnterFrame);
function Main_EnterFrame(event:Event){
//ビデオオブジェクトとネットストリームオブジェクトを関連付ける
video_obj.attachNetStream (netStream);
netStream.play("flv/Sample.flv");//再生
//-----------------------------------------------------------------
//再生中の FLV ファイルに埋め込まれている詳細情報を取得
//-----------------------------------------------------------------
obj = new Object();
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]);
}
duration = param.duration;
};
//キューポイント
obj.onCuePoint = function(infoObject:Object){
var key_cue:String;
for (key_cue in infoObject){
if(infoObject[key_cue] == "half"){
trace("CuePoint : HALP");
//netStream.pause();
}
if(infoObject[key_cue] == "end"){
trace("CuePoint : END");
//netStream.pause();
}
}
}
netStream.client = obj;
//-----------------------------------------------------------------
//FLV設定
//-----------------------------------------------------------------
netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHandler);
netStream.addEventListener(IOErrorEvent.IO_ERROR,URLLoaderIOErrorFunc);
netStream.addEventListener(NetStatusEvent.NET_STATUS ,URLLoaderProgressFunc);
function asyncErrorHandler(event:AsyncErrorEvent):void {
trace("ASYNC_ERROR");
}
function URLLoaderIOErrorFunc (event : IOErrorEvent) {
trace ("ファイル入出力のエラー");
}
function URLLoaderProgressFunc (event : NetStatusEvent) {
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);
}
}
}
Posted at 08:35 PM | 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
これを実装してみたけど、うまくいきませんでした...
Posted at 08:25 PM | Comments (0)
Papervision3Dでマウスに反応
Viewport3D.interactive = true
にする。
Posted at 08:18 PM | 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();//再生中のサウンドをすべて停止します。
}
Posted at 08:03 PM | Comments (0)
AS3
September 04, 2008
最近、やっとAS3を本腰入れてやってます。基本実戦で覚えるタイプなのでかなり苦戦しています(泣)
いろいろメモしておきたい事が山ほどあるのでこれから随時アップしていきます。
Posted at 05:28 PM | Comments (0)