![]() |
|
||||||||||
|
|||||
|
Загружаю изображение:
Далее использую его в своих целей. Возник вопрос. Как для pic указать его центр? Просто если, например, вращать его без указания центра, то он будет вращаться по относительным к pic координатам 0 и 0, а нужно width / 2, height / 2
__________________
Рожденный ползать, везде пролезет... |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 34
|
можно в контейнер засунуть а там уже отпозиционировать после загрузки в
-width / 2, -height / 2 |
|
|||||
|
А нет мануальчика по контейнерам?
__________________
Рожденный ползать, везде пролезет... |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 34
|
container = new Sprite(); addChild(container); var pic:Loader = new Loader(); pic.load(new URLRequest("1.jpg")); pic.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadImageComplete); conteiner.addChild(pic); private function onLoadImageComplete(event:Event):void { //позиционирование -width / 2, -height / 2 } |
|
|||||
|
Огромное спасибо.
Контейнер как раз таки решил и мой второй вопрос о start и stop Drag. Добавлено через 25 минут Вот, кому интересно, доделал класс. Загружает указанное изображение, и делает его "draggable" ![]() package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.display.Loader; public class Image extends Sprite { private var pic:Loader = new Loader(); public function Image(imgsrc:URLRequest, xpos:Number=0, ypos:Number=0) { pic.load(imgsrc); pic.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadImageComplete); this.addChild(pic); x = xpos; y = ypos; addEventListener(MouseEvent.MOUSE_DOWN, dragingS); addEventListener(MouseEvent.MOUSE_UP, dragingE); } public function onLoadImageComplete(e:Event):void { pic.x = -width / 2; pic.y = -height / 2; } public function dragingS(e:MouseEvent):void { startDrag(); } public function dragingE(e:MouseEvent):void { stopDrag(); } } }
__________________
Рожденный ползать, везде пролезет... |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 34
|
пару коментариев:
линейные размеры теоретически лучше у pic брать листенеры должны быть приватными ну и именования вроде imgsrc, pic, xpos и dragingE немного глаза режут.. на крайняк imgSrc но помому достаточно url, xpos -> x или positionX draggingE -> onMouseUp (это если следовать именованию onLoadImageComplete) хотя может частично это у меня уже такие привычки 8) Последний раз редактировалось cybercub; 05.10.2009 в 23:25. |
|
|||||
|
Да, ты прав.
Просто код сделал как для примера, и взял кусок из твоего, для скорости. Не привык пока все на автомате писать в корректном стиле. А вот насчет линейных размеров не очень понял, поясни пожалуйста.
__________________
Рожденный ползать, везде пролезет... |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 34
|
|
|
|||||
|
Регистрация: Jul 2009
Сообщений: 35
|
Когда Loader'ом загружается картинка, она становится его единственным потомком( притом Bitmap'ом). Дак вот, подвигать можно его(loader.content.x/y).
Про класс, лучше передавай String с адресом, а уже внутри создавай URLRequest. |
|
|||||
|
elfon, спасибо за еще один вариант, но с вариантом контейнера ввиде спрайта, возможностей для различных манипуляций объектом гораздо больше чем просто лоадер.
В итоге, с вашими подсказками: package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.display.Loader; public class Image extends Sprite { private var pic:Loader = new Loader(); public function Image(url:String, positionX:Number=0, positionY:Number=0) { pic.load(new URLRequest(url)); pic.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadImageComplete); this.addChild(pic); x = positionX; y = positionY; addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler); addEventListener(MouseEvent.MOUSE_UP, onMouseUPHandler); } public function onLoadImageComplete(e:Event):void { pic.x = -pic.width / 2; pic.y = -pic.height / 2; } public function onMouseDownHandler(e:MouseEvent):void { startDrag(); } public function onMouseUpHandler(e:MouseEvent):void { stopDrag(); } } }
__________________
Рожденный ползать, везде пролезет... |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|