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

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

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

Регистрация: Jan 2012
Сообщений: 8
Добрый день!

Я не являюсь опытным пользователем AS3, но пытаюсь самостоятельно сделать резиновый баннер. Потому заранее извиняюсь если задаю слишком простой вопрос. Но перегуглил всё. Варианта решения проблемы не нашёл.
Прошу помочь разрешить такую задачу:
имеется резиновый баннер на нём расположена общая информация и кнопки.
Как указать правому объекту расположение по правому краю баннера?
И можно ли вообще задавать объектам место положения?

Заранее благодарен за любую помощь!

Для "растяжки" баннера использовал вот этот код:

Код AS3:
import flash.display.StageAlign;
import flash.display.StageScaleMode;
 
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "BC";
 
//stage.addEventListener(Event.ACTIVATE, onRes);
stage.addEventListener(Event.RESIZE, onRes);
this.loaderInfo.addEventListener(Event.INIT, onRes);
 
 
function onRes(e:Event):void
{
 trace(e.type);
 this.loaderInfo.removeEventListener(Event.INIT, onRes); 
 
}
Вложения
Тип файла: rar banner.rar (110.2 Кб, 60 просмотров)


Последний раз редактировалось udaaff; 05.02.2012 в 12:51.
Старый 08.01.2012, 19:39
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 2  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
Код AS3:
btn.x = stage.stageWidth - btn.width
в обработчике ресайза
__________________
low +

Старый 12.01.2012, 14:56
VA3 вне форума Посмотреть профиль Отправить личное сообщение для VA3 Найти все сообщения от VA3
  № 3  
Ответить с цитированием
VA3

Регистрация: Jan 2012
Сообщений: 8
Спасибо огромное, Jewelz !!!!

В воскресенье не дождался сразу ответа и уже не надеялся.
Хотя сразу я не въезжаю как применить данную функцию (или как правильно называется данная строка).
Но сейчас буду разбираться!!

Ещё раз спасибо большое за отзыв!!

Времени и смысла для меня изучать AS3 нету. Но ОЧЕНЬ хочется довести до ума этот баннер самостоятельно.
Или правильно сказать, - с помощью профессионалов))

Добавлено через 28 часов 44 минуты
И снова здравствуйте всем!

По результатам суточных изысканий проблему так и не разрешил.
В конечном итоге пришёл вот к этому коду:

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "BC";

stage.addEventListener(Event.RESIZE, clResize);
function clResize(e:Event):void
{
cl.x = stage.stageWidth - cl.width
}

По изложенной где только возможно информации по данной проблеме говорится что данный код единственно верный.
Догадываюсь, что проблема состоит в какой-то мелкой детали, которую я в силу своей неопытности не могу определить.

Прошу всех знающих указать перстнем на эту закавыку.


Заранее признателен всем откликнувшимся!

Старый 13.01.2012, 19:42
VA3 вне форума Посмотреть профиль Отправить личное сообщение для VA3 Найти все сообщения от VA3
  № 4  
Ответить с цитированием
VA3

Регистрация: Jan 2012
Сообщений: 8
Прилагаю к сообщению проблемный баннер.
Вложения
Тип файла: rar banner.rar (111.6 Кб, 53 просмотров)

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

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
я честно говоря не понял в чем у вас проблема, в приложенном вами баннере правая кнопка "Закрыть" как приклееная двигается вместе с правым краем баннера. Или вам еще что то нужно?

Старый 13.01.2012, 23:33
VA3 вне форума Посмотреть профиль Отправить личное сообщение для VA3 Найти все сообщения от VA3
  № 6  
Ответить с цитированием
VA3

Регистрация: Jan 2012
Сообщений: 8
Да???

Вот только получив Ваше сообщение - с первым словом - прошибла мысль "а что если попробовать открыть не оперой а другим бразером"...
Немедля иду проверять!)

Добавлено через 5 минут
перепробовал всем кроме лисы...

это полтергейст или я с этим баннером растерял все крохи мозгов...

перепробовал оперу, хром, эксплорер... результат ноль..


буду сидеть думать...


спасибо Вам огромное за помощь и потраченное время!!!

по-крайней мере мне теперь точно известно что с кодом всё отлично.

