나는 아마도 내가 프로젝트에 대한 간단한 슬라이드 쇼 작업 한 이미지 슬라이드 쇼AS3 XML을 슬라이드 쇼 비애
와 데 몇 가지 문제에 도움이 되거 수 밖에 사람을 바라고 모든 것이 잘 가고 있었다/다음 이미지를 표시하기 전에 이전 이미지를 숨기는 기능을 만들 때까지 예상대로. 첫 번째 단계에서는 모든 것이 잘 돌아가는 것처럼 보입니다. 일단 슬라이드 쇼가 시작되면 이미지는 나타나지 않지만 다음 이미지를로드 할 때 페이드 아웃하기 전에 이미지를 잠깐 보여주는 이전 기능 숨기기에서 트윈을 재생합니다. 따라서 본질적으로 디스플레이가 비어있는 경우 타이머는 다음 슬라이드에서 호출하고 이미지의 간단한 깜박임이 사라지고 다시 비어있게됩니다.
내가 겪고있는 또 다른 문제점은 XML에서로드하는 텍스트가 예상대로 트위닝하거나 트위닝하고 싶지 않은 것입니다. 여기
코드입니다 : 내가 더 플래시 재능 해요import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
var filePath:String = "photo1.xml";
var iArray:Array = new Array();
var titleArray:Array = new Array();
var dateArray:Array = new Array();
var catArray:Array = new Array();
var descArray:Array = new Array();
var rotationSpeed:Number;
var totalImages:Number;
var dataList:XMLList;
var imagesLoaded:Number = 0;
var currImage:Number = 0;
var rotationTimer:Timer;
var oldTween:Tween;
var imageContainer:Sprite = new Sprite();
var imageHolder:Sprite = new Sprite();
var titleContainer:Sprite = new Sprite();
var dateContainer:Sprite = new Sprite();
var catContainer:Sprite = new Sprite();
var descContainer:Sprite = new Sprite();
var theMask:Sprite = new Sprite();
theMask.graphics.beginFill(0x000000);
theMask.graphics.drawRect(114, 25, 323, 332);
addChild(theMask);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest(filePath));
function onComplete (evt:Event):void{
var pigData:XML = new XML(evt.target.data);
pigData.ignoreWhitespace;
dataList = pigData.pic;
totalImages = dataList.length();
rotationSpeed = [email protected] * 1000;
stage.scaleMode = StageScaleMode.NO_SCALE;
loadImages();
rotationTimer = new Timer(rotationSpeed);
rotationTimer.addEventListener(TimerEvent.TIMER, rotateImage);
rotationTimer.start();
}
function loadImages() {
for (var i:Number = 0; i < totalImages; i++) {
var imageURL:String = dataList[i].big;
var imageLoader:Loader = new Loader();
imageLoader.load(new URLRequest(imageURL));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
iArray.push(imageLoader);
var titleField:TextField = new TextField();
var dateField:TextField = new TextField();
var catField:TextField = new TextField();
var descField:TextField = new TextField();
titleField.text = dataList[i].title;
titleField.autoSize = TextFieldAutoSize.LEFT;
titleArray.push(titleField);
dateField.text = dataList[i].date;
dateField.autoSize = TextFieldAutoSize.LEFT;
dateArray.push(dateField);
catField.text = dataList[i].category;
catField.autoSize = TextFieldAutoSize.LEFT;
catArray.push(catField);
descField.text = dataList[i].description;
descField.autoSize = TextFieldAutoSize.LEFT;
descArray.push(descField);
}
}
function imageLoaded(evt:Event):void {
imagesLoaded++;
if (imagesLoaded == totalImages) {
showImage();
}
}
function showImage():void {
addChild(imageContainer);
imageContainer.addChild(imageHolder);
imageContainer.addChild(titleContainer);
imageContainer.addChild(dateContainer);
imageContainer.addChild(catContainer);
imageContainer.addChild(descContainer);
changeImage();
}
function changeImage():void {
var currentImage:Loader = Loader(iArray[currImage]);
imageHolder.addChild(currentImage);
currentImage.x = (stage.stageWidth - currentImage.width)/2;
currentImage.y = (imageHolder.height - currentImage.height)/2;
imageHolder.mask = theMask;
new Tween(imageHolder, "alpha", Regular.easeOut, 0, 1, 1, true);
var titleField:TextField = TextField(titleArray[currImage]);
titleContainer.addChild(titleField);
titleField.x = 107;
titleField.y = 365;
var titleTween:Tween = new Tween(titleField, "alpha", Regular.easeOut, 0, 1, 1, true);
var dateField:TextField = TextField(dateArray[currImage]);
dateContainer.addChild(dateField);
dateField.x = 107;
dateField.y = 375;
var dateTween:Tween = new Tween(dateField, "alpha", Regular.easeOut, 0, 1, 1, true);
var catField:TextField = TextField(catArray[currImage]);
catContainer.addChild(catField);
catField.x = 107;
catField.y = 385;
var catTween:Tween = new Tween(catField, "alpha", Regular.easeOut, 0, 1, 1, true);
var descField:TextField = TextField(descArray[currImage]);
descContainer.addChild(descField);
descField.x = 107;
descField.y = 395;
var descTween:Tween = new Tween(descField, "alpha", Regular.easeOut, 0, 1, 1, true);
}
function rotateImage(evt:TimerEvent) {
hidePrev();
currImage++;
if (currImage == totalImages) {
currImage = 0;
}
changeImage();
}
function hidePrev():void{
var oldImage:Loader = Loader(imageHolder.getChildAt(0));
oldTween = new Tween(oldImage,"alpha", Regular.easeOut, 1, 0, 1, true);
oldTween.addEventListener(TweenEvent.MOTION_FINISH, onFadeOut)
var oldTitle:TextField = TextField(titleContainer.getChildAt(0));
var oldTitleTween:Tween = new Tween(oldTitle,"alpha", Regular.easeOut, 1, 0, 1, true);
var oldDate:TextField = TextField(dateContainer.getChildAt(0));
var oldDateTween:Tween = new Tween(oldDate,"alpha",Regular.easeOut,1,0,1,true);
var oldCat:TextField = TextField(catContainer.getChildAt(0));
var oldCatTween:Tween = new Tween(oldCat,"alpha",Regular.easeOut,1,0,1,true);
var oldDesc:TextField = TextField(descContainer.getChildAt(0));
var oldDescTween:Tween = new Tween(oldDesc,"alpha",Regular.easeOut,1,0,1,true);
}
function onFadeOut(evt:TweenEvent):void{
imageHolder.removeChildAt(0);
titleContainer.removeChildAt(0);
dateContainer.removeChildAt(0);
catContainer.removeChildAt(0);
descContainer.removeChildAt(0);
}
, 좋은 방법은 일반적으로 하나가 코드를 분석, 또는 온라인 주위를 파고에 의해 대부분의 문제를 알아낼 수있다; 그러나, 이것은 저를 곤란하게합니다.
도움이 될만한 의견을 보내 주시면 감사하겠습니다.