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

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

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

Регистрация: Dec 2010
Сообщений: 129
Post Фукнция не принимает переменную.

Доброе...
Подскажите пожалуйста.
Есть функция, которая на сайте без перегрузки страницы обновляет часть контента. Вот она:
Код AS3:
function onClick(event:MouseEvent):void{
	switch (event.target.name) 
	{
		case 'mc':
			inJS('one.php');
		break;
		case 'mc1':
			inJS('two.php');
		break;
		case 'mc2':
			inJS('three.php');
		break;
		case 'mc3':
			inJS('four.php');
		break;
	}
 
 
}
 
function inJS(path:String):void
{
	if (ExternalInterface.available)
	{
		ExternalInterface.call('reload_f' , path);
	}
}
Все работает, но сейчас нужно поставить вместо конкретных значений переменную.

Вот так:

Код AS3:
function ClickLink(event:MouseEvent):void{
 
	for (var m:int=0; m<5; m++){
		if (m==i){
			trace("При i  равным: "+i+", ссылка по счету: "+m);
			trace("Ссылка равна: "+link[m]);
			var str:String=link[m];
			trace(str);
			inJS(str);
		}
	}
}
трайс все выдает как и есть, берется значение из массива и в строку его перевожу.
Когда проверяю на сайте, то первый вариант, где inJS('four.php'); - работает, а inJS(str); - в нужном месте засовывавет всю страницу полностью и не обновленную, как будто не воспринял текстовую переменную.
Меняю inJS(str); на inJS('one.php'); все отлично работает...
Что может быть?
На всякий случай рабочий код на JS:
Код:
function reload_f(url_id)
    {   
            $.ajax({
                url: url_id,
                type: "POST",
                context: document.body,
                dataType: "html"
               
            }).done(function(data) {

                    $("#maintext").html(data);
                   
                });

    };
Спасибо.
__________________
--
Какой бы путь ты не выбрал, лягушка прыгнет врятли

Старый 16.08.2013, 14:48
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 2  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Видимо не проходит условие
Код AS3:
if (m==i){
__________________
FlashPress.ru | Blog

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

Регистрация: Dec 2010
Сообщений: 129
проходит, все работает, говорю, когда заменяю переменную на текст, все отлично работает, а когда стоит переменная, то сайт клонируется)
и трейсы проходят....

Добавлено через 1 час 14 минут
Вписывая ExternalInterface.call("reload_f" , "one.php"); в
Код AS3:
function ClickLink(event:MouseEvent):void{
 
	for (var m:int=0; m<5; m++){
		if (m==i){
			trace("При i  равным: "+i+", ссылка по счету: "+m);
			trace("Ссылка равна: "+link[m]);
			var str:String=link[m];
			trace(str);
			ExternalInterface.call("reload_f" , "one.php");
		}
	}
}
получаю нужный результат, стоить поменять ExternalInterface.call("reload_f" , str); - все, не работает в браузере. Хотя повторюсь, трейсы все выводят.. может не правильно перевожу из массива?
Данные изначально беру из xml, может сразу их стрингами сделать?)
__________________
--
Какой бы путь ты не выбрал, лягушка прыгнет врятли


Последний раз редактировалось firefedot; 16.08.2013 в 16:06.
Старый 16.08.2013, 16:37
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 4  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
У вас str типа String, т.е. оно полюбому кастует путь к строке и в функцию всё удачно приходит.
Может вы что-то недоглядели - либо i не так задаётся, либо link[m] выдаёт не то, либо банально опечатка при заведении массива link итд итп.
__________________
Oomph

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

Регистрация: Dec 2010
Сообщений: 129
проверил все ... все нормально ... трейсы все кажут как надо ... даже
Код AS3:
trace(String(link[m]) is String); // true
 
			inJS(String(link[m]));//  на странице все равно хрень
и даже инспектор в браузере показывает. что обращение к не существующему. хотя все есть ... пробовал даже полный путь прописывать... без толку)
__________________
--
Какой бы путь ты не выбрал, лягушка прыгнет врятли

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

Регистрация: Jan 2011
Сообщений: 200
ну так раз инспектор показывает, значит копайте оттуда
или приводите ваш код полностью, где i, где массив link?

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

Регистрация: Dec 2010
Сообщений: 129
функция где линк берет данные из массива, который берет данные из xml

Код AS3:
var link;
function onComplete(event:Event):void { 
MyXML = XML(loader.data);
 trace(MyXML);
var u:int;
u=MyXML.imgs.img.length();
trace(u);
 
var arLink:Array = new Array(u);
for (var b:int=0; b<u; b++) {	
	arLink[b]=MyXML.links.linkt[b];	
}
 
link=arLink;
trace("LINK "+link[0]);
 
}
Дальше идет запуск таймера, где просто i увеличивается на единицу.
Все в принципе.

Добавлено через 3 часа 24 минуты
Пока сделал через одно место...
Код AS3:
sse="news"+i+".php";
inJS(sse);
то есть обязал создавать только такого типа файлы новостей. а не произвольного. не удобно ... но так работает.
А по проблеме - смотрел везде, даже в самом начале определения массива принулдительно все в стринг гнал. все равно на выходе нульОбъект.
__________________
--
Какой бы путь ты не выбрал, лягушка прыгнет врятли

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

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

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


 


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


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