Flash CS5/AS3プロジェクトに複数の場所で使用するコンテンツスクロールを用意しています。コールごとに異なるFlash AS3コーディング変数が初期設定される
以下は、スクロールしたテキストコンポーネントのAS3コードです。 'compnentsettings.xml'は、どのような.htmlファイルを呼び出すかを定義します。
今のところ私はscrollerが1つの場所でしか動作しません。私はそれを複製することができますが、もちろん、同じデータをロードします。
は、私は別のcompnentSettings.xmlファイル
をロードするためにscrolledTextComponent.as(下記)からsettingsComponent機能を変更する必要が信じている 私は変数__xmlSettingsPathは、すべての呼び出しのためのさまざまな初期化が必要になりますし、私はどのように行うには考えているこの。助けてください!
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();
}
}
}
これについてのアドバイスはありますか?私はこれでちょっと新しくなりました..
お返事ありがとうございます。私は最初の部分を理解していますが、どのように/私は2番目、3番目、4番目..スクロールされたテキストコンポーネントを呼び出しますか? – AlxSTi
編集を見てください。 – loxxy