Изображение НЕ следует за мышью. startDrag и stopDrag

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение wierusna »

Вот код

Код: Выделить всё

 var index:MovieClip = new MovieClip();addChild(index);setChildIndex(index, 0); var loaderContext:LoaderContext = new LoaderContext();loaderContext.checkPolicyFile = true;var avaStage:String;//адрес загружаемой картинки из xmlvar ava:Loader = new Loader();//loader картинки из xml var XMLLoader:URLLoader = new URLLoader();var XMLdata:XML = new XML();XMLLoader.addEventListener(Event.COMPLETE, xmlLoaded)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);  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);                                 pictLdr.load(pictURLReq) as MovieClip;                 addChild(pictLdr);        setChildIndex(pictLdr, 0);        pictLdr.addEventListener(MouseEvent.MOUSE_DOWN, startDraging);        pictLdr.addEventListener(MouseEvent.MOUSE_UP, stopDraging);}   }  function startDraging(e:MouseEvent):void{    e.currentTarget.startDrag();    } function stopDraging(e:MouseEvent):void{   e.currentTarget.stopDrag();  }  
Изображения добавляет, но они не хотят следовать за мышью. В чем проблема?
Вот демка http://mega-tv.do.am/XMLturaga/turaga2.swf
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение Александр »

wierusna

Код: Выделить всё

ReferenceError: Error #1069: Не удалось найти свойство startDrag в flash.display.Loader; отсутствует значение по умолчанию.
Добавить картинку на мувиклип или спрайт.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение wierusna »

Спасибо! Получилось.
Не подскажите почему так все работает http://mega-tv.do.am/XMLturaga/turaga2.swf
А когда заливаю его в ВК, то XML не грузится( http://vk.com/app3236488

Код вот

Код: Выделить всё

 import com.yahoo.astra.fl.controls.treeClasses.*;import flash.net.URLRequest;import flash.display.Loader;import flash.xml.XMLDocument;import fl.events.ListEvent;import flash.display.Sprite;import flash.display.Bitmap;import flash.display.BitmapData;import flash.display.MovieClip;   var index:MovieClip = new MovieClip();addChild(index);setChildIndex(index, 0); var loaderContext:LoaderContext = new LoaderContext();loaderContext.checkPolicyFile = true;var avaStage:String;//адрес загружаемой картинки из xmlvar ava:Loader = new Loader();//loader картинки из xml var XMLLoader:URLLoader = new URLLoader();var XMLdata:XML = new XML();XMLLoader.addEventListener(Event.COMPLETE, xmlLoaded)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);  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) as MovieClip;                 //addChild(pictLdr);        spr.addChild(pictLdr)         setChildIndex(spr, 0);        spr.addEventListener(MouseEvent.MOUSE_DOWN, startDraging);        spr.addEventListener(MouseEvent.MOUSE_UP, stopDraging);}   }  function startDraging(e:MouseEvent):void{    e.currentTarget.startDrag();    } function stopDraging(e:MouseEvent):void{   e.currentTarget.stopDrag();  }      
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение Александр »

wierusna
http://mega-tv.do.am/crossdomain.xml

Код: Выделить всё

<cross-domain-policy><allow-access-from domain="*.vkontakte.ru"/><allow-access-from domain="*.vk.com"/><allow-access-from domain="*.userapi.com"/></cross-domain-policy>
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение wierusna »

Александр писал(а):wierusna
http://mega-tv.do.am/crossdomain.xml

Код: Выделить всё

<cross-domain-policy><allow-access-from domain="*.vkontakte.ru"/><allow-access-from domain="*.vk.com"/><allow-access-from domain="*.userapi.com"/></cross-domain-policy>
Странно, теперь грузится древовидное меню, но не загружаются картинки О_о

Может быть в

Код: Выделить всё

 loaderContext.checkPolicyFile = true; 
Поставить на false?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение Alazaur »

Напишите перед загрузкой

Код: Выделить всё

Security.loadPolicyFile("http://ваш_сайт.ru/crossdomain.xml");
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение wierusna »

Alazaur писал(а):Напишите перед загрузкой

Код: Выделить всё

Security.loadPolicyFile("http://ваш_сайт.ru/crossdomain.xml");
не помогло
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение Alazaur »

Способ 1:

Код: Выделить всё

Security.loadPolicyFile("http://ваш_сайт.ru/crossdomain.xml");var loader:Loader = new Loader();loader.load(new URLRequest("http://картинка.jpg"));addChild(loader);
Работает как локально, так и на сервере (в данном случае вконтакте).

Способ2:

Код: Выделить всё

var context:LoaderContext = new LoaderContext();context.securityDomain = SecurityDomain.currentDomain;context.applicationDomain = ApplicationDomain.currentDomain;var loader:Loader = new Loader();loader.load(new URLRequest("http://картинка.jpg"), context);addChild(loader);
Работает, только на сервере. При локальном тестировании будет выдавать ошибку.

Оба работают и не раз проверены. Если Вам не помогает, значит проверяйте путь до crossdomain.xml, сам код загрузки или в крайнем случае сервер (н-р: не наложен ли хостером блок на домен вконтакте).
Есть еще третий способ в обход политики безопасности, но это уже другая история)))
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение wierusna »

Alazaur
1й способ при компиляции выдает такую ошибку, когда нажимаю на картинка 1
Отсутствует активный контекст безопасности.
2й способ тоже не помог

Спасибо за совет! Попробую другой хостинг ;)
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Изображение НЕ следует за мышью. startDrag и stopDrag

Сообщение wierusna »

Вот блин! Нашел ошибку))
В XML вместо

Код: Выделить всё

<node label="картинка 1" src="1.jpg" />
Нужно было прописать

Код: Выделить всё

<node label="картинка 1" src="http://mega-tv.do.am/XMLturaga/1.jpg" />
Помогла ошибка при компиляции ///C|/Users/user/Desktop/папка/turaga.swf пытался загрузить file:///C|/Users/user/Desktop/папка/1.jpg.
Спасибо вам огромное!
Ответить