Actionscript Picture Array - PullRequest
       8

Actionscript Picture Array

0 голосов
/ 21 марта 2011

Я новичок во flash_cs5 / actionscript_3, и я написал код xml-слайдера:

import flash.display.Stage;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.xml.XMLDocument;
import flash.text.TextField;

    var myStage:Stage = this.stage;
    myStage.scaleMode = StageScaleMode.NO_SCALE;
    myStage.align = StageAlign.TOP_LEFT;

    var sliderXML:XML = new XML();
    var sliderXMLurl:String = 'sliderXML.xml';
    var sliderXMLreq:URLRequest = new URLRequest(sliderXMLurl);
    var sliderXMLloader:URLLoader = new URLLoader(sliderXMLreq);
    sliderXMLloader.addEventListener("complete",loadXML);

    var sliderNum:int = 0;
    var sliderMaxNum:int = 0;
    var strTitle:Array;
    var strPosterLink:Array;
    var strVideoLink:Array;

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
    var swfWidth:int = myStage.stageWidth;
    slider_bg.width = swfWidth;
}

function loadXML(event:Event):void{

    sliderXML=XML(sliderXMLloader.data);
    var xmlDoc:XMLDocument = new XMLDocument();
    xmlDoc.ignoreWhite = true;
    var menuXML:XML = XML(sliderXMLloader.data);
    xmlDoc.parseXML(menuXML.toXMLString());

    var X:int = 10;

    for each(var listItem:XML in sliderXML..listItem){

             strTitle[sliderMaxNum] = listItem.itemTitle.toString();
             strPosterLink[sliderNaxNum] = listItem.posterLink.toString();
             strVideoLink[sliderMaxNum] = listItem.videoLink.toString();

             var poster[sliderMaxNum]:Loader = new Loader();
             poster[sliderMaxNum].load(new URLRequest(strPosterLink[sliderNaxNum]));
             addChild(poster[sliderMaxNum]);
             poster[sliderMaxNum].x = X;
             X = X + 300;

             sliderMaxNum ++;
             }

}

, и есть ошибка, говорящая: «ожидание точки с запятой перед левым скобком»:

     var poster[sliderMaxNum]:Loader = new Loader(); // here is an Error
     poster[sliderMaxNum].load(new URLRequest(strPosterLink[sliderNaxNum]));
     addChild(poster[sliderMaxNum]);
     poster[sliderMaxNum].x = X;
     X = X + 300;

Можете ли вы помочь мне, плззз?

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

большое спасибо.это работает.если кто-то еще хочет знать, как загрузить изображения в массив из XML, вот код:

    import flash.display.Stage;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.net.URLLoader;
    import flash.xml.XMLDocument;
    import flash.text.TextField;

        var myStage:Stage = this.stage;
        myStage.scaleMode = StageScaleMode.NO_SCALE;
        myStage.align = StageAlign.TOP_LEFT;

        var sliderXML:XML = new XML();
        var sliderXMLurl:String = 'sliderXML.xml';
        var sliderXMLreq:URLRequest = new URLRequest(sliderXMLurl);
        var sliderXMLloader:URLLoader = new URLLoader(sliderXMLreq);
        sliderXMLloader.addEventListener("complete",loadXML);

        var sliderNum:int = 0;
        var sliderMaxNum:int = 0;
        var strTitle:Array = [];
        var strPosterLink:Array = [];
        var strVideoLink:Array = [];
        var poster:Array = [];

    addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

    function fl_EnterFrameHandler(event:Event):void
    {
        var swfWidth:int = myStage.stageWidth;
        slider_bg.width = swfWidth;
    }

    function loadXML(event:Event):void{

        sliderXML=XML(sliderXMLloader.data);
        var xmlDoc:XMLDocument = new XMLDocument();
        xmlDoc.ignoreWhite = true;
        var menuXML:XML = XML(sliderXMLloader.data);
        xmlDoc.parseXML(menuXML.toXMLString());

        var X:int = 10;

        for each(var listItem:XML in sliderXML..listItem){

                 strTitle[sliderMaxNum] = listItem.itemTitle.toString();
                 strPosterLink[sliderMaxNum] = listItem.posterLink.toString();
                 strVideoLink[sliderMaxNum] = listItem.videoLink.toString();


//here is the image loader code
                 var _temp:Loader = new Loader();
                 poster.splice(sliderMaxNum, 0, _temp);
                 poster[sliderMaxNum].load(new URLRequest(strPosterLink[sliderMaxNum]));
                 addChild(poster[sliderMaxNum]);
                 poster[sliderMaxNum].x = X;
                 X = X + 400;

                 sliderMaxNum ++;
                 }
    }
0 голосов
/ 21 марта 2011

У меня нет полного представления о вашем коде, но вам нужно сначала создать экземпляр Loader, а не push или splice новый Loader в массив.

var _temp:Loader = new Loader();
poster.splice(sliderMaxNum, 0, _temp);

Кроме того, вам нужно создать экземпляр массива с именем poster, если вы этого еще не сделали.

var poster:Array = [];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...