wierusna
Действительно работает =) Мои поздравления и небольшое пожелание: сделать X и Y рандомным у создавающейся картинки. Только что потестил твое приложение - картинки появляются друг под другом.
Изображение НЕ следует за мышью. startDrag и stopDrag
-
- Сообщения: 429
- Зарегистрирован: 22 июн 2012, 17:50
Re: Изображение НЕ следует за мышью. startDrag и stopDrag
Да, да над этим уже думал. Спасибо!Casperovskii писал(а):wierusna
Действительно работает =) Мои поздравления и небольшое пожелание: сделать X и Y рандомным у создавающейся картинки. Только что потестил твое приложение - картинки появляются друг под другом.
Re: Изображение НЕ следует за мышью. startDrag и stopDrag
Блин, возникла новая проблема((
Подключаю класс Main.as
На сцене 2 объекта (древовидный список с именем mytree и черный прямоугольник с именем img)
При компиляции ошибок нету и все работает, кроме древовидного списка - не загружается XML (по отдельности все работает)
Вот код из класса Main.as (сорри за говнокод. Я самоучка, литературы не читал ) Помогите!
Подключаю класс Main.as
На сцене 2 объекта (древовидный список с именем mytree и черный прямоугольник с именем img)
При компиляции ошибок нету и все работает, кроме древовидного списка - не загружается XML (по отдельности все работает)
Вот код из класса Main.as (сорри за говнокод. Я самоучка, литературы не читал ) Помогите!
Код: Выделить всё
package { import flash.display.*; import flash.events.*; import com.yahoo.astra.fl.controls.treeClasses.*; import fl.events.ListEvent; import flash.utils.ByteArray; import flash.net.URLRequest; import flash.net.URLRequestHeader; import flash.net.URLRequestMethod; import flash.net.URLLoader; import flash.system.LoaderContext import flash.system.ApplicationDomain import flash.display.MovieClip; import flash.display.Loader; import flash.xml.XMLDocument; import flash.system.*; import flash.display.Sprite; import flash.display.Bitmap; import flash.display.BitmapData; import com.yahoo.astra.fl.controls.treeClasses.*; import vk.api.serialization.json.JSON; import vk.api.MD5; import vk.APIConnection; import vk.events.*; import vk.ui.*; import vk.PNGEncoder; import vk.MultipartURLLoader; import vk.MultipartURLLoaderEvent; import vk.api.serialization.json.JSON; //папку vk можно найти в исходнике. public class Main extends Sprite { //turaga vars public var avaStage:String;//адрес загружаемой картинки из xml public var ava:Loader = new Loader();//loader картинки из xml public var XMLLoader:URLLoader = new URLLoader(); public var XMLdata:XML = new XML(); public var context:LoaderContext = new LoaderContext(); public var index:MovieClip = new MovieClip(); //turaga vars public var uploadphoto:VKButton; //обычная кнопка public var loader:Loader = new Loader(); public var urlforpost:String;//Адрес, на который будем отправлять фотографию, чтобы загрузить в профиль public var urlofphoto:String;//адрес аватара public var api_id:Number; public var viewer_id:Number; public var sid:String; public var secret:String; public var changephotobtn:VKButton; //обычная кнопка public var profilephoto:Bitmap; //фотография пользователя public var brr:ByteArray; //получаем flashvars public var flashVars:Object = stage.loaderInfo.parameters as Object; //инициализация public var VK:APIConnection = new APIConnection(flashVars); public function Main() { context.securityDomain = SecurityDomain.currentDomain; context.applicationDomain = ApplicationDomain.currentDomain; //переменные приложения api_id = flashVars['api_id']; viewer_id = flashVars['viewer_id']; sid = flashVars['sid']; secret = flashVars['secret']; //получаем адрес, на который будем отправлять картинку VK.api('photos.getProfileUploadServer', {}, geturl, onError); addChild(index); setChildIndex(index, 0); XMLLoader.addEventListener(Event.COMPLETE, xmlLoaded) } private function xmlLoaded(event:Event):void { XMLdata = new XML(event.target.data); mytree.dataProvider = new TreeDataProvider(XMLdata); XMLLoader.load(new URLRequest("http://mega-tv.do.am/XMLturaga/img.xml")); mytree.addEventListener(ListEvent.ITEM_CLICK, addClick); } private function addClick (ev:ListEvent) { if (ev.item.src != null) { //removeChild(getChildAt(0)); avaStage = (ev.item.src); var pictLdr:Loader = new Loader(); var pictURLReq:URLRequest = new URLRequest(avaStage); var spr:Sprite=new Sprite() spr.x=300; spr.y=400; addChild(spr) pictLdr.load(pictURLReq, context) as MovieClip; //addChild(pictLdr); spr.addChild(pictLdr) setChildIndex(spr, 0); spr.addEventListener(MouseEvent.MOUSE_DOWN, startDraging); spr.addEventListener(MouseEvent.MOUSE_UP, stopDraging);} } private function startDraging(e:MouseEvent):void{ e.currentTarget.startDrag(); } private function stopDraging(e:MouseEvent):void{ e.currentTarget.stopDrag(); } private function geturl(data:Object):void { urlforpost = data.upload_url; //получаем фотографию пользователя с профиля VK.api('getProfiles', {uids:viewer_id,fields:'photo_big'}, geturlofprofilephoto, onError); } private function geturlofprofilephoto(data:Object):void { urlofphoto = data[0]['photo_big']; //загружаем фотографию var loaderContext:LoaderContext = new LoaderContext(); loaderContext.checkPolicyFile = true loader.load(new URLRequest(urlofphoto),loaderContext); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,dobtn); } function dobtn(e:Event):void { //помещаем фотографию на сцену, используя BitMapData. var bmp:Bitmap = loader.content as Bitmap; profilephoto = new Bitmap(bmp.bitmapData); addChild(profilephoto); addChild(img);//небольшой костыль, просто могут возникнуть проблемы с "наложением" картинок друг на друга.. //позволяем перетаскивать картинку на профильную фотографию.. img.addEventListener(MouseEvent.MOUSE_DOWN, sdrag); function sdrag(e:MouseEvent):void { img.startDrag(); } img.addEventListener(MouseEvent.MOUSE_UP, stdrag); function stdrag(e:MouseEvent):void { img.stopDrag(); } changephotobtn = new VKButton("Изменить аватар"); // при нажатии на эту кнопку, фотография сохранится в профиль. changephotobtn.x = 250; addChild(changephotobtn); //сохраняем changephotobtn.addEventListener(MouseEvent.CLICK,save); } function save(e:MouseEvent):void { var raw:BitmapData = new BitmapData(loader.width,loader.height);//"фотографируем" область где находится аватар, чтобы понять как расположена картинка raw.draw(stage); brr = PNGEncoder.encode(raw); changephoto(urlforpost,brr); } public function changephoto(Url:String,brr:ByteArray):void { var mll:MultipartURLLoader = new MultipartURLLoader(); mll.addFile(brr, "file.jpg", "photo", 'image/jpg'); mll.load(Url); mll.addEventListener(Event.COMPLETE, loadComplete); } function loadComplete(e:Event):void { var loader:URLLoader = MultipartURLLoader(e.currentTarget).loader; var response = JSON.decode(loader.data); VK.api('photos.saveProfilePhoto', {server:response.server,photo:response.photo,hash:response.hash}, savephoto, onError); } private function savephoto(data:Object):void { trace("OK"); } private function onError(data:Object):void { trace("ERROR"); } } }
Re: Изображение НЕ следует за мышью. startDrag и stopDrag
Строку 93
нужно перенести под строку 85
Код: Выделить всё
XMLLoader.load(new URLRequest("http://mega-tv.do.am/XMLturaga/img.xml"));
Код: Выделить всё
XMLLoader.addEventListener(Event.COMPLETE, xmlLoaded)//Сюда
Re: Изображение НЕ следует за мышью. startDrag и stopDrag
Alazaur
Спасибо вам большое еще раз!! Очень выручаете!
Спасибо вам большое еще раз!! Очень выручаете!
-
- Сообщения: 429
- Зарегистрирован: 22 июн 2012, 17:50
Re: Изображение НЕ следует за мышью. startDrag и stopDrag
Смотрел твое приложение, не будешь добр скинуть код поворота объекта относительно не центра, а произвольной точки?