![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: May 2012
Сообщений: 8
|
Всем доброго дня.
Есть класс для загрузки изображений и компоновки их в соотвествующие спрайты для дальнейшего использования. При запуске из flashDevelop да и просто при помощи плеера, все ок, картинки подгружаются. При открытии в браузере пишет ошибку - TypeError: Error #2007: Parameter child must be non-null. at flash.display: isplayObjectContainer/addChild()at Function/<anonymous>()[C:\wamp\www\chess\DataLoader.as:74] Выкладываю код класса, не обессудьте что кода не мало, просто не знаю как еще лучше объяснить суть проблемы. package { import flash.display.Bitmap; import flash.display.Loader; import flash.events.Event; import flash.filters.BlurFilter; import flash.media.Sound; import flash.net.URLRequest; /** * ... * @author Svetlov */ public class DataLoader { public function DataLoader(gameBody:Function) { // Loading board var addBoard:Function = function(e:Event):void { GVC.board = ld.content as Bitmap; } var ld:Loader; ld = new Loader(); ld.contentLoaderInfo.addEventListener(Event.COMPLETE, addBoard); ld.load(new URLRequest('media/images/chessgame/chessboard.png')); // Loading figures var loadWhites:Function = function():void { gameBody.call(); } var loadBlacks:Function = function():void { loadFigures('white', loadWhites); } loadFigures('black', loadBlacks); // Loading sounds loadSounds(); } /** * Loading figures images from disk * @param color - color of the figures * @param cb - callback function */ public function loadFigures(color:String, cb:Function):void { var i:int; var f_names:Array; if(color == 'white'){ f_names = new Array('rook', 'knight', 'bishop', 'king', 'queen', 'bishop', 'knight', 'rook'); }else { f_names = new Array('rook', 'knight', 'bishop', 'queen', 'king', 'bishop', 'knight', 'rook'); } var bitmapImages:Array = new Array(); for (i = 0; i < 8; i++) { f_names.push('pawn'); } var figures:Array = new Array(); for (i = 0; i < f_names.length; i++) { figures[i] = new Figure(); figures[i].name = f_names[i]; figures[i].this_color = color; } var ldrs:Array = new Array(); for (i = 0; i < f_names.length; i++) { ldrs.push(new Loader); } var calb:Function = function(e:Event):void { bitmapImages.push(ldrs[bitmapImages.length].content as Bitmap); figures[bitmapImages.length-1].addChild( bitmapImages[bitmapImages.length - 1]); if (bitmapImages.length == f_names.length) { if (color == 'white') { GVC.bitmapWhites = bitmapImages; GVC.whites = figures; } if (color == 'black') { GVC.bitmapBlacks = bitmapImages; GVC.blacks = figures; } cb.call(); } } for (i = 0; i < f_names.length; i++) { ldrs[i].contentLoaderInfo.addEventListener(Event.COMPLETE, calb); trace('media/images/chessgame/' + color + '/' + f_names[i] + '.png'); ldrs[i].load(new URLRequest('media/images/chessgame/'+color+'/'+f_names[i]+'.png')); } } public function loadSounds():void { GVC.right_sound = new Sound(new URLRequest('media/sounds/chessgame/knock.mp3')); GVC.wrong_sound = new Sound(new URLRequest('media/sounds/chessgame/wrong.mp3')); } } } UPD: Забыл сказать что открываю с тестового сервера по url. Если открыть в браузере по абсолютному пути все ок. Последний раз редактировалось Svetlov; 29.05.2012 в 21:44. |
![]() |
Часовой пояс GMT +4, время: 03:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|