![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Если название топика непонятно, попробую объяснить еще раз: в Library есть n мувиков, связанных с .as файлами: C1, C2, C3, ..Cn.
В процессе выполнения скрипта, мы получаем(напр от php, xml или рандомно) название класса, экземпляр которого необходимо создать. само-собой не срабатывает. Как решить данную проблему? |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
|
|
|||||
|
Я делаю так.
Последний раз редактировалось Dima_DPE; 18.08.2007 в 16:04. |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Спасибо.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Dima_DPE, отредактируйте свой пост и оформите код тегами [code][/code].
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Увязывая ролик с XML-ом, напоролся на непонятную ошибку.
При запуске ролика, должны появляться экземпляры указанных в XML классов с заданными в XML параметрами. Однако, после того как появляется 1й экземпляр, Flash почему-то выпадает в ошибку TypeError: Error #1009: Cannot access a property or method of a null object reference. Проблеммную строчку я закомментировал и выделил белым. Подскажите пжл причину ошибки. XML: <page> <classobj classname="D" params="firstparams" /> <classobj classname="E" params="secondparams" /> </page> package {
import flash.events.Event
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.xml.XMLNode;
import flash.utils.getDefinitionByName;
public class C extends Sprite {
public function C(){
loadXML();
}
private function loadXML(){
var loader:URLLoader;
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, xmlLoaded);
var request:URLRequest = new URLRequest("test.xml");
loader.load(request);
function xmlLoaded(event:Event):void {
var myXML:XML = new XML(loader.data);
runxml(myXML);
}
function runxml(xml:XML) {
var n:uint;
var instances:Array;
var ClassReference:Class;
for each(item in xml.children()) {
n++;
ClassReference = getDefinitionByName(item.@classname) as Class;
trace(n+": "+item.@classname);
//instances[n] = new ClassReference();
}
}
}
}
}
package {
import flash.display.Sprite;
public class D extends Sprite {
public function D(){
trace("D class Loaded");
}
}
}
Последний раз редактировалось Torero; 19.08.2007 в 02:04. |
|
|||||
|
Дам-с. Массив материализовать требуется
или Привыкай! Я как посмотрел еще и про uint подумал, но вспомнил что им сразу нуль присваевается. Удачи! PS Да еще, item.@classname является экземпляром класса XMLList, но он легко приводится к строке и даже не ругается при компиляции и выполнение (а я бы ругался =) ). Это как раз тот случай, о котором писал Рост на flash-ripper.com. Последний раз редактировалось Dima_DPE; 19.08.2007 в 10:41. |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
м-да.. перетрудился я видимо... спасибо..
2 Dima_DPE: вопросик: а какие мысли/чувства во мне твой "PS" должен был пробудить и на какие выводы натолкнуть? ![]()
__________________
А я Томат. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Torero, мысль о том, что надо к строке приводить.
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Буду краток: прочитал, оценил, спасибо.
![]()
__________________
А я Томат. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:49. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|