точно, какого размера (я имею в виду КБ, а также точный размер пикселя) ваши PNG?
Мы проделали большую работу над этим и без проблем воспроизводим анимацию на панели размером, скажем, 500x500. Так что мне просто интересно, спасибо.
Одной из непосредственных проблем является то, что вы пытаетесь работать с частотой 100 Гц, 100 раз в секунду ??!
Это абсолютно невозможно. Ничто не работает на 100 кадров в секунду. 20 кадров в секунду - это «чрезвычайно плавный», 30 кадров в секунду - «потрясающе плавный», 40 кадров в секунду - «ошеломляющий уровень человеческого зрения и исследований, если это возможно», а 100 кадров в секунду - невозможно.
Это абсолютно не имеет ничего общего с OpenGLES.
Обычная среда очень быстро загрузит кадры.
Итак, сначала вернитесь к 30 кадрам в секунду (максимум!) И выбросьте каждое 2-е и 3-е изображение, чтобы анимация выглядела одинаково. т.е. "i = i ++" становится "i + = 3" в вашей строке кода.
Вполне вероятно, что это огромная проблема, которая разрушает ваши усилия!
Следующая проблема! Если вы загружаете каждое изображение таким же образом, вам почти наверняка понадобится отпустить их все на лету , когда вы будете использовать пару строк, что-то вроде ...
[happy.image release];
happy.image = [[UIImage alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@"blah" ofType:@"png"]];
Если вы этого не сделаете, это просто не сработает.
Следующая проблема! Идея использования видео бесполезна, но не могли бы вы просто использовать повседневное анимированное изображение? Таким образом ...
#define BI(X) [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@X ofType:@"tif"]]
happyDays = [[NSArray alloc] initWithObjects:
BI("hh00"), BI("hh01"), BI("hh02"), BI("hh03"), BI("hh04"), BI("hh05"), BI("hh06"), BI("hh07"), BI("hh08"), BI("hh09"),
BI("hh10"), BI("hh11"), BI("hh12"), BI("hh13"), BI("hh14"), BI("hh15"), BI("hh16"), BI("hh17"), BI("hh18"), BI("hh19"), etc etc etc
nil];
animArea.animationImages = happyDays;
animArea.animationDuration = 2.88;
// that is overall seconds. hence: frames divided by about 30 or 20.
[animArea startAnimating];
Не подходит для вашей ситуации?
В любом случае, одним словом, ваша проблема - 100 кадров в секунду. Измените на 20 кадров в секунду, и у вас не возникнет проблем. И сообщите нам точный размер изображения (КБ / х.у).