PDA

Просмотр полной версии : массив png рисунков


Tirex
20.09.2007, 11:56
Начал делать игру шахматы. Доску загрузил как jpg
var linkageId:String = "board";
board = BitmapData.loadBitmap(linkageId);
//аттачим к главному
mainc.attachBitmap(board,0);

Далее есть 12 фигур (png) добавлены в library проекта как Bitmap.
пытаюсь загрузить их в массив вручную

this.p = new Array(2);
this.p[0] = new Array(6);
this.p[1] = new Array(6);
this.p[0,0] = mainc.createEmptyMovieClip(this.p[0,0], 2);
this.p[0,0].loadMovie("fb");
this.p[0][0]._x = 300;
this.p[0][0]._y = 300;

fb это linkage id рисунка в library. Пробовал примеры из FAQ. еще больше запутался :(

проект выглядит так (chess.fla)
import ChessGame.*
var myChess:ChessGame = new ChessGame(_root);
а сам код уже в ChessGame.as

Wolsh
20.09.2007, 15:53
Во-первых, почему loadMovie("fb"); когда это картинка в библиотеке?
Во-вторых, почему то p[0,0], то p[0][0].
В-третьих, что это за странная строчка
this.p[0,0] = mainc.createEmptyMovieClip(this.p[0,0], 2); ?
this.p[0,0] не может быть именем мувиклипа, дайте ему человеческое имя.

Tirex
21.09.2007, 10:28
Во-первых, почему loadMovie("fb"); когда это картинка в библиотеке?
имя.
Так я не понял как загрузить картинку из библиотеки.
А вы в меня вопросами :(
Насчет остального исправил.

CorC
21.09.2007, 10:34
А у вас выше в коде разве не написано?
И вообще лучше мувиками аттачиться чем битмапами

Tirex
22.09.2007, 15:15
А у вас выше в коде разве не написано?
И вообще лучше мувиками аттачиться чем битмапами
Т.е. конверить графику в мувики ?

CorC
25.09.2007, 10:26
Не конвертировать а просто перенести в клипы :)

Tirex
25.09.2007, 12:20
Создаю битмап, создаю пустой мувик, аттачу битмап к мувику а потом уже этот мувик к главному?

var fw_b:BitmapData = BitmapData.loadBitmap("fw");
_root.createEmptyMovieClip("fw_m", 3);
fw_m.attachBitmap(fw_b,3);
fw_m.width = 64;
fw_m.height = 64;
mainc.attachMovie("","fw_m",3);

Это вы имели в виду ?

Kikasso
25.09.2007, 12:26
Нет, нет, нет. Аттачить (attachMovie) можно только клипы из библиотеки.
Вытаскиваете фотку из библиотеки, кликаете на нее, F8, мувиклип, экспорт, id. Теперь на сцене ее убиваете, а из библитеки можно аттачить.
Если в виде битмапы - то
import flash.display.BitmapData;
var fw_b:BitmapData = BitmapData.loadBitmap("fw");
var fw_m = mainc.createEmptyMovieClip("fw_m", 3);
fw_m.attachBitmap(fw_b,3);

Tirex
25.09.2007, 15:51
Вытаскиваете фотку из библиотеки, кликаете на нее, F8, мувиклип, экспорт, id. Теперь на сцене ее убиваете, а из библитеки можно аттачить.

Понял, спасибо, У меня они изначально только в библиотеке были. Сцена чистая. С кодом вроде ясно. Теперь хорошо бы это в массив загрузить. Ибо 16 рисунков загружать таким способом долговато.
Я дал linkade id от f0 до f11.
затем пробовал так грузить:
var ba = new Array [12]; //для битмапов
var ma = new Array [12]; //для мувиков
for (var i=0;i<12;i++)
{
var k = mainc.getNextHighestDepth();
ba[i] = BitmapData = BitmapData.loadBitmap("f"+i);
ma[i] = mainc.createEmptyMovieClip("ma["+i+"]",k); ma[i].attachBitmap(ba[i],k);
}

что тут не так? :(

Aziz Zaynutdinoff
25.09.2007, 19:18
ma[i] = mainc.createEmptyMovieClip("ma["+i+"]",k);

тут не так

должно быть:

var ba = new Array(); //для битмапов
var ma = new Array (); //для мувиков
for (var i=0;i<12;i++)
{
var k = mainc.getNextHighestDepth();
ba[i] = BitmapData = BitmapData.loadBitmap("f"+i);
ma[i] = mainc.createEmptyMovieClip("ma"+i, k); ma[i].attachBitmap(ba[i],0);
}