NEWS FLUIDE AVEC ARRET AU PASSAGE DE LA SOURIS ET TEXTE HTML LIEN CLIQUABLE FICH

top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010 - 22 oct. 2007 à 23:27
paranoixfr Messages postés 4 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 2 septembre 2009 - 12 août 2009 à 17:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44470-news-fluide-avec-arret-au-passage-de-la-souris-et-texte-html-lien-cliquable-fichier-xml

paranoixfr Messages postés 4 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 2 septembre 2009
12 août 2009 à 17:39
Bonjour! merci pour ce code qui m'a aider à comprendre (enfin pas encore tout à fait) comment interagissait flash avec le xml.
Je suis hyper débutant et j'utilise CS3 en AS2. J'ai pris le temps de bien refaire le code selon les sources citées plus haut et tout va bien. Le problème est que j'aimerai integrer ce code à un swf pour que les news s'affiche sur le site en full flash. J'ai essayé en claquant betement le swf à la racine du site et son code sur une frame, tout va bien sauf que le clip s'arrète dès que l'on se trouve au dessus et sur la gauche du clip (j'ai tenté de comprendre ce systeme de mask puis je me suis dis qu'en loadant le clip avec un load movie tout irait pour le mieux)
J'ai donc crée un clip vide avec ceci par dessus:

onClipEvent (load) {
loadMovie("scroll.swf", this);

}
mais là il me dit "Error opening URL 'file:///H|/travail/site%5Fjulie/site/scroll.swf'"
Et rien n'apparait...
Alors je sais que ça fait surement 300 fois que vous devez voir ce genre de cas mais bon il faut bien commencer un jour et malheureusement après avoir lu et relu les differents sujets à ce propos, je cafouille toujours autant et c'est des plus frustrant...
voilà j'espère que quelqu'un aura une reponse...
MERCI!
fabgarou Messages postés 1 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 15 avril 2009
15 avril 2009 à 14:58
je cherche a intégrer une photo dans ce cette source(genre 1 photo par news).
Sauriez vous m'aider?
Dodgygeaser Messages postés 2 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 avril 2008
16 avril 2008 à 17:12
Pouvez vous réaliser une maj et modifier l'archive zip avec les nouveaux ajouts svp merci
pentahertz Messages postés 28 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 novembre 2007
15 avril 2008 à 09:27
voici le system complet
import flash.geom.*;

var container:MovieClip = getScrollContainer(this, 210, 110, 1);
//
function getScrollContainer(target:MovieClip, width:Number, height:Number, speed:Number):MovieClip
{
var container:MovieClip = target.createEmptyMovieClip('scrollContainer', target.getNextHighestDepth());
var clipField:MovieClip = container.createEmptyMovieClip('clipField', 0);
clipField.createTextField('field',5,520,5,width,height);
//

var field:TextField = clipField['field'];
field.html = true;
field.multiline = true;
field.type = "dynamic";
field.wordWrap = true;
field.selectable = false;
field.autoSize = true;
field.font = "Arial"
field.mouseWheelEnabled = false;
//

// var format:TextFormat = new TextFormat();
// format.font = "Arial";
// format.textAlign = "Center";
// field.setTextFormat(0, firstIndex, format);

var mask:MovieClip = container.createEmptyMovieClip('mask', 1);
mask._x=520
mask.beginFill(0xFF6600,50);
mask.lineTo(width,0);
mask.lineTo(width,height);
mask.lineTo(0,height);
clipField.setMask(mask);
//
container.onEnterFrame = function():Void
{
if (this.init) {
var over:Boolean = mask.hitTest(_root._xmouse, _root._ymouse);
clipField._y -= (over ? 0 : speed);
//
if (clipField._y<=-clipField._height) clipField._y = height;
}
};
return container;
}

R_news = new LoadVars();
//objet d'envoie des variables flash --> php
S_news = new LoadVars();

R_news.onLoad = function(Psucces)
{
if (Psucces)
{
//il y'a eu un chargement
if (this.R_nb_news == 0)
{ //la base de donnée est vide
_root.letxt = "Pas de NEWS disponible !";
} else
{ //la base contient au moins une news
_root.letxt = "";
//on affiche cette news
for (var i = 0; i<this.R_nb_news; i++)
{ _root.letxt = this["R_texte_"+i]+"\n";
//var styleObj:TextField.StyleSheet = new TextField.StyleSheet();
//styleObj.onLoad = function(success:Boolean)
//{
// if (success)
// {
// container.clipField.field.styleSheet = styleObj;
// container.clipField.field.htmlText = _root.letext;
// }
}
//styleObj.load("styles.css");
//}
container.clipField.field.htmlText = _root.letxt;
container.init = true;
container.onRollOut();

}
} else
{
//il n'y'a pas eu de chargement
_root.letxt = "Erreur lors du chargement des NEWS...";
}
}
//<<<<<<<<<<<<<<<< On regarde s'il y'a des news >>>>>>>>>>>>>>>>
R_news.load("lirenews.php");



fichier PHP
<?
// connection
mysql_connect("host","nomdebase","password");
mysql_select_db("nomdebase");

// on selectionne le contenu
$d_news = mysql_query("SELECT * FROM news order by id desc");
// on initialise
$i = 0;
$listeResultats = "";
// boucle pour afficher le resultat
while($ligne = mysql_fetch_array($d_news)) {
$date=$ligne[date];
$titre=$ligne[titre];
$texte=$ligne[texte];
$listeResultats .= "&R_date_$i=$date&R_titre_$i=$titre&R_texte_$i=$texte";
// $listeResultats .= "&R_date_$i='ici'$le_titre";
$i++;
}
$listeResultats .= "&R_nb_news=$i&";

