トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   サーバ関連【CGI・FCS・XMLSocket etc】
     FLVのキューポイントをトリガしたいのですが...
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
chiri
Åê¹ÆNo.24111
投稿日時: 2006-3-4 10:02
新米
居住地:
投稿: 8
使用環境:
Mac OS 10.4で?す。
Flash8を使用しています。
わかならにことばかり、教えてくださ?い。
FLVのキューポイントをトリガしたいのですが...
こちらのフォーラムには、とってもお世話になっています。

FLVでストリーミング再生をしています。

スクリプトは

myNc = new NetConnection ();
myNc.connect (null);
myNs = new NetStream (myNc);
myVideo.attachVideo (myNs);

で、ボタンにアクションを入れて、
_root.mark.btn3.onRelease = function (){
myNs.play ("test.flv");
}

といった感じでストリーミングしています。
いま、使用しているtest.flvにキューポイントを
加えて、二つのことを達成したいと思っています。

1.映像をループ
2.指定した位置で文字情報を流す

flashのヘルプで見つけた、スクリプト

myNs.onMetaData = function(myMeta) {
for (var i in myMeta) {
trace(i + ":?t" + myMeta[i])
}

を使用して、データを引っ張ってきたりしているのですが、
cuePointの何を指定して、どんなメッソドを使えば、
動くのかがよくわかりません。

cuePointを一応、
name: n1
time:3
type:event
parameters:
cc:hello

なんていう感じでエンコーダーで指定してみたのですが、
これらの情報をどのように使用すれば、キューポイントが
トリガーされるのか困っています。
たとえば、どれが変数やオブジェクトにあたるのでしょうか?

どなたか、教えてください!!!
よろしくお願いします。

chiri
永井勝則
Åê¹ÆNo.24115
投稿日時: 2006-3-4 15:31
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FLVのキューポイントをトリガしたいのですが...
確認ですが、myVideoというのはFLVPlaybackやメディアコンポーネントではないですよね?
ライブラリで新規ビデオを作成して云々、というコンポーネントを使わないVideoオブジェクトを使った場合、

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.onMetaData = function(infoObject:Object) {
	var len:Number = infoObject["cuePoints"].length;
	for (var i:Number = 0; i<len; i++) {
		trace(infoObject["cuePoints"][i].name);
		//trace(infoObject["cuePoints"][i].parameters.パラメータで指定した名前)
		trace(infoObject["cuePoints"][i].time)
		trace(infoObject["cuePoints"][i].type)
	}
	
	};
ns.onCuePoint = function(infoObject:Object){
	var (pName:String in infoObject){
		trace(pName + " : " + infoObject[pName])
	}
}
ns.play("flv.flv");
注意)このスクリプトは手打ちです

でキューポイントのデータにはアクセスできるようです。

とはいえ、これでは面倒なので、コンポーネントを使う方がよいと思います。

FLVPlaybackというコンポーネントが使いやすいと思うので、ヘルプを参考に再生してみてください。
キューポイントについては、ヘルプの
FLVPlayback.cuePoint
に出ています。

それから、FLVファイルの再生に関して、Flash Communication Server、Flash Media Server 2を使わない、"http"上でのSWF単体でのFLVファイル再生は”プログレッシブダウンロード”といって、”ストリーミング”とは区別されます。
ではでは。


----------------
永井勝則:
himco.jp :

chiri
Åê¹ÆNo.24116
投稿日時: 2006-3-4 16:01
新米
居住地:
投稿: 8
使用環境:
Mac OS 10.4で?す。
Flash8を使用しています。
わかならにことばかり、教えてくださ?い。
Re: FLVのキューポイントをトリガしたいのですが...

永井様


どうもありがとうございます。

今、大量にヘルプやPDFの説明書を読んでいるんですけど、
どこをどう読めばよいのか、途方にくれていたところです。

やっぱりコンポーネントを使ったほうが良いんですね。コンポーネント自体がよくわかっていなかったので…。

いただいたスクリプトでtraceはできたのですが、実際に
他のシンボルを動かすときには、キューポイントのどの
情報を指定するのでしょうか?

たとえば、
cuePoint
name: n1
time:3
type:event
parameters:
cc:hello

というキューポイントを作成したのですが、このキューポイント
が再生される時点で、ほかのムービーシンボルstar_movのX軸を150動かすなんて場合、cuePointのどの値と関連してくるの
でしょうか。

よろしくお願いします。

