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

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

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

Регистрация: Apr 2008
Адрес: Moldova
Сообщений: 12
Отправить сообщение для ThyQ с помощью ICQ
По умолчанию будто уменьшает содержимое, оставляя пустые края

Здравствуйте, Уважаемые.
Этот форум для меня теперь настоящий учебник.
Взялся за написание "плагина", если "это" так можно назвать.
все элементы создаются программно. Суть в том, что указанная фотка получает возможность быть более детально рассмотрена (в той части фотки, где находится курсор мыши).
в HTML определяю четко размеры самой свфки, и передаю те же значения в свфку.
В свфке создаю несколько мувиклипов
в один гружу фоту(фон)
во второй гружу ту же фоту но умноженную в размере на множитель zoom (это даёт эффект увеличенности), из другого делаю маску, соответственно накладываю маску, и двигаю маску в соответствии с координатами мыши, смещая увеличенную фоту под маской так, чтобы в области маски показывался тот же участок, на который указывает мышь в неувеличенной фоте.
В общем функциональность присутствует.
Но есть одно "НО", при тестировании, подставляя разные фото я столкнулся с странным поведением свфки. Она будто уменьшает контент, оставляя часть свфки пустой.

pwidth и pheight - переменные передаваемые из HTML
После изнурительного поиска нашел лишь это:


Код AS1/AS2:
Stage.width=parseInt(pwidth);
Stage.height=parseInt(pheight);

но ошибка не устранилась...

Так я пытался растягивать мувиклип неувеличенной фотки на всю область свфки


Код AS1/AS2:
var mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcl.addListener(listener);
this.createEmptyMovieClip("the_image", 0);
mcl.loadClip(small_pic, the_image);
listener.onLoadInit = function(the_image:MovieClip) {
the_image._width=parseInt(pwidth);
the_image._height=parseInt(pheight);
};

Потом я подумав ещё предположил: "может в zoomе дело???, мол он жеж увеличвает изображение под маской, поэтому может и выделяет под себя "территорию" внутри свфки..."
Организовано это так:


Код AS1/AS2:
var mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcl.addListener(listener);
createEmptyMovieClip("bg_pic", 1);
mcl.loadClip(small_pic, bg_pic);
listener.onLoadInit = function(bg_pic:MovieClip) {
bg_pic._width=pwidth*zoom;
bg_pic._height=pheight*zoom;
 
bg_pic.setMask(circle_mc);
};

