Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 14h43   #1
Invité de passage
 
john leo
Inscription : octobre 2010
Messages : 5
Détails du profil
Informations personnelles :
Nom : john leo

Informations forums :
Inscription : octobre 2010
Messages : 5
Points : 1
Points : 1
Par défaut xml flv swf : jouer un swf en fonction du flv, depuis xml, en action script

bonjour,
voila mon problème,
j'ai téléchargé un script et je souhaite faire des ajouts,

1. (fait) ajouter dans le xml un attribut (manuellement ok) : swf
2. Lire ce swf en même temps que le flv présent dans la même balise et ici, je ne réussit pas a RECUPERER l'url du swf et faire un loadmovie, car je ne sais pas le faire.

voila donc le xml :

Code :
1
2
3
4
5
<?xml version="1.0" encoding="ISO-8859-1"?>
<videos>
<video url="./video/video1.flv" desc="test" flash="./video/1.swf"/>
<video url="./video/video2.flv" desc="test 2" flash="./video/2.swf"/>
</videos>
et le action script complet avec par la suite le code d'ajout et les idees de code.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);

theVideo.attachVideo(ns);

ns.setBufferTime(10);

ns.onStatus = function(info) {
	if(info.code == "NetStream.Buffer.Full") {
		bufferClip._visible = false;
	}
	if(info.code == "NetStream.Buffer.Empty") {
		bufferClip._visible = true;
	}
	if(info.code == "NetStream.Play.Stop") {
		ns.seek(0);
	}
}

playButton.onRelease = function() {
	ns.pause();
}

rewindButton.onRelease = function() {
	ns.seek(0);
}

this.createEmptyMovieClip("vFrame",this.getNextHighestDepth());
vFrame.onEnterFrame = videoStatus;

var amountLoaded:Number;
var duration:Number;

ns["onMetaData"] = function(obj) {
	duration = obj.duration;
}

function videoStatus() {
	amountLoaded = ns.bytesLoaded / ns.bytesTotal;
	loader.loadbar._width = amountLoaded * 208.9;
	loader.scrub._x = ns.time / duration * 208.9;
}

var scrubInterval;

loader.scrub.onPress = function() {
	vFrame.onEnterFrame = scrubit;
	this.startDrag(false,0,this._y,208,this._y);
}

loader.scrub.onRelease = loader.scrub.onReleaseOutside = function() {
	vFrame.onEnterFrame = videoStatus;
	this.stopDrag();
}

function scrubit() {
	ns.seek(Math.floor((loader.scrub._x/208)*duration));
}

var theMenu:ContextMenu = new ContextMenu();
theMenu.hideBuiltInItems();
_root.menu = theMenu;

var item1:ContextMenuItem = new ContextMenuItem("::::: Video Controls :::::",trace);
theMenu.customItems[0] = item1;

var item2:ContextMenuItem = new ContextMenuItem("Play / Pause Video",pauseIt,true);
theMenu.customItems[1] = item2;

var item3:ContextMenuItem = new ContextMenuItem("Replay the Video",restartIt);
theMenu.customItems[2] = item3;

var item4:ContextMenuItem = new ContextMenuItem("© 2005 Lee Brimelow",trace,true);
theMenu.customItems[3] = item4;

function pauseIt() {
	ns.pause();
}

function stopIt() {
	ns.seek(0);
	ns.pause();
}

function restartIt() {
	ns.seek(0);
}

_root.createEmptyMovieClip("vSound",_root.getNextHighestDepth());
vSound.attachAudio(ns);

var so:Sound = new Sound(vSound);

so.setVolume(100);

mute.onRollOver = function() {
	if(so.getVolume()== 100) {
		this.gotoAndStop("onOver");
	}
	else {
		this.gotoAndStop("muteOver");
	}
}

mute.onRollOut = function() {
	if(so.getVolume()== 100) {
		this.gotoAndStop("on");
	}
	else {
		this.gotoAndStop("mute");
	}
}

mute.onRelease = function() {
	if(so.getVolume()== 100) {
		so.setVolume(0);
		this.gotoAndStop("muteOver");
	}
	else {
		so.setVolume(100);
		this.gotoAndStop("onOver");
	}
}

var vlist:XML = new XML();
vlist.ignoreWhite = true;

vlist.onLoad = function() {
	var videos:Array = this.firstChild.childNodes;
	for(i=0;i<videos.length;i++) {
		videoList.addItem(videos[i].attributes.desc,videos[i].attributes.url);
	}
	
	ns.play(videoList.getItemAt(0).data);
	videoList.selectedIndex = 0;
}
	
var vidList:Object = new Object();

vidList.change = function() {
	ns.play(videoList.getItemAt(videoList.selectedIndex).data);
}

videoList.addEventListener("change",vidList);

vlist.load("videos.xml");

videoList.setStyle("selectionColor",0x000000);
videoList.setStyle("textSelectedColor",0xFFFFFF);
videoList.setStyle("rollOverColor",0x000000);

j'ajouterai dans les lignes de trois fonctions du code :

- rembobiner
- afficher la première vidéo
- lancer une vidéo depuis la playlist

un loadmovie

Code :
1
2
 
loadMovie("ici l'url du swf correspondant à la video en cours", ", _level0.mySquare);

Je pense qu'il s'agit de cette fonction déjà utilisé dans le code, mais qu'il faut étendre


Code :
1
2
3
4
5
vlist.onLoad = function() {
	var videos:Array = this.firstChild.childNodes;
	for(i=0;i<videos.length;i++) {
		videoList.addItem(videos[i].attributes.desc,videos[i].attributes.url);
	}
en ajoutant, flash, qui est l’attribut du xml

Code :
1
2
3
 {
		videoList.addItem(videos[i].attributes.desc,videos[i].attributes.url,videos[i].attributes.flash);
	}

mais faut il modifier le array, la je ne sais pas le faire

Code :
var videos:Array = this.firstChild.childNodes;
l'autre problématique étant que le code du loadmovie devra être placé dans "affichage par défaut", "affichage en fonction de la playlist", "ré-affichage en fonction du reload"


ci joint la capture du player




merci beaucoup a vous de m'aider, car avec ce code, je serais en mesure de créer une double tv, avec, la vidéo de fond, comme on voit sur l'image, et des petites vidéos, chargé depuis le flash (swf), qui s'ajouteront à la vidéo du fond.

Je publierai ici les résultats et je vous donnerai l’URL de téléchargement du projet qui sera inclut dans un cms.

Encore merci, mon besoin garantissant la reconnaissance et le respect.
deluxerabbit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h18.


 
 
 
 
Partenaires

Hébergement Web