// On affiche pour la donner a Flash
echo $listeResultats;
?>
pentahertz Messages postés 28 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 novembre 2007
14 avril 2008 à 20:48
import flash.geom.*;

var container:MovieClip = getScrollContainer(this, 210, 110, 1);
//
function getScrollContainer(target:MovieClip, width:Number, height:Number, speed:Number):MovieClip
{
var container:MovieClip = target.createEmptyMovieClip('scrollContainer', target.getNextHighestDepth());
var clipField:MovieClip = container.createEmptyMovieClip('clipField', 0);
clipField.createTextField('field',5,520,5,width,height);
//

var field:TextField = clipField['field'];
field.html = true;
field.multiline = true;
field.type = "dynamic";
field.wordWrap = true;
field.selectable = false;
field.autoSize = true;
field.font = "Arial"
field.mouseWheelEnabled = false;
//

// var format:TextFormat = new TextFormat();
// format.font = "Arial";
// format.textAlign = "Center";
// field.setTextFormat(0, firstIndex, format);

var mask:MovieClip = container.createEmptyMovieClip('mask', 1);
mask._x=520
mask.beginFill(0xFF6600,50);
mask.lineTo(width,0);
mask.lineTo(width,height);
mask.lineTo(0,height);
clipField.setMask(mask);
//
container.onEnterFrame = function():Void
{
if (this.init) {
var over:Boolean = mask.hitTest(_root._xmouse, _root._ymouse);
clipField._y -= (over ? 0 : speed);
//
if (clipField._y<=-clipField._height) clipField._y = height;
}
};
return container;
}
Dodgygeaser Messages postés 2 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 avril 2008
14 avril 2008 à 16:01
c'est parfait avec le code de top30 seulement j'aimerais pouvoir la positionner car elle est en haut à gauche et je ne veut pas la mettre la bas moi !!
pentahertz Messages postés 28 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 novembre 2007
17 nov. 2007 à 09:58
Top30, super ton code ,mais..comment on le bouge de place ...
remarquer ligne 2 le changement correspond a 1 pixel a la place de 1/2
2 choses la modification doit porter sur le deplacement du textfield
ici : clipField.createTextField('field',0,520,5,width,height); X à 520 pixels
mais aussi le mask du textfield : mask._x=520 vous pouvez aussi modifier mask._y=0



import flash.geom.*;
var container:MovieClip = getScrollContainer(this, 210, 110, 1);
//
function getScrollContainer(target:MovieClip, width:Number, height:Number, speed:Number):MovieClip
{
var container:MovieClip = target.createEmptyMovieClip('scrollContainer', target.getNextHighestDepth());
var clipField:MovieClip = container.createEmptyMovieClip('clipField', 0);
clipField.createTextField('field',0,520,5,width,height);

var field:TextField = clipField['field'];
field.html = true;
field.multiline = true;
field.type = "dynamic";
field.wordWrap = true;
field.selectable = false;
field.autoSize = true;
field.font = "Arial"
field.mouseWheelEnabled = false;

var mask:MovieClip = container.createEmptyMovieClip('mask', 1);
mask._x=520
mask.beginFill(0xFF6600,50);
mask.lineTo(width,0);
mask.lineTo(width,height);
mask.lineTo(0,height);
clipField.setMask(mask);
zub300 Messages postés 3 Date d'inscription samedi 6 octobre 2007 Statut Membre Dernière intervention 16 novembre 2007
16 nov. 2007 à 15:06
Top30, super ton code ,mais..comment on le bouge de place ...
cs_iomega Messages postés 144 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 1 septembre 2008
23 oct. 2007 à 10:58
Et super cette source avec la modif de top 30. j'ai une petite question ??? comment rendre le défilement moins sacadé ?
Merci a+
pentahertz Messages postés 28 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 novembre 2007
23 oct. 2007 à 07:10
alors la bravo top30 ton code est top de top
c'est exactement ce que je cherchais merci!
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
22 oct. 2007 à 23:27
la note !
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
22 oct. 2007 à 23:27
Pas bon du tout. Mal encodé, pas dynamique, pas pratique...
1/10

Prends ton "Fla", vide la bibliothèque et colles ceci dans la première frame :

////////////////////////////////////////////////////////////////////////////
import flash.geom.*;
//


var container:MovieClip = getScrollContainer(this, 200, 100, 0.5 );
//
function getScrollContainer(target:MovieClip, width:Number, height:Number, speed:Number):MovieClip
{
var container:MovieClip = target.createEmptyMovieClip('scrollContainer', target.getNextHighestDepth());
var clipField:MovieClip = container.createEmptyMovieClip('clipField', 0);
clipField.createTextField('field',0,0,0,width,height);
//
var field:TextField = clipField['field'];
field.html = true;
field.multiline = true;
field.type = "dynamic";
field.wordWrap = true;
field.selectable = false;
field.autoSize = true;
field.mouseWheelEnabled = false;
//
var mask:MovieClip = container.createEmptyMovieClip('mask', 1);
mask.beginFill(0xFF6600,50);
mask.lineTo(width,0);
mask.lineTo(width,height);
mask.lineTo(0,height);
clipField.setMask(mask);
//
container.onEnterFrame = function():Void
{
if (this.init) {
var over:Boolean = mask.hitTest(_root._xmouse, _root._ymouse);
clipField._y -= (over ? 0 : speed);
//
if (clipField._y<=-clipField._height) clipField._y = height;
}
};
return container;
}
//
function fillContainer(ok:Boolean):Void
{
if (!ok) {
container.clipField.field.htmlText = 'Erreur de chargement';
} else {
container.clipField.field.htmlText = this.firstChild.firstChild;
container.init = true;
container.onRollOut();
}
}
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = fillContainer;
xml.load('news.xml');
//
////////////////////////////////////////////////////////////////////////////
Rejoignez-nous