0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 11
1

Загрузка в swf xml

07.11.2014, 17:32. Показов 1006. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Столкнулась с такой проблемой:
Есть главная форма(main) в которую подгружаю swf файл (albums).
Отдельно сам файл albums работает, но при подгрузке через главную выдает ошибку:
TypeError: Error #2007: Параметр child не должен быть равен нулю.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/drawBackground()
at fl.controls::LabelButton/draw()
at fl.core::UIComponent/callLaterDispatcher()

Код файла main:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import flash.display.Loader; //класс для загрузки внешнего содержимого
import flash.net.URLRequest; //класс для создания гиперссылок
import flash.utils.*; // для работы компонента ProgressBar
import fl.controls.ProgressBar;// для динамического создания компонента ProgressBar
import fl.controls.ProgressBarDirection;
import fl.controls.ProgressBarMode;
import flash.events.Event;
 
var url :URLRequest = new URLRequest(); // для ссылки на подгружаемый swf
 
var ploader:ProgressBar = new ProgressBar();
ploader.move(500,300); // перемещение в нужную точку
 
addChild(ploader); // добавление в список отображения
ploader.direction = ProgressBarDirection.RIGHT;
ploader.mode = ProgressBarMode.MANUAL;
ploader.visible = false;
 
var mcLoader:Loader = new Loader();
mcLoader.x = 350; // перемещение в нужную точку
mcLoader.y = 150;
addChild(mcLoader); // добавление в список отображения
 
 
//Добавление обработчиков событий, связанных с загрузкой внешнего содержимого
mcLoader.contentLoaderInfo.addEventListener(Event.OPEN, loadOpen);
mcLoader.contentLoaderInfo.addEventListener(Event.INIT, loadInit);
mcLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
mcLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
 
function loadOpen(_event:Event)
{
    ploader.visible = true;
    setChildIndex(ploader, numChildren - 1);
}
 
function loadInit(_event:Event)
{
    mcLoader.content.visible = false;
}
 
function loadProgress(_event:ProgressEvent) // отображаем процесс загрузки
{ // в компоненте ProgressBar
    ploader.setProgress(_event.bytesLoaded, _event.bytesTotal);
}
 
function loadComplete(_event:Event) // по завершении загрузки содержимого
{
    ploader.visible = false; // скрываем ProgressBar
    mcLoader.content.visible = true; // отображаем контент
}
 
url.url="galery.swf";
mcLoader.load(url);
 
 
//обработчики событий нажатия на кнопки
 
a.addEventListener(MouseEvent.CLICK, butClick);// обработчик события для кнопки главная
 
alb.addEventListener(MouseEvent.CLICK, albClick);//обработчик события для  песен
 
 
 
 
 
function butClick(_event:Event) //функция обработчик нажатия кнопки главная
{       
    mcLoader.unload();
    url.url="galery.swf"
    mcLoader.load(url);
}
function albClick(_event:Event) //функция обработчик нажатия кнопки главная
{       
    mcLoader.unload();
    url.url="albums1.swf"
    mcLoader.load(url);
}
 
 
    
}


файл albums
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.ID3Info;
import fl.controls.Slider; 
import fl.events.SliderEvent; 
import flash.media.SoundTransform;
import flash.media.SoundMixer;
 
this.stop();
 
var transf : SoundTransform = new SoundTransform(); // переменная для трансформации звука
//текущая позиция звука
var pos:Number=0;
//общее количесвто файлов
var count:Number;
 
bPause.visible=false;
 
// XML-документ
 
var list:XML = new XML();
var childs:XMLList = new XMLList(); // объект для хранения всех дочерних узлов документа
var XML_URL:String;
if (al==1) {
this.XML_URL = "listcrazy.xml";// адрес документа
}
 
if (al==2)
 {this.XML_URL = "list.xml";// адрес документа
}
 
if (al==3) {
  this.XML_URL = "listhumanity.xml";// адрес документа
}
 
