J'ai un scroller de contenu dans mon projet Flash CS5/AS3 que je veux utiliser à plusieurs endroits, tout en chargeant un contenu différent (html) à chacun de ces différents endroits.Les variables de codage Flash AS3 initialisées différemment pour chaque appel
Vous trouverez ci-dessous le code AS3 du composant de texte déroulant. Le fichier 'compnentsettings.xml' est l'endroit où je définis le fichier .html à appeler.
À l'heure actuelle, le déflecteur ne fonctionne que sur un seul point. Je peux le cloner, mais bien sûr, il chargera les mêmes données.
Je crois que je dois modifier la fonction de settingsComponent de scrolledTextComponent.as (ci-dessous) pour charger différents fichiers compnentSettings.xml
je besoin du __xmlSettingsPath variable initialisée différent pour chaque appel et je ne sais pas comment faire ce. S'il vous plaît aider!
package com
{
import flash.display.*;
import flash.events.TimerEvent;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.text.StyleSheet;
import flash.utils.Timer;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.events.*;
import com.LoadXmlPlayerClass;
public class scrolledTextComponent extends MovieClip
{
// component variables
private var __xmlSettingsPath:String = "componetsettings.xml";
private var _sheet:StyleSheet = new StyleSheet();
public var _loadSettingsXml:LoadXmlPlayerClass = new LoadXmlPlayerClass();
private var _settingsXmlTimmer:Timer = new Timer(250);
public var _loadXml:LoadXmlPlayerClass = new LoadXmlPlayerClass();
private var _newsTimmer:Timer = new Timer(250);
//private var _loaderIcon_mc:LoaderMC = new LoaderMC(); //used to show xml loading state
private var _urlCSS:URLRequest = new URLRequest();
private var _loaderCSS = new URLLoader();
private var _urlHTML:URLRequest = new URLRequest();
private var _loaderHTML = new URLLoader();
//text
private var _txt:TextField = new TextField();
private var _MyScrollBar:MyScrollBar = new MyScrollBar();
public function scrolledTextComponent()
{
loaderIcon_mc.visible=true;
readSettingsXml();
}
/* Other Functions */
private function readSettingsXml() :void
{
if(__xmlSettingsPath != '')
{
//loaderIcon_mc.visible=false;
//read XML file
_loadSettingsXml.loadFile(__xmlSettingsPath);
_settingsXmlTimmer.addEventListener(TimerEvent.TIMER,settingsComponent);
_settingsXmlTimmer.start();
}
}
//timmer
private function settingsComponent(event:TimerEvent):void {
//_settingsXmlTimmer.stop();
//trace ("initial is running: "+_settingsXmlTimmer.running);
if (_loadSettingsXml.isxmlread && _settingsXmlTimmer.running) {
_settingsXmlTimmer.stop();
//trace ("after is running: "+_settingsXmlTimmer.running);
loaderIcon_mc.visible=true;
loaderIcon_mc.x=(_loadSettingsXml._myXml.record[0].scrollComponentWidth-loaderIcon_mc.width)/2;
loaderIcon_mc.y=(_loadSettingsXml._myXml.record[0].scrollComponentHeight-loaderIcon_mc.height)/2;
_txt.width = _loadSettingsXml._myXml.record[0].scrollComponentWidth-40;
_txt.height = _loadSettingsXml._myXml.record[0].scrollComponentHeight;
_txt.mouseWheelEnabled=true;
_txt.multiline = true;
_txt.wordWrap = true;
_txt.selectable = true;
_txt.condenseWhite=true;
_txt.border=false;
_txt.x=0;
_txt.y=0;
if (_loadSettingsXml._myXml.record[0].cssStylesPath!='') {
_urlCSS=new URLRequest(_loadSettingsXml._myXml.record[0].cssStylesPath);
_loaderCSS.addEventListener(Event.COMPLETE, onCSSFileLoaded);
_loaderCSS.load(_urlCSS);
}
}
}
private function readHTML() :void
{
if (_loadSettingsXml._myXml.record[0].htmlPath!='') {
_urlHTML=new URLRequest(_loadSettingsXml._myXml.record[0].htmlPath);
_loaderHTML.addEventListener(Event.COMPLETE, onHTMLFileLoaded);
_loaderHTML.load(_urlHTML);
}
}
private function addHTMLandScroll() :void
{
addChild(_txt);
if (_txt.height<_txt.textHeight) {
_MyScrollBar.x=_txt.x+_txt.width+20;
_MyScrollBar.y=_txt.y+14;
_MyScrollBar._height=_txt.height-28;
_MyScrollBar._txt=_txt;
_MyScrollBar.scrollable_area_mc.height=_txt.height-28;
_MyScrollBar.scrollDownButton.y=_txt.height-14;
_MyScrollBar.initPublicVars();
addChild(_MyScrollBar);
}
}
private function onCSSFileLoaded(event:Event):void {
_sheet.parseCSS(_loaderCSS.data);
//_timer_txt.styleSheet = sheet;
_txt.styleSheet = _sheet;
readHTML();
}
private function onHTMLFileLoaded(event:Event):void {
_txt.htmlText = _loaderHTML.data;
loaderIcon_mc.visible=false;
addHTMLandScroll();
}
}
}
Un conseil sur la façon de procéder? Je suis un peu nouveau à ce ..
Merci pour la réponse. Je comprends la première partie, mais comment/où vais-je appeler les 2ème, 3ème, 4ème ... scrolledtextcompnents? – AlxSTi
Regardez le Modifier. – loxxy