Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Флеш альбом (http://www.flasher.ru/forum/showthread.php?t=214818)

Comer 13.12.2017 16:01

Флеш альбом
 
Ребята, помогите, пожалуйста, найти и исправить ошибку! Делаю флеш-альбом с перелистыванием страниц с использованием xml. Вот код подключения и использования xml файла:
Код AS3:

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.Loader;
 
var xmlLoader:URLLoader = new URLLoader(new URLRequest("xml/my.xml"));
var xmlData:XML;
var xmlList:XMLList;
var picLoader:Loader;
xmlLoader.addEventListener(Event.COMPLETE, getXML);
function getXML(e:Event):void
{
        trace("загрузился");
        xmlData = XML(e.target.data);
        trace(xmlData);
        xmlList = xmlData.children();
        trace(xmlList);
 
 
        for (var i:int=0; i<xmlList.length(); i++)
        {
                var picLoader:Loader = new Loader();
                picLoader.load(new URLRequest(xmlList[i].attributes()[1]));
                picLoader.x = 0;
                picLoader.y = 0;
                addChild(picLoader);
        }
}

Я был практически уверен, что всё написал правильно, но выскакивает ошибка:
Код:

TypeError: Error #2007: Parameter url must be non-null.
        at flash.display::Loader/_load()
        at flash.display::Loader/load()
        at album_fla::MainTimeline/getXML()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::URLLoader/onComplete()

Подскажите, пожалуйста, где я ошибся, и как исправить, если можно...

undefined 13.12.2017 16:08

а если положить xml рядом с флэшкой и заменить путь на просто
Код AS3:

var xmlLoader:URLLoader = new URLLoader(new URLRequest("my.xml"));

?

Comer 13.12.2017 16:17

Цитата:

Сообщение от undefined (Сообщение 1203399)
а если положить xml рядом с флэшкой и заменить путь на просто
Код AS3:

var xmlLoader:URLLoader = new URLLoader(new URLRequest("my.xml"));

?

Нет, тоже не получается.
Дело в том, что до строки for (var i:int=0; i<xmlList.length(); i++) всё работает нормально, и в трейсе показывает как надо. Ошибка в последнем коде, определяющим цикл. Вот здесь:
Код:

for (var i:int=0; i<xmlList.length(); i++)
        {
                var picLoader:Loader = new Loader();
                picLoader.load(new URLRequest(xmlList[i].attributes()[1]));
                picLoader.x = 0;
                picLoader.y = 0;
                addChild(picLoader);
        }


undefined 13.12.2017 16:24

а, там еще внутри загрузка, ну очевидно же что xmlList[i].attributes()[1] равен null,на то и ругаются

Comer 13.12.2017 16:27

Цитата:

Сообщение от undefined (Сообщение 1203403)
а, там еще внутри загрузка, ну очевидно же что xmlList[i].attributes()[1] равен null,на то и ругаются

Ну да, там внутри xml прелоадер, чтобы была видна загрузка картинок. Так это из-за него?

ZergMaster 13.12.2017 16:31

Цитата:

там внутри xml прелоадер
нет, там внутри null, написано же)

Код:

TypeError: Error #2007: Parameter url must be non-null.
Loader не может загрузить null

если сделать
Код AS3:

for (var i:int=0; i<xmlList.length(); i++)
        {
                var picLoader:Loader = new Loader();
 
                trace('xmlList['+i+'].attributes()[1] = '+xmlList[i].attributes()[1]);
 
                picLoader.load(new URLRequest(xmlList[i].attributes()[1]));
                picLoader.x = 0;
                picLoader.y = 0;
                addChild(picLoader);
        }

, то перед ошибкой вы увидите null в трэйсе

undefined 13.12.2017 16:33

Цитата:

Parameter url must be non-null
Что переводится как "параметр url не может быть null".XML, очевидно, грузится без проблем,значит проблема не в нем.

Comer 13.12.2017 16:38

Цитата:

Сообщение от undefined (Сообщение 1203406)
значит проблема не в нем.

на всякий случай попробовал убрать прелоадер из xml. Всё равно выдаёт ту же ошибку.

undefined 13.12.2017 16:40

код с убранным прелодером плз

Comer 13.12.2017 16:43

Цитата:

Сообщение от undefined (Сообщение 1203408)
код с убранным прелодером плз

Здесь весь код xml-файла. С прелоадером. Код прелоадера
Код:

<usePreloader> true </usePreloader>
Код AS3:

<?xml version="1.0" encoding="windows-1251"?>
<FlippingBook> 
        <width>964</width> 
        <height>700</height> 
        <firstPage>0</firstPage> 
        <alwaysOpened> false </alwaysOpened> 
        <autoFlip> 200 </autoFlip> 
        <flipOnClick> true </flipOnClick> 
        <shadowsDepth> 1 </shadowsDepth> 
        <moveSpeed> 5 </moveSpeed> 
        <closeSpeed> 3 </closeSpeed> 
        <gotoSpeed> 3 </gotoSpeed> 
        <flipSound> mp3/01.mp3 </flipSound> 
        <pageBack> 0xB4DBF5 </pageBack> 
        <loadOnDemand> true </loadOnDemand> 
        <cachePages> true </cachePages> 
        <usePreloader> true </usePreloader> 
        <pages> 
                        <page>img/00.jpg</page> 
            <page>img/01.jpg</page> 
            <page>img/02.jpg</page> 
            <page>img/03.jpg</page> 
            <page>img/04.jpg</page> 
            <page>img/05.jpg</page> 
            <page>img/06.jpg</page>
                        <page>img/08.jpg</page>
                        <page>img/09.jpg</page>
                        <page>img/07_1.jpg</page>
                        <page>img/07_2.jpg</page>
                        <page>img/11_1.jpg</page>
                        <page>img/11_2.jpg</page> 
                        <page>img/12_1.jpg</page> 
                        <page>img/12_2.jpg</page> 
                        <page>img/10.jpg</page>
        </pages> 
</FlippingBook>



Часовой пояс GMT +4, время: 22:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.