if (al==4) {
  this.XML_URL = "listbest.xml";// адрес документа
}
var myXMLURL:URLRequest = new URLRequest(XML_URL); // гиперссылка
var myLoader:URLLoader = new URLLoader(myXMLURL);  // загрузчик текстового содержимого
var time:Number = 0;//   // загружаем в него XML-документ
var musicURL:URLRequest = new URLRequest(); // гиперссылка для mp3-файла
var snd:Sound = new Sound();                // объект-звук
var channel :SoundChannel = new SoundChannel(); // звуковой канал
 
myLoader.addEventListener("complete", xmlLoaded);  // окончание загрузки содержимого в загрузчик
function xmlLoaded(_event:Event):void// окончание загрузки внешнего XML-документа
{   
    this.list = XML(myLoader.data);         // записываем загруженный документ в объект XML
    this.childs = this.list.child("item");      // в childs заносим все дочерние узлы корневого узла XML-документа
    var item:XML;  // временный узел документа
    count=0;
    
            
    
    for each(item in this.childs)
    {this.count++;
 
     this. musiclist.addItem({label:item.attributes()[1], data:item.attributes()[0]});
      //увеличиваем число файлов
      count++
    this.musiclist.selectedIndex = 0; }
}// по умолчанию выбран первый элемент списка
 
 
vol.addEventListener(SliderEvent.CHANGE, volHandler);//добавление функции-прослушивателя события 
//перемещения ползунка слайдера vol
pan.addEventListener(SliderEvent.CHANGE, panHandler)
 
vol.value = transf.volume;//определяем значение ползунка для громкости
pan.value = transf.pan;//определяем значение ползунка для панорамирования
 
 
this.bPlay.addEventListener(MouseEvent.CLICK, playClick);
// обработчик события нажатия кнопки play
 
this.bPause.addEventListener(MouseEvent.CLICK, PauseClick);
// обработчик события нажатия кнопки pause
this.btforward.addEventListener(MouseEvent.MOUSE_DOWN,fo);
this.btback.addEventListener(MouseEvent.MOUSE_DOWN,ba);
this.bStop.addEventListener(MouseEvent.CLICK, StopClick);
this.baaack.addEventListener(MouseEvent.CLICK, baaackClick);
 
 
function  baaackClick(_event:MouseEvent)
{
if (this.channel) // если звуковой канал задан (звук уже воспроизводился хотя бы раз)
    {
        this.channel.stop(); // останавливаем воспроизведение звука в канале
    }
    this.gotoAndStop(1);
 
}
 
function playClick(_event:MouseEvent)// функция-обработчик события при нажатии на кнопку play
{   
    if (this.channel) // если звуковой канал задан (звук уже воспроизводился хотя бы раз)
    {
        this.channel.stop(); // останавливаем воспроизведение звука в канале
    }
    this.snd = new Sound();     // обновляем объект чтобы можно было загрузить новый mp3-файл
    this.musicURL.url = this.musiclist.selectedItem.data; // ссылку на mp3-файл берем из свойства data выбранной строки в списке файлов
    
    this.snd.load(musicURL);    // загружаем mp3-файл
    this.channel = this.snd.play(time,0,transf);  // воспроизведение
    this.channel.addEventListener(Event.SOUND_COMPLETE, playComplete);
    this.bPlay.visible=false;
    this.bPause.visible=true;
}
 
function StopClick(_event:MouseEvent)//функция-обработчик события при нажатии на кнопку stop
 
{
    
    this.channel.stop(); // останавливаем воспроизведение звука в канале
    this.time=0;
    this.bPlay.visible=true;
    this.bPause.visible=false;
}
 
 
function PauseClick(_event:MouseEvent)//функция-обработчик события при нажатии на кнопку pause
{
    this.time = channel.position;//помещаем в переменную значение времени на которой проигрывается песня
   this.channel.stop();//стоп песня
    this.bPlay.visible=true;
    this.bPause.visible=false;
}
 
 
 