Добавлено через 19 минут
Провёл следующие манипуляции:
попробовал открыть баннер на ноуте; результат - в Explorer все элементы расположились как требовалось, в Opera же результат тот же.
Исходя из этого прихожу к выводу, что используемый код
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "BC";
 
 
stage.addEventListener(Event.RESIZE, clResize);
 
function clResize(e:Event):void
{
    cl.x = stage.stageWidth - cl.width
}
является верным.
Но при этом подозреваю о возможном не соответствии определённых версий или самих браузеров к этому коду.

Если вдруг у кого-то на это есть хоть какое-то пояснение, прошу сообщить!


Ещё раз приношу свою благодарность Jewelz и PainKiller за уделённое моей проблеме время!!!

Старый 14.01.2012, 01:45
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 7  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
У вас кнопка "закрыть" неправильно двигается ? Хотите чтобы она была всегда справа ? Тогда вы неправильно считаете координаты для неё, щас секунду ...

Добавлено через 13 минут
Вот так у вас будет справа:
Код AS3:
cl.x = (stage.stageWidth - 1024)/2+1024-cl.width;
Почему так:
[IMG]http://s1.********************/uploads/images/2012/01/f94adb3793bc1249673d417f1e82dbcc.png[/IMG]

Добавлено через 17 минут
Версия браузера очень и очень редко когда может повлиять на работу флеша. Флеш выполняеться в своей отдельной среде, и на различия браузеров ему параллельно. Главное чтоб сам флеш плеер обновленный был.
__________________
Дети не должны знать о своих родителях

Старый 14.01.2012, 02:13
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 8  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
вот версия файла
Вложения
Тип файла: rar banner.rar (121.0 Кб, 48 просмотров)


Последний раз редактировалось PainKiller; 14.01.2012 в 02:44.
Старый 14.01.2012, 02:23
VA3 вне форума Посмотреть профиль Отправить личное сообщение для VA3 Найти все сообщения от VA3
  № 9  
Ответить с цитированием
VA3

Регистрация: Jan 2012
Сообщений: 8
Боюсь что скоро мне нагрубят, но при всей примитивности моей проблемы я не могу разрешить.
И правда задавался вопросом как же это код раскидывает функцию. Предполагал (а с с учётом моего уровня знаний оставалось лишь предполагать), что измерение экрана происходит автоматически, и уже после этого функция размещает кнопку по правому краю.

Но оказывается всё не так просто и помимо хитрых программ надо было ещё и в школе учиться))


А теперь по сути:

Уважаемый, Tails,
после Вашего разъяснения я выполнил смену строки
Код AS3:
cl.x = stage.stageWidth - cl.width
на
Код AS3:
cl.x = (stage.stageWidth - 1024)/2+1024-cl.width;
В результате при открытии баннера в бразере всё осталось по-прежнему.
Из своего малого опыта понял, что в случае ошибки в коде Adobe Flash Professional CS5 автоматически указывает на них при компиляции.
Сейчас же при нынешнем коде таких ошибок он не выдаёт. Что позволяет мне думать, что ошибок и нет.

Но тогда я не имею даже представления, что мне гуглить и где искать решение для своей проблемы.
Остаётся только занимать вас.

Привожу окончательный код:
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "BC";
 
stage.addEventListener(Event.RESIZE, clResize);
function clResize(e:Event):void
{
    cl.x = (stage.stageWidth - 1024)/2+1024-cl.width;
}

Если ещё не окончательно достал своей проблемой века прошу указать на корень зла.


Спасибо!!!

Старый 14.01.2012, 02:29
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 10  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Вот это:
Код AS3:
function clResize(e:Event):void
{
    cl.x = (stage.stageWidth - 1024)/2+1024-cl.width;
}
Работает только тогда, когда окно флеш плеера растягивают мышкой, поэтому никаких изменений в начале нет. Чтобы выполнить позиционирование кнопки в начале, необходимо вынести её код и за пределы функций, например так:
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "BC";
cl.x = (stage.stageWidth - 1024)/2+1024-cl.width;
 
stage.addEventListener(Event.RESIZE, clResize);
function clResize(e:Event):void
{
    cl.x = (stage.stageWidth - 1024)/2+1024-cl.width;
}
__________________
Дети не должны знать о своих родителях

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

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

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


 


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


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