chiri
永井勝則
Åê¹ÆNo.24123
投稿日時: 2006-3-4 20:28
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FLVのキューポイントをトリガしたいのですが...
まずは、FLVPlaybackコンポーネントを使って、FLVファイルを再生させることが第一です。
ヘルプの量はFLVPlaybackコンポーネントだけでもずいぶんありますが、幸いにして検索できます。
で、FLVPlayback.cuePointの項を見ます。
すると、リスナーオブジェクトを使った例が書かれています。
キューポイントの中身は、eventObject.info.timeやeventObject.info.nameなどで
取得できます。
例えば、nameが"n1"だったらムービークリップを移動させるというスクリプトは
ここに書きます。
つまり、
listenerObject.cuePoint = function(eventObject:Object):Void{
var theName:String = eventObject.info.name;
if(theName == "n1"){
//ムービークリップを移動させる
}
}
のようになるかと思います。

このあたりのことを書いてある書籍はまだ出ていず、直接的な資料はFlashのヘルプのみです。あとはインターネットで外国のサイトを検索するくらいでしょうか。
ともかく、ヘルプを読むのみです。もしくはプリントするとか。

ではでは。


----------------
永井勝則:
himco.jp :

chiri
Åê¹ÆNo.24141
投稿日時: 2006-3-6 11:02
新米
居住地:
投稿: 8
使用環境:
Mac OS 10.4で?す。
Flash8を使用しています。
わかならにことばかり、教えてくださ?い。
Re: FLVのキューポイントをトリガしたいのですが...
永井様

 どうもありがとうございます。
 FLVPlaybackで再生を試しているのですが、どうも、
 キューポンが再生されたときにムービークリップと
 連動しません。

 my_FLVPlybk.playButton = playbtn;
listenerObject.cuePoint = function(eventObject:Object):Void {
var theName:String = eventObject.info.name;
if (theName == "n1") {
_root.sikaku._x += 100;
}
};

で、プレイボタンとFLVPlaybackを連動させて、ムービー
クリップsikakuをキューポイントn1が再生されるときに
x軸を100動かしたいのですが、どうも、うまく連動しません。

キューポイントの中身は、
名前 n1
タイム 03:00
タイプ イベント

パラメーター
名前 cc
値 hello

という情報が入れてみました。
どこか、間違っているところがあるのでしょうか。

よろしくお願いします。

chiri
永井勝則
Åê¹ÆNo.24146
投稿日時: 2006-3-6 11:57
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FLVのキューポイントをトリガしたいのですが...
前の内容と違って、
my_FLVPlybk.playButton = playbtn;
で、再生ボタンを別に作成されているようですが、
これはFLVPlayback Custom UIコンポーネントのPlayButtonでしょうか、
それとも通常のムービークリップかボタンでしょうか?
新しいことは少し抑えてまずは、FLVPlaybackコンポーネントのボタン類を表示させて
そのボタン類で制御することが先かと思います。

で、書かれている内容で全てかどうか分かりませんが、たとえば、
my_FLVPlaybk.addEventListener("cuePoint",リスナーオブジェクト);
は実行されていますでしょうか?
(これを実行していないと、キューポイントの出力も行えません)

書かれているスクリプトだけで言うと、この再生用ボタンが普通のムービークリップ
の場合は何も起こりません。
FLVPlayback Custom UIコンポーネントのPlayButtonの場合は、
コンポーネント同士がしかるべき設定をすると、自動的に結びつくようです。

もし、リスナーオブジェクトとかaddEventListenerとかの使用にまだ慣れていらっしゃらない場合は、
キューポイントの前にリスナー/イベントという構造を把握する必要があります。

FLVPlayback.cuePointでキューポイントの情報をたしかに取得できているかどうか、
trace()で出力して確認します。
eventObject.info.nameでキューポイントの名前が取得できているかtrace()で確認します。
さらに言えば、_root.shikakuでshikakuインスタンスにアクセスできているのかtrace()で確認します。
一足飛びにいかないで、ひとつずつtrace()で扱いたいデータ、情報、インスタンスなどを取得できているのか、確かめていきます。
ここでundefinedが返される場合は、どこかに問題があるので、それを突き止めるという作業に移ります。


----------------
永井勝則:
himco.jp :

