larz
%Europe/Berlin %604 %2010, 15:29
ik heb een .swf file met verschillende layers
layer1 : mijn AS3 code
layer2 : knoppen voor play/pause/mute/sluiten
layer 2 is opgedeeld in verschillende delen, voor de verschillende weergaves ( muted aan het spelen, non-muted aan het spelen, muted pause, non-muted pause)
deze layer eindigt op frame 40.
layer1 loopt verder door.
bij het begin van de video roep ik frame 41 aan (omdat ik niet wil dat de buttons dan al zichtbaar zijn).
dan roep ik via een javascript het begin van mijn video op, de video begint dan te spelen en de knoppen worden zichtbaar. echter deze knoppen werken dan niet meer...
als ik begin met bv naar frame 2 te gaan (hier zijn de buttons wel zichtbaar) werken de knoppen wel.
mijn buttons worden niet aangemaakt in AS3 maar heb ik gewoon met tekeningetjes en tekst gemaakt.
wel maak ik de buttons clickable via addEventListener, dit gebeurd allemaal in layer1
als ik de player 1x stop met de JS Stop knop en dan terug op play druk werken de buttons WEL ...
ps: nog niet de X button van de flashplayer gebruiken want hier zit nog een bug in (zie deze post: http://www.flashfocus.nl/forum/showthread.php?p=403838)
vb te zien op : http://www.stream-unlimited.be/isv/aegon/buttons/hypotheken3.html
as3 code:
import flash.system.fscommand;
import flash.external.ExternalInterface;
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
Security.allowDomain("*");
stop();
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
//make vars to check playing/muted
var playingVar:int = new int();
var mutedVar:int = new int();
//playingVar = 0;
//mutedVar = 0;
var klantnrassist="1";
var movienrassist="1";
//can also be ns.play("http://dl1.stream-unlimited.be/...");
ns.play("http://www.stream-unlimited.be/isv/fitce_isv_01.flv");
if (checkPlayAgain != 5){
ns.togglePause();
}
var checkPlayAgain;
var checkFirstPlay=0;
//create video
var vid1:Video;
vid1=new Video();
addChild(vid1);
//set video parameters
vid1.x=0;
vid1.y=0;
//change resolution for larger movies //also change video properties of the movie
vid1.width=20;
vid1.height=20;
//attach netstream to video
vid1.attachNetStream(ns);
//move video to back
setChildIndex(vid1,0);
//set volume to 1
var st:SoundTransform=new SoundTransform();
st.volume=1;
ns.soundTransform=st;
//make buttons clickable
playButton1.addEventListener(MouseEvent.CLICK,onRe leasePlayButton1);
soundButton1.addEventListener(MouseEvent.CLICK,onR eleaseSoundButton1);
closeButton1.addEventListener(MouseEvent.CLICK,onR eleaseCloseButton1);
buttonTextVideo.addEventListener(MouseEvent.CLICK, myBtnClicked);
//function to go to iSpeakVideo website
function myBtnClicked(e:MouseEvent):void {
var url:String = "http://www.ispeakvideo.com/slml/bel/dth/";
var request:URLRequest = new URLRequest(url);
try
{
navigateToURL(request, '_blank');
}
catch (e:Error)
{
trace("Error occurred!");
}
}
//toggle pause
function onReleasePlayButton1(e:MouseEvent){
ns.togglePause();
if(playingVar==0 && mutedVar==0) {
playingVar=1;
gotoAndStop("playingStart");
}
else if(playingVar==0 && mutedVar==1) {
playingVar=1;
gotoAndStop("mutedPlaying");
}
else if(playingVar==1 && mutedVar==0) {
playingVar=0;
gotoAndStop("pausedStart");
}
else if(playingVar==1 && mutedVar==1) {
playingVar=0;
gotoAndStop("mutedPause");
}
}
//close the .swf
function onReleaseCloseButton1(e:MouseEvent){
totalTimeVid="0";
timePassed="0";
playerStop(buttonDiv2, movieDiv2, movieObject2);
}
//toggle mute
function onReleaseSoundButton1(e:MouseEvent):void {
if(st.volume==0){
st.volume=1;
ns.soundTransform=st;
mutedVar=0;
if(playingVar==0) {
gotoAndStop("pausedStart");
}
if(playingVar==1) {
gotoAndStop("playingStart");
}
}
else {
st.volume=0;
ns.soundTransform=st;
mutedVar=1;
if(playingVar==0) {
gotoAndStop("mutedPause");
}
if(playingVar==1) {
gotoAndStop("mutedPlaying");
}
}
}
//------------- START: remove movie after end of movie ------------------//
var totalTimeVid:String = new String();
var timePassed:String = new String();
var customClient:Object = new Object();
customClient.onMetaData = onMetaData;
ns.client = customClient;
function onMetaData(data:Object):void {
trace(data.duration);
//to check this, make a dynamic text object with name totalTimeText
//totalTimeText.text = Math.round(data.duration).toString();
totalTimeVid = Math.round(data.duration).toString();
}
//start timer
ShortTimer();
//timer to time the movie
function ShortTimer()
{
// creates a new timer which ticks every second
var minuteTimer:Timer = new Timer(1000);
// designates listeners for the interval and completion events
minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
minuteTimer.addEventListener(TimerEvent.TIMER_COMP LETE, onTimerComplete);
// starts the timer ticking
minuteTimer.start();
}
//timer to do a 1second delay
function SecondTimer()
{
// creates a new 1 second timer
var secondTimer:Timer = new Timer(1000,1);
// designates listeners for the interval and completion events
secondTimer.addEventListener(TimerEvent.TIMER, onTick2);
secondTimer.addEventListener(TimerEvent.TIMER_COMP LETE, onTimerComplete2);
// starts the timer ticking
secondTimer.start();
}
function onTick(event:TimerEvent):void
{
// displays the tick count so far
// The target of this event is the Timer instance itself.
//trace("tick " + event.target.currentCount);
//to check this, make a dynamic text object with name passedTimeText
//passedTimeText.text = Math.round(ns.time).toString();
timePassed = Math.round(ns.time).toString();
if(timePassed==totalTimeVid) {
//build in a 1 second delay before the .swf disappears
SecondTimer();
}
}
function onTimerComplete(event:TimerEvent):void
{
//this one will never become complete, this is just dummy text
trace("Time's Up!");
//to check this, make a dynamic text object with name passedTimeText
//passedTimeText.text = "time's up " + event.target.currentCount;
}
function onTick2(event:TimerEvent):void
{
//this will only tick once, dummy text
var t:int = new int();
}
function onTimerComplete2(event:TimerEvent):void
{
totalTimeVid="0";
timePassed="0";
playerStop(buttonDiv2, movieDiv2, movieObject2);
}
//------------- END: remove movie after end of movie ------------------//
//------------- START: allow javascript start/stop -----------//
ExternalInterface.addCallback("playerPlay", playerPlay);
ExternalInterface.addCallback("playerStop", playerStop);
var checkTest;
if (checkTest!=5){
var buttonDiv2:String;
var movieDiv2:String;
var movieObject2:String;
gotoAndStop(41);
}
playingVar=1;
//gotoAndStop("playingStart");
function playerPlay(buttonDiv, movieDiv, movieObject)
{
gotoAndStop(1);
gotoAndStop("playingStart");
buttonDiv2=buttonDiv;
movieDiv2=movieDiv;
movieObject2=movieObject;
checkTest=5;
if (checkFirstPlay!=0)
{
gotoAndStop(1);
checkFirstPlay=3;
checkPlayAgain=5;
}
else
{
ns.togglePause();
}
}
function playerStop(buttonDiv, movieDiv, movieObject)
{
checkFirstPlay = 5;
st.volume=0;
ns.soundTransform=st;
removeChild(vid1);
gotoAndStop(41);
ExternalInterface.call("removeContainer", buttonDiv, movieDiv, movieObject);
}
//------------- END: allow javascript start/stop -----------//
iemand enig idee?
thanks
layer1 : mijn AS3 code
layer2 : knoppen voor play/pause/mute/sluiten
layer 2 is opgedeeld in verschillende delen, voor de verschillende weergaves ( muted aan het spelen, non-muted aan het spelen, muted pause, non-muted pause)
deze layer eindigt op frame 40.
layer1 loopt verder door.
bij het begin van de video roep ik frame 41 aan (omdat ik niet wil dat de buttons dan al zichtbaar zijn).
dan roep ik via een javascript het begin van mijn video op, de video begint dan te spelen en de knoppen worden zichtbaar. echter deze knoppen werken dan niet meer...
als ik begin met bv naar frame 2 te gaan (hier zijn de buttons wel zichtbaar) werken de knoppen wel.
mijn buttons worden niet aangemaakt in AS3 maar heb ik gewoon met tekeningetjes en tekst gemaakt.
wel maak ik de buttons clickable via addEventListener, dit gebeurd allemaal in layer1
als ik de player 1x stop met de JS Stop knop en dan terug op play druk werken de buttons WEL ...
ps: nog niet de X button van de flashplayer gebruiken want hier zit nog een bug in (zie deze post: http://www.flashfocus.nl/forum/showthread.php?p=403838)
vb te zien op : http://www.stream-unlimited.be/isv/aegon/buttons/hypotheken3.html
as3 code:
import flash.system.fscommand;
import flash.external.ExternalInterface;
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
Security.allowDomain("*");
stop();
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
//make vars to check playing/muted
var playingVar:int = new int();
var mutedVar:int = new int();
//playingVar = 0;
//mutedVar = 0;
var klantnrassist="1";
var movienrassist="1";
//can also be ns.play("http://dl1.stream-unlimited.be/...");
ns.play("http://www.stream-unlimited.be/isv/fitce_isv_01.flv");
if (checkPlayAgain != 5){
ns.togglePause();
}
var checkPlayAgain;
var checkFirstPlay=0;
//create video
var vid1:Video;
vid1=new Video();
addChild(vid1);
//set video parameters
vid1.x=0;
vid1.y=0;
//change resolution for larger movies //also change video properties of the movie
vid1.width=20;
vid1.height=20;
//attach netstream to video
vid1.attachNetStream(ns);
//move video to back
setChildIndex(vid1,0);
//set volume to 1
var st:SoundTransform=new SoundTransform();
st.volume=1;
ns.soundTransform=st;
//make buttons clickable
playButton1.addEventListener(MouseEvent.CLICK,onRe leasePlayButton1);
soundButton1.addEventListener(MouseEvent.CLICK,onR eleaseSoundButton1);
closeButton1.addEventListener(MouseEvent.CLICK,onR eleaseCloseButton1);
buttonTextVideo.addEventListener(MouseEvent.CLICK, myBtnClicked);
//function to go to iSpeakVideo website
function myBtnClicked(e:MouseEvent):void {
var url:String = "http://www.ispeakvideo.com/slml/bel/dth/";
var request:URLRequest = new URLRequest(url);
try
{
navigateToURL(request, '_blank');
}
catch (e:Error)
{
trace("Error occurred!");
}
}
//toggle pause
function onReleasePlayButton1(e:MouseEvent){
ns.togglePause();
if(playingVar==0 && mutedVar==0) {
playingVar=1;
gotoAndStop("playingStart");
}
else if(playingVar==0 && mutedVar==1) {
playingVar=1;
gotoAndStop("mutedPlaying");
}
else if(playingVar==1 && mutedVar==0) {
playingVar=0;
gotoAndStop("pausedStart");
}
else if(playingVar==1 && mutedVar==1) {
playingVar=0;
gotoAndStop("mutedPause");
}
}
//close the .swf
function onReleaseCloseButton1(e:MouseEvent){
totalTimeVid="0";
timePassed="0";
playerStop(buttonDiv2, movieDiv2, movieObject2);
}
//toggle mute
function onReleaseSoundButton1(e:MouseEvent):void {
if(st.volume==0){
st.volume=1;
ns.soundTransform=st;
mutedVar=0;
if(playingVar==0) {
gotoAndStop("pausedStart");
}
if(playingVar==1) {
gotoAndStop("playingStart");
}
}
else {
st.volume=0;
ns.soundTransform=st;
mutedVar=1;
if(playingVar==0) {
gotoAndStop("mutedPause");
}
if(playingVar==1) {
gotoAndStop("mutedPlaying");
}
}
}
//------------- START: remove movie after end of movie ------------------//
var totalTimeVid:String = new String();
var timePassed:String = new String();
var customClient:Object = new Object();
customClient.onMetaData = onMetaData;
ns.client = customClient;
function onMetaData(data:Object):void {
trace(data.duration);
//to check this, make a dynamic text object with name totalTimeText
//totalTimeText.text = Math.round(data.duration).toString();
totalTimeVid = Math.round(data.duration).toString();
}
//start timer
ShortTimer();
//timer to time the movie
function ShortTimer()
{
// creates a new timer which ticks every second
var minuteTimer:Timer = new Timer(1000);
// designates listeners for the interval and completion events
minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
minuteTimer.addEventListener(TimerEvent.TIMER_COMP LETE, onTimerComplete);
// starts the timer ticking
minuteTimer.start();
}
//timer to do a 1second delay
function SecondTimer()
{
// creates a new 1 second timer
var secondTimer:Timer = new Timer(1000,1);
// designates listeners for the interval and completion events
secondTimer.addEventListener(TimerEvent.TIMER, onTick2);
secondTimer.addEventListener(TimerEvent.TIMER_COMP LETE, onTimerComplete2);
// starts the timer ticking
secondTimer.start();
}
function onTick(event:TimerEvent):void
{
// displays the tick count so far
// The target of this event is the Timer instance itself.
//trace("tick " + event.target.currentCount);
//to check this, make a dynamic text object with name passedTimeText
//passedTimeText.text = Math.round(ns.time).toString();
timePassed = Math.round(ns.time).toString();
if(timePassed==totalTimeVid) {
//build in a 1 second delay before the .swf disappears
SecondTimer();
}
}
function onTimerComplete(event:TimerEvent):void
{
//this one will never become complete, this is just dummy text
trace("Time's Up!");
//to check this, make a dynamic text object with name passedTimeText
//passedTimeText.text = "time's up " + event.target.currentCount;
}
function onTick2(event:TimerEvent):void
{
//this will only tick once, dummy text
var t:int = new int();
}
function onTimerComplete2(event:TimerEvent):void
{
totalTimeVid="0";
timePassed="0";
playerStop(buttonDiv2, movieDiv2, movieObject2);
}
//------------- END: remove movie after end of movie ------------------//
//------------- START: allow javascript start/stop -----------//
ExternalInterface.addCallback("playerPlay", playerPlay);
ExternalInterface.addCallback("playerStop", playerStop);
var checkTest;
if (checkTest!=5){
var buttonDiv2:String;
var movieDiv2:String;
var movieObject2:String;
gotoAndStop(41);
}
playingVar=1;
//gotoAndStop("playingStart");
function playerPlay(buttonDiv, movieDiv, movieObject)
{
gotoAndStop(1);
gotoAndStop("playingStart");
buttonDiv2=buttonDiv;
movieDiv2=movieDiv;
movieObject2=movieObject;
checkTest=5;
if (checkFirstPlay!=0)
{
gotoAndStop(1);
checkFirstPlay=3;
checkPlayAgain=5;
}
else
{
ns.togglePause();
}
}
function playerStop(buttonDiv, movieDiv, movieObject)
{
checkFirstPlay = 5;
st.volume=0;
ns.soundTransform=st;
removeChild(vid1);
gotoAndStop(41);
ExternalInterface.call("removeContainer", buttonDiv, movieDiv, movieObject);
}
//------------- END: allow javascript start/stop -----------//
iemand enig idee?
thanks