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

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

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

Регистрация: Aug 2010
Сообщений: 4
По умолчанию Помогите с ссылками...

Доброго времени суток, не пинайте пожалуйста за может глупый вопрос...

Давно имел дело с флэшем, но еще макромедиевский когда он был... и вроде все получалось, а сейчас попросили сделать баннер, скачал CS5 (английскую версию), и жесть, программирование одно... с созданием баннера вроде разобрался, вспомнил что-то... но вот ссылку сделать оказалось не простой задачей... пробовал создать кнопку, в ней action вообще не действуют (In ActionScript 3.0, code cannot be placed directly on objects. Please select a frame or use the Code Snippets panel to apply code to the current selection on stage), сделал прозрачный прямоугольник на весь баннер, и на отдельном layer в основной scene его поместил над всем остальным... дальше полазив по форуму пытался несколькими вариантами, сначала:

Код AS3:
var url: String = 'http://www.url.ru';
 
link.addEventListener(MouseEvent.MOUSE_UP, goToURL); 
 
function goToURL(e:MouseEvent)
{ 
    var request:URLRequest = new URLRequest(); 
    request.url = url; 
    navigateToURL(request);
}
И ссылка заработала, но, по ходу изменения баннера нужно чтобы ссылки менялись (в разные места сайта ведут) и вот когда я на томже layer начал создавать дальше уже новые frame и в них прописывать в action тоже, но с другим url'ом, при компиляции (publish) выдает ошибки
Код:
1151: A conflict exists with definition url in namespace internal. и 1021: Duplicate function definition.
, пробовал менять название кнопки непомогает... Потом пробовал вариант:

Код AS1/AS2:
link.onRelease = function(){
getURL("http:/www.url.ru");
}
вобще не работает, при компиляции выдает ошибки
Код:
1119: Access of possibly underfined property onRelease through a reference with static type flash.display:SimpleButton. и 1180: Call to a possibly underfined method getURL.
Чёж так муторно всё стало, элементарную ссылку чтобы сделать надо программированию обучаться?
Помогите пожалуйста, подскажите что в action прописать чтобы щелкая мышкой по кнопке на url переходить, и чтобы при этом можно было несколько раз этот код использовать в одной scene...


Последний раз редактировалось iNils; 06.08.2010 в 11:42.
Старый 05.08.2010, 11:49
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 2  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Баннеры надо делать в AS2. Но если вам сказали сделать на AS3 то сделайте так:
Код AS3:
var url1:String = 'http://www.url.ru';
var url2:String = 'http://www.ur22.ru';
var url3:String = 'http://www.ur333.ru';
 
link.addEventListener(MouseEvent.MOUSE_UP, goToURL); 
 
function goToURL(e:MouseEvent)
{
	if (currentFrame == 14)
	{
		navigateToURL(new URLRequest(url1));
	}
	else if (currentFrame == 20)
	{
		navigateToURL(new URLRequest(url2));
	}
	else if (currentFrame == 2)
	{
		navigateToURL(new URLRequest(url3));
	}
}

Старый 05.08.2010, 11:59
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Код AS3:
//на сцене клипы-кнопки b1,b2,b3
//клик в любой точке флешки
stage.addEventListener(MouseEvent.CLICK,goURL);
function goURL(e:MouseEvent) {
	//смотрим по какому клипу пришелся этот клик
	//и заносим его в переменную
	var target = MovieClip(e.target);
	//и в зависимости от имени, переходим на нужный адрес
	switch (target) {
		case b1 :
			navigateToURL(new URLRequest("http://www.brackenwood.net"));
			trace("b1")
			break;
		case b2 :
			navigateToURL(new URLRequest("http://www.autodesk.com"));
			break;
		case b3 :
			navigateToURL(new URLRequest("http://www.adobe.com"));
			break;
	}
}
Ну да, если там в разных кадрах кнопки, то вариант TWETTI правильнее.


Последний раз редактировалось samana; 05.08.2010 в 12:05. Причина: по причине
Старый 05.08.2010, 12:10
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 4  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Мой пример подойдет если кнопка link находится на всех кадрах. И URL адрес меняется в зависимости от кадра. А если в разных кадрах разные кнопки, то подойдет пример samana.

Старый 05.08.2010, 17:19
BEPH вне форума Посмотреть профиль Отправить личное сообщение для BEPH Найти все сообщения от BEPH
  № 5  
Ответить с цитированием
BEPH

Регистрация: Aug 2010
Сообщений: 4
Спасибо огромное!
Но толи лыжи не едут, толи что то я не так делаю... попробовал оба способа, ошибок при компилировании нету, палец на беннере есть (типа кликабелен), но кликаю и ничего не происходит (не переходит на урл)... В варианте TWETTI я вот думаю может изза того что currentFrame == указывает на определенный фрейм, а я при частоте 24 в секунду просто не попадаю по нужному... может как то нужно прописать множество фреймов (1-30 пробовал, но не так видно)?

И ещё вопрос, чем отличается AS2, в нем проще программирование или сама прога будет с упрощенным интерфейсом? На самом деле мне не принципиально AS3 или AS2, просто начал уже в AS3 делать... до этого в макромедии конечно проще всё было, мышкой кликай, прописывай параметры и всё, а теперь что то одно программирование...

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

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
На AS2 легче и быстрее писать легкие программы. Например баннеры и шапки.
Кинь исходник я посмотрю.

Старый 05.08.2010, 19:29
BEPH вне форума Посмотреть профиль Отправить личное сообщение для BEPH Найти все сообщения от BEPH
  № 7  
Ответить с цитированием
BEPH

Регистрация: Aug 2010
Сообщений: 4
Цитата:
Сообщение от TWETTI Посмотреть сообщение
На AS2 легче и быстрее писать легкие программы. Например баннеры и шапки.
Кинь исходник я посмотрю.
Что то не нашел в ЛС как файлик прицепить...
Ну да собственно и ладно, я понял, действительно ссылка в коде из вашего примера работает только в тех фреймах которые прописаны в currentFrame ==, не подскажите как правильно (синтаксис) туда прописать множество (от x до y)?...

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

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Код AS3:
// Если текущий кадр от 10 до 24 включая 24
if (currentFrame > 10 && currentFrame <=24)
{
 
}

Старый 06.08.2010, 09:58
BEPH вне форума Посмотреть профиль Отправить личное сообщение для BEPH Найти все сообщения от BEPH
  № 9  
Ответить с цитированием
BEPH

Регистрация: Aug 2010
Сообщений: 4
Спасибо огромнейшее!!! всё работает...

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

Регистрация: Feb 2007
Сообщений: 563
Цитата:
Чёж так муторно всё стало, элементарную ссылку чтобы сделать надо программированию обучаться?
Добро пожаловать в as3

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

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

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


 


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


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