Но при значительном изменении значения zoom "пустая область" осталась неизменной.
Код с готовой работой тоже прилагаю, если некорректно описал, простите...2 дня уже не сплю...(((
Вложения
Тип файла: zip plugin.zip (162.3 Кб, 81 просмотров)

Старый 09.07.2009, 15:06
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Stage.width
Stage.height
Эти свойства read-only, изменить их вы не можете.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 09.07.2009, 20:00
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
ThyQ, я не увидел четко сформулированного вопроса.

Из фразы "она будто уменьшает контент, оставляя часть свфки пустой" попытаюсь предположить, что контент не должен уменьшаться, и тем более не оставлять часть свфки пустой.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 09.07.2009, 23:53
ThyQ вне форума Посмотреть профиль Отправить личное сообщение для ThyQ Найти все сообщения от ThyQ
  № 4  
Ответить с цитированием
ThyQ

Регистрация: Apr 2008
Адрес: Moldova
Сообщений: 12
Отправить сообщение для ThyQ с помощью ICQ
Цитата:
ThyQ, я не увидел четко сформулированного вопроса.
В том-то и дело, что вопрос как-то даже сложно сформировать.
Цитата:
Из фразы "она будто уменьшает контент, оставляя часть свфки пустой" попытаюсь предположить, что контент не должен уменьшаться, и тем более не оставлять часть свфки пустой.
Именно... содержимое должно заполнять всё выделяемое под свфку пространство.
Может я в алгоритме где-нить пропустил чего? Или просто какую-то мелочь ещё не знаю? Вы прикреплённый файл смотрели, там сразу видно что я имел в виду. (запускать надо хтмл файл, хотя думаю вы знаете)

Попробую переформировать вопрос:
Как заставить содержимое растянуться по всей области выделенной под свф так, чтобы не оставалось пустот?

Цитата:
Эти свойства read-only, изменить их вы не можете.
Спасибо, значит не туда ткнулся, буду знать. Пишу в АС 2.0 поэтому не могу могу обратиться к StageWidth


Последний раз редактировалось ThyQ; 09.07.2009 в 23:57.
Старый 10.07.2009, 00:02
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Я посмотрел Ваш исходник. Оптимизированную версию выложу вскоре. Но главный затык в неправильном вычислении координат big_pic в обработчике someListener.onMouseMove

Попробуйте такой вариант:
Код AS1/AS2:
this.big_pic._x = -(Stage.width - this.big_pic._width) / 2 * (1 - this._xmouse / Stage.width);
c this.big_pic._y аналогично.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 10.07.2009, 02:51
ThyQ вне форума Посмотреть профиль Отправить личное сообщение для ThyQ Найти все сообщения от ThyQ
  № 6  
Ответить с цитированием
ThyQ

Регистрация: Apr 2008
Адрес: Moldova
Сообщений: 12
Отправить сообщение для ThyQ с помощью ICQ
Цитата:
Но главный затык в неправильном вычислении координат big_pic в обработчике someListener.onMouseMove
Но ведь по моей формуле он указывает именно в ту точку куда надо и смещает отлично. Еслиб только фоновое изображение растягивалось на всю область...
Прошу прощения, но предоставленная Вами формула работает недостаточно корректно, смещение не точное, изображение под маской не соответствует точке на видимом, "фоновом" изображении
Моя формула работает именно так как надо...по крайней мере по отношению к маске.
Может дело в том, что при создани fla у меня стоит 800х600 (размер рабочей площади указываемый в самом приложени)? Есть ли возможность изменять её?


Последний раз редактировалось ThyQ; 10.07.2009 в 03:10.
Старый 10.07.2009, 13:05
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Осилил.
Вложения
Тип файла: rar plugin.rar (161.7 Кб, 140 просмотров)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 10.07.2009, 18:47
ThyQ вне форума Посмотреть профиль Отправить личное сообщение для ThyQ Найти все сообщения от ThyQ
  № 8  
Ответить с цитированием
ThyQ

Регистрация: Apr 2008
Адрес: Moldova
Сообщений: 12
Отправить сообщение для ThyQ с помощью ICQ
Цитата:
Осилил.
Большое спасибо, очень поучительно, код просо прекрасен.
Но мой вопрос здесь всё же не решился...точнее задал я его наверное некоректно, за что многократно извиняюсь.
Выспавшись, переформирую вопрос:
Вставляемая видимая фотка должна занимать всю площадь свфки, которая в свою очередь принимает переданные из хтмл значения.
Т.е. если передаю из хтмла параметры: 400х400 то и фотка и свфка принимают размеры 400х400, передаю параметры: 1024х768, то и фотка в свфке и свфка принимают эти размеры. А в моём случае получается что фотка 600х800, но вставляет он её будто уменьшенной ~ 500х665, а остальная область остаётся пустой.
В осиленном Вами примере вы вовсе не передаёте значения размеров растянутой (в случае, если вставляемая фотка меньше от природы) фотки.
Как же эту фотку растянуть от "края до края" самой свфки? Вместить её (фотку) заполнив всё внутреннее пространство?Должен же быть какой-то метод?


Последний раз редактировалось ThyQ; 10.07.2009 в 18:55.
Старый 10.07.2009, 19:01
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Изменяйте размер флешки из JavaScript. Я вкладывал объект FP в таблицу и изменял ее размер. Можно воспользоваться классом ExternalInterface, чтобы передавать странице нужные размеры, после загрузки картинки.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 11.07.2009, 01:31
ThyQ вне форума Посмотреть профиль Отправить личное сообщение для ThyQ Найти все сообщения от ThyQ
  № 10  
Ответить с цитированием
ThyQ

Регистрация: Apr 2008
Адрес: Moldova
Сообщений: 12
Отправить сообщение для ThyQ с помощью ICQ
А без Яваскрипта сделать это никак? Внутри флешки, с помошью AS 2.0
Он ведь беспорядок наводит в самой свфке.


Последний раз редактировалось ThyQ; 11.07.2009 в 18:33.
Создать новую тему Ответ Часовой пояс GMT +4, время: 09:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
stage

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

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


 


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


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