chiri
Åê¹ÆNo.24152
投稿日時: 2006-3-6 13:37
新米
居住地:
投稿: 8
使用環境:
Mac OS 10.4で?す。
Flash8を使用しています。
わかならにことばかり、教えてくださ?い。
Re: FLVのキューポイントをトリガしたいのですが...
永井様

 本当に助かります。
 どうもありがとうございました。

 教えていただいた点と
 ヘルプのコンポーネントリファレンスガイドと
 いうページを参照にして、動かすことができました。

 PlayButtonは、コンポーネントのものを使用しています。
 ですが、これも、デザインを変えたいと思っていて、
 シンボルの中に入っていってデザインをグラフィックごと
 変えようと思っているのですが、なかなかややこしいです。

 わたしは、listner関係が苦手でいつも避けていたので、
 今回はとても勉強になりました。

 初歩的なことで申し訳ないのですが、
 listenerObject:Objectに書かれている:Objectっていうのは
 これがObjectだよってことを教えているだけなのでしょうか。

 ほかにも役割があるんでしょうか?

 それと、function(eventObject:Object):Void のVoidって
 どういう意味なんでしょうか。

 何度も何度もすみません。

 本当にありがとうございます。

chiri
永井勝則
Åê¹ÆNo.24162
投稿日時: 2006-3-6 15:22
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FLVのキューポイントをトリガしたいのですが...
リスナー/イベントというモデル(そういう形式)は、2次方程式の解の公式のように、そういうものだと観念して
形として覚えるのがよいと思います。
形というのは、
リスナーオブジェクト:Object=new Object();
リスナーオブジェクト.イベントハンドラ = function(イベントオブジェクト:Object):Void{
ここで何かする;
}
コンポーネントのインスタンス.addEventListener("イベントハンドラ名",リスナーオブジェクト)
です。
リスナーオブジェクトというのは普通の(そして一番大元の)汎用オブジェクトです。
こいつにイベントハンドラ(=このイベントが発生したらそれをつかまえる)関数を定義して、
コンポーネントに登録すると、ありがたいことにこっちがその後何にもしなくても、監視をつづけて、報告してくれるのです。

質問のObjectとかVoidの指定というのは、いわゆる”厳密な型指定”という、
難解な日本語で呼ばれる、ActionScript2.0での書き方です。
スクリプトを記述するときに、そのタイプ(型)をしっかりと(厳密に)指定しておくと、
FlashのコンパイラがFLAファイルをコンパイル(機械語に翻訳)するときに、調べてくれる、という機能を使うことができます。

ActionScriptは以前は、スラッシュ・シンタックスという超独特の書き方をする、方言の強い言語だったのですが、
Flash 5でドット・シンタックスを採用し、MX、2004と進むにつれ、
いわゆるECMAScriptという書き方の決まりに意図的に近づいています。

詳しくはヘルプ、書籍「Flash ActionScript2.0 入門ガイド+実践サンプル集」などをご覧ください。


----------------
永井勝則:
himco.jp :

chiri
Åê¹ÆNo.24171
投稿日時: 2006-3-6 18:06
新米
居住地:
投稿: 8
使用環境:
Mac OS 10.4で?す。
Flash8を使用しています。
わかならにことばかり、教えてくださ?い。
Re: FLVのキューポイントをトリガしたいのですが...

永井様

ほんっとに親切にありがとうございました。
ちょっとしたことを教わるだけで、とても
勇気が付きますね。

もっと、勉強して面白いもの作りたいです。

書籍のほう、チェックしてみます。

どうもありがとうございました。
またよろしくお願いします。



chiri
ネコジャラ
Åê¹ÆNo.28794
投稿日時: 2006-9-18 1:59
新米
居住地: 東京
投稿: 22
使用環境:
WindowsXP Pro SP2
Flash8 Pro
mProjector V3
Re: FLVのキューポイントをトリガしたいのですが...
お世話になります。
キューポイントの話題が出ていたので便乗して質問させて下さい。

現在、オリジナルflvプレイヤーをFlash8Proで作成しております。プレイヤー.swfから外部の動画.flvを読み込み、再生/停止ボタン・シークバーをつけるところまで出来ました。

今後、キューポイントを使って、例えば"chapter1"というキューポイントを動画.flvに埋め込み、その秒数が来たら別のswfを再生させる(テロップ表示)という事をやろうと思っています。

が、キューポイントのデータ自体はヘルプを見て取得出来た(traceで表示出来ました)のですが、それをリスナーで検知する方法が分かりません。

といいますか、そもそも、キューポイントはFLVPlayback等のコンポーネント専用なのでしょうか?

よろしくお願いします。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops