2013-04-08 2 views
0

Я пытаюсь изменить размер и изменить положение HTMLLoader на ту же сумму, но размер HTMLLoader всегда отстает от позиции, по крайней мере, от кадра. Позиция и размер изменяются на одну и ту же сумму. Это происходит как при изменении размера вручную, так и при использовании твинов. Я пробовал задерживать подростков, которые управляют положением фреймом, и иногда это помогало, но в других случаях это делало хуже.Изменение размера HTMLLoader отстает от позиции

код твин:

// t is the time, 0.5 in this case 
// ease is the easing function, I tried linear and Regular.easeInOut 
tweenW = new Tween(gallery.masker, "width", ease, gallery.masker.width, (full ? largeX : smallX), t, true); 
tweenH = new Tween(gallery.masker, "height", ease, gallery.masker.height, (full ? largeY : smallY), t, true); 
tweenX = new Tween(gallery.masker, "x", ease, gallery.masker.x, (full ? -posX : 0), t, true); 
tweenY = new Tween(gallery.masker, "y", ease, gallery.masker.y, (full ? -posY : 0), t, true); 
tweenBX = new Tween(border, "x", ease, border.x, (full ? 0 : posX), t, true); 
tweenBY = new Tween(border, "y", ease, border.y, (full ? 0 : posY), t, true); 
tweenBW = new Tween(border, "width", ease, border.width, (full ? largeX * borderMultX : smallX * borderMultX), t, true); 
tweenBH = new Tween(border, "height", ease, border.height, (full ? largeY * borderMultY : smallY * borderMultY), t, true); 

HTMLLoader изменение размера кода (Event.EXIT_FRAME):

loader.width = gallery.masker.width; 
loader.height = gallery.masker.height; 
loader.x = gallery.masker.x; 
loader.y = gallery.masker.y; 

При отображении, размер gallery.masker правильно, но HTMLLoader все еще отстает от

пример:

HTML c ontent - пустая зеленая страница, gallery.masker - это красная форма с 50% альфа над HTMLLoader. Твинг примерно на полпути расширяется.

(его не давая мне возможность отправлять изображения, может кто-то пожалуйста, измените это http://img571.imageshack.us/img571/3699/resizeq.png?)

EDIT: минимальный пример доступен в http://www.mediafire.com/?5c2zkhmb6v9b61u (содержит CS6 .fla, все источники, .swf и app.xml)

+0

'tweenW, tweenH, tweenX ...' они являются глобальными переменными или переменными уровня функции? Я спрашиваю, потому что похоже, что сборщик мусора удаляет эти объекты твинов из памяти, прежде чем они закончат свою работу. Убедитесь, что вы держите ссылку на эти объекты анимации до тех пор, пока они не будут закончены. Это обычная проблема с движением tweening из пакета 'fl'. – ggat

+0

Я использую вложенную функцию. Твины всегда заканчиваются, «HTMLLoader» просто не работает должным образом. 'private function SetupResize (/ * vars * /) {/ * ... */var tweenX: Tween;/* .. */function DoTween (t: Number) {/ * tweens here * /}} ' –

ответ

0

Подвесной двигатель от fl Пакет имеет известную проблему, ссылка на каждый объект Tween должна храниться до тех пор, пока она не будет закончена, в противном случае сборщик мусора удалит эти объекты, прежде чем они смогут закончить работу наследника. Таким образом, свойства объекта цели/tweened замораживаются.

@Malik Drako в вашем случае вы можете сделать ссылки на объекты Tween глобальными, чтобы они всегда были живы или более гибким способом было бы взять один Vector и сделать некоторый механизм тяги для ссылок, так что во втором случае вы не нужно называть каждый объект Tween, и одновременно вы можете создать столько же Tween, сколько хотите.

+0

Чтобы сделать его более понятным, когда ваша функция заканчивает выполнение (я имею в виду' SetupResize() '), переменные стали подходящими для уборщик мусора. – ggat

+0

Я видел эту проблему, но это не то, что здесь происходит. Здесь подростки всегда заканчиваются. –

+0

Я также попытался вручную изменить размер в AS, и размер все еще отстает –

 Смежные вопросы

  • Нет связанных вопросов^_^