Ich habe einen Inhaltswechsler in meinem Flash CS5/AS3-Projekt, den ich an verschiedenen Orten verwenden möchte, während ich an verschiedenen Stellen unterschiedliche Inhalte (html) lade.Flash-AS3-Codierungsvariablen, die für jeden Aufruf unterschiedlich initialisiert werden
Unten ist der AS3-Code für die gescrollte Textkomponente. In der 'compnentsettings.xml' definiere ich, welche .html Datei aufgerufen werden soll.
Im Moment habe ich nur den Scroller an einer Stelle arbeiten. Ich kann es klonen, aber natürlich werden die gleichen Daten geladen.
Ich glaube, ich habe die settingsComponent Funktion von scrolledTextComponent.as (unten) modifizieren verschiedene compnentSettings.xml Dateien
ich die Variable __xmlSettingsPath müssen initialisiert für jeden Anruf unterschiedlich zu laden, und ich habe keine Ahnung, wie zu tun Dies. Bitte helfen Sie!
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();
}
}
}
Irgendwelche Ratschläge, wie man das macht? Ich bin irgendwie neu in diesem ..
Danke für die Antwort. Ich verstehe den ersten Teil, aber wie/wo werde ich den 2., 3., 4. .. scrolledtextcompnents nennen? – AlxSTi
Sehen Sie sich die Bearbeiten an. – loxxy