function fo(_ev:Event)//вперед на следующую композицию
{
    
 
    if (this.channel) // если звуковой канал задан (звук уже воспроизводился хотя бы раз)
    {
        this.channel.stop(); // останавливаем воспроизведение звука в канале
    }
    this.snd = new Sound();
    
    if (this.musiclist.selectedIndex==count-1)
    {this.musiclist.selectedIndex=0;}
    else 
    {
    this.musiclist.selectedIndex++;
    }
    this.musicURL.url = musiclist.selectedItem.data;
    this.snd.load(musicURL);
    
    
    //воспроизведение с полученной позиции
    this.channel = this.snd.play(time,0,transf);
    this.channel.addEventListener(Event.SOUND_COMPLETE, playComplete);
}
 
 
function ba(_ev:Event) //назад к предыдущей композиции
 
{
        if (this.channel) // если звуковой канал задан (звук уже воспроизводился хотя бы раз)
    {
        this.channel.stop(); // останавливаем воспроизведение звука в канале
    }
    this.snd = new Sound();
    if (this.musiclist.selectedIndex>0)
    this.musicURL.url = musiclist.selectedItem.data;
    this.snd.load(musicURL);
    //воспроизведение с полученной позиции
    this.channel = snd.play(0,0,transf);
    this.channel.addEventListener(Event.SOUND_COMPLETE, playComplete);
}
 
 
 
function volHandler(event:SliderEvent):void//функция-прослушиватель события
{
    transf.volume = vol.value;//трансформация громкости в соответствие со значениюем ползунка
    channel.soundTransform = transf;//применение параметров трансформации
}
 
function panHandler(event:SliderEvent):void//функция-прослушиватель события
{
    transf.pan = pan.value;//трансформация громкости в соответствие со значениюем ползунка
    channel.soundTransform = transf;//применение параметров трансформации
}
 
 
 
//функция-обработчик окончания воспроизведения
function playComplete(_event:Event)
{
    
    this.channel.stop();
    this.musiclist.selectedIndex++;
    // обновляем объект чтобы можно было загрузить новый mp3-файл
    this.snd = new Sound();   
    
    // ссылку на mp3-файл берем из свойства data выбранной строки в списке файлов
    this.musicURL.url = this.musiclist.selectedItem.data; 
    // загружаем mp3-файл
    this.snd.load(musicURL);    
    // воспроизведение
    this.channel = snd.play();
}
очень надеюсь на вашу помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2014, 17:32
Ответы с готовыми решениями:

Загрузка swf в контейнер другой swf
Подскажите, как в as3 сделать, чтобы подгружаемая флешка появлялась не на тойже сцене, а в окошке?...

Загрузка Swf файла в Swf
Привет всем,в данный момент хочу сделать себе веб страницу во Flash страница состоит с 3 swf ...

Загрузка и выгрузка .swf
Здравствуйте, столкнулся с двумя проблемами: 1) Не знаю, как сделать загрузку ролика по нажатию...

Кнопка и загрузка внешнего SWF
Здравствуйте! Нужно сделать, чтобы в одном swf файле (естественно у меня есть .fla версия), при...

2
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
07.11.2014, 19:37 2
а вы уверены, что albums1.swf существует во время отрабатывания albClick?
0
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 11
08.11.2014, 10:25  [ТС] 3
да существует, сам файл загружается. но в кoмпонент list не загружается нужная информация и выдает ошибку. При этом все проигрывается. Если запускать отдельно albums1.swf то все загружается и проигрывается.
0
08.11.2014, 10:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2014, 10:25
Помогаю со студенческими работами здесь

Загрузка внешнего swf файла
Я во Flash ещё новичок, и мне нужна помощь. Задача: требуется загрузить один swf внутрь другого,...

Каким образом из загруженного swf передать команду прелоадеру на загрузку другого swf?
День добрый. Есть внешний прелоадер, который загружает swf файлы содержащие разные уровни игры. В...

Не могу обратиться из swf к xml на сервере
Добрый день! Есть проблема: в моем приложении на Flash используется обращения на сервер к...

Тест сделанный в *.xml, можно запускать в *.swf
Ребят помогите с тестом!!!! Не могу разобраться где ошибка.... Все вроде правильно делаю... а не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru