Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.04.2016, 14:20
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 1  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
По умолчанию Как сделать перетаскивание?

Здравствуйте! Скажите, пожалуйста, как сделать так, чтобы я мог перетаскивать картинку в строго отведённом пространстве? Ну, скажем, в поле с размерами 300х150.
Код самого перетаскивания у меня есть, а как перетаскивать не выходя за пределы поля я не знаю.
Помогите мне, пожалуйста!
Код AS3:
img.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
img.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
 
function startDragging(evt:MouseEvent):void {
    evt.target.startDrag(true);
 
}
function stopDragging(evt:MouseEvent):void {
    evt.target.stopDrag();
}
 
 
stage.addEventListener(Event.ENTER_FRAME, checkHitArea);
function checkHitArea(evt:Event){
    if(this.hotspot_mc.hitTestObject(img)){
        trace("Перетаскивается");
    }else{
        trace("Не перетаскивается");
    }
}

Старый 04.04.2016, 14:47
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 2  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Click
Второй параметр представляет собой Rectangle, который определяет границы перетаскивания.

Старый 04.04.2016, 15:18
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 3  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от illuzor Посмотреть сообщение
Click
Второй параметр представляет собой Rectangle, который определяет границы перетаскивания.
Разобрался. Спасибо! Перетаскивание работает как надо. Но возникла другая проблема.
Вот только внимательно:
- есть основная сцена (swf-1), есть внешний swf-2, и есть тоже внешний swf-3, в котором находится это перетаскивание.
- подгружаю swf-3 в swf-2 используя код:
Код AS3:
fl_ProLoader_1 = new ProLoader();
        fl_ProLoader_1.load(new URLRequest("http://www.swf-3"));
        addChild(fl_ProLoader_1);
В итоге всё здорово, всё прекрасно работает.
Теперь таким же образом подгружаю swf-2 в swf-1. И тут проблема. Программа выдаёт ошибку:

Код AS3:
  SecurityError: Error #2070: Security sandbox violation: caller file:///G:/№1/Test/swf-3.swf cannot access Stage owned by app:/swf-1.swf.
    at flash.display::Stage/requireOwnerPermissions()
    at flash.display::Stage/addEventListener()
    at swf-3_fla::MainTimeline/frame1()
То есть swf-1 не принимает swf-3. А вот если из swf-3 удалить код перетаскивания, тогда всё открывается без ошибок, но, естественно, перетаскивание не работает. Как можно эту ошибку исправить?


Последний раз редактировалось Comer; 04.04.2016 в 17:49.
Старый 04.04.2016, 20:08
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 4  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
А это вообще что?)
Цитата:
"http://www.swf-3"
просто локально нельзя грузить, типа swf-3.swf
Цитата:
если из swf-3 удалить код перетаскивания, тогда всё открывается без ошибок
Возможно, первый свф в который грузится другой свф имеет другую версию скрипта.

Старый 04.04.2016, 20:18
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
В конструкторы своих флешек, добавь код
Код AS3:
Security.allowDomain("*");
, чтобы они разрешали флешкам с других доменов подключаться к своему коду
__________________
Ко мне можно и нужно обращаться на ты)

Старый 04.04.2016, 20:57
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 6  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от KiL33 Посмотреть сообщение
просто локально нельзя грузить, типа swf-3.swf
Все три флешки сделал сам. Сценарий для каждой из них - ActionScript 3.0
Кстати, тестирую загрузку одного swf в другой ЛОКАЛЬНО, без выхода в интернет и без эмулятора. Прекрасно грузится и работает как надо.

Добавлено через 47 секунд
Цитата:
Сообщение от caseyryan Посмотреть сообщение
В конструкторы своих флешек, добавь код
Код AS3:
Security.allowDomain("*");
Вставил твой код в свои флешки. Не помогло.


Последний раз редактировалось Comer; 04.04.2016 в 21:28.
Создать новую тему Ответ Часовой пояс GMT +4, время: 20:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.