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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.01.2011, 19:48
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 11  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
А почему после второго else нет var?
Может в нем и была проблема?
Все локальные переменные вообще при компиляции попадают в самое начало метода/функции/конструктора. Дело не в этом.
Цитата:
разве && = "хотя бы одного",
BaseController инстанциируется при невыполнении условия a && b. То есть !(a && b). Это !a || !b.
Цитата:
а во-втором вообще в любом случае, только объявлен _baseController как-то странно - после выполнения if (refferer), хотя потом используется даже если этого не произошло
См. 1 часть поста. Или я не понял о чем Вы.

Старый 29.01.2011, 19:51
  № 12  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
не, Psycho Tiger, извини, это мне просто показалось, что в первом случае _baseController создается при выполнении проверки. Все мои сообщения можно считать мусором

Старый 29.01.2011, 19:52
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 13  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
@Zebestov, правильно referrer. Опечатка в локальной переменной. Но спасибо что заметил =)

@Xero201, в любом случае спасибо за попытки помочь =)

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

Регистрация: Mar 2007
Сообщений: 545
... удалено


Последний раз редактировалось andrew911; 29.01.2011 в 20:03.
Старый 29.01.2011, 20:06
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 15  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Может быть referrer был null'ом?
Код AS3:
var a:String = null;
 
if(a.indexOf("a") >= 0 && a)//TypeError: Error #1009: Cannot access a property or method of a null object reference.
{
	trace(1);
}
else
{
	trace(2);
}
ps хотя да, если писать if(a && a.indexOf("a") >=0) то все ок.


Последний раз редактировалось Bgg; 29.01.2011 в 20:08.
Старый 29.01.2011, 20:15
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 16  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
Цитата:
Сообщение от Bgg Посмотреть сообщение
Может быть referrer был null'ом?
Код AS3:
var a:String = null;
 
if(a.indexOf("a") >= 0 && a)//TypeError: Error #1009: Cannot access a property or method of a null object reference.
{
	trace(1);
}
else
{
	trace(2);
}
ps хотя да, если писать if(a && a.indexOf("a") >=0) то все ок.

Тоже только что об этом подумал, только как тогда выполнилась бы проверка if(a)

Старый 29.01.2011, 21:46
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 17  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Тигер, а код, который во втором примере, он в реале так и написан без скобок после
Код AS3:
if (refferer)
?

Старый 29.01.2011, 21:46
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 18  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Никогда не пишу
Код AS3:
if(a.indexOf("a") >= 0 && a)
Всегда два вложенных ифа, чтобы потом не разбераться в тонкостях версий флешплеера =)

А во втором варианте дважды повторенная строчка прям глаза режет.
Уж лучше еще один флаг завести, чем код в ифах копипастить

Старый 29.01.2011, 22:03
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 19  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Сообщение от i.o. Посмотреть сообщение
Тигер, а код, который во втором примере, он в реале так и написан без скобок после
Код AS3:
if (refferer)
?
Ага. Так можно, это одна "команда" после if`а, а компилятор все пробелы-ентеры убирает.
Цитата:
Всегда два вложенных ифа, чтобы потом не разбераться в тонкостях версий флешплеера =)
Сарказм или сталкивался с этим?

Второй пример не я писал. Первый - мой )

Старый 29.01.2011, 22:19
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 20  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
другими словами:
Код AS3:
trace();
trace( "test1() -> '" + test1( null ) + "'" );
trace();
trace( "test1() -> '" + test1( 'oh my...' ) + "'" );
trace();
trace( "test1() -> '" + test1( 'inline function' ) + "'" );
 
trace();
 
trace();
trace( "test2() -> '" + test2( null ) + "'" );
trace();
trace( "test2() -> '" + test2( 'oh my...' ) + "'" );
trace();
trace( "test2() -> '" + test2( 'inline function' ) + "'" );
 
 
function test1( ref:String ):String
{
	var refferer:String = ref;
	if (refferer && refferer.indexOf("inline") >= 0) {
		trace( "Screen refferer" );
	}
	else {
		trace( "BaseController()" );
	}
 
	return ref;
}
 
function test2( ref:String ):String
{
	var refferer:String = ref;
	if (refferer) 
		if (refferer.indexOf("inline") >= 0) 
		{
			trace( "Screen refferer" );
		}
		else 
		{
			trace( "BaseController() -> 0" );
		}
	else
		trace( "BaseController() -> 1" );
 
	return ref;
}
трэйс:
Цитата:

BaseController()
test1() -> 'null'

BaseController()
test1() -> 'oh my...'

Screen refferer
test1() -> 'inline function'


BaseController() -> 1
test2() -> 'null'

BaseController() -> 0
test2() -> 'oh my...'

Screen refferer
test2() -> 'inline function'
Ясно видно, что работает одинаково.
А то прям какое-то гадание на кофейной гуще


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

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

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


 


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


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