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

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

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

Регистрация: Dec 2007
Сообщений: 5
По умолчанию ColorMatrixFilter срабатывает на всегда

На aspx-странице нeсколько флешек типа (многоточие - пропущенный код, не суть важен):
Код:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="220" height="165" id="hclick_1">
<param name="FlashVars" value="imagepath=http://...4.jpg&amp;noChange=1&amp;..."></param>
<param name="allowScriptAccess" value="sameDomain"></param>
<param name="movie" value="/swf/clickSt.swf"></param>
<param name="quality" value="high"></param>
<param name="bgcolor" value="#ffffff"></param>
<param name="wmode" value="transparent"></param>
<embed src="/swf/clickSt.swf" quality="high" bgcolor="#ffffff" width="220" height="165" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" name="hclick_1" FlashVars="imagepath=http://.../4.jpg&amp;noChange=1&amp;..."></embed>
</object>
Отличие между флешками только в id/name и FlashVars.

В самом swf идет загрузка картинки в мувик и установка ч/б фильтра, если параметр noChange=1. Примерно так:
Код:
if (!imgLoader)	{var imgLoader:MovieClipLoader = new MovieClipLoader();}
var listener:Object = new Object();
listener.onLoadInit = function(target_mc:MovieClip):Void {
		SetMonoColor(target_mc);	
}
imgLoader.addListener(listener);
imgLoader.loadClip(picPath, cImgIn); // picPath == _root.imagepath, cImgIn:MovieClip

function SetMonoColor (mc:MovieClip) {
        // readOnlyFlag == noChange 
	if (readOnlyFlag) {   
    	var matrix:Array = new Array();
	
		matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]); 
		matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]); 
		matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]); 
    	matrix = matrix.concat([0, 0, 0, 1, 0]);

		var filter:BitmapFilter = new ColorMatrixFilter(matrix);
    	mc.filters = new Array(filter);
	}
}
Результат: поведение флеша весьма странное - иногда ч/б фильтр срабатывает, иногда нет (т.е. загруженные картинки остаются цветными). При том на одной странице из трех флешек одна например будет ч/б, а остальные цветными. Выглядит как чисто случайный процесс...
У меня не локалхосте все работает как надо, бага замечена заказчиком.
Передача/получение FlashVars проверено - все ок.
Пытались добавить параметр к url, чтоб избежать кеширования, типа: /swf/clickSt.swf?a=<какой-нибудь GUID> - не помогло.

Помогите пожалуйста! В чем может быть проблема??
У меня больше нет никаких идей...(((

З.Ы. Извините, если пост отправлен не туда

Старый 14.12.2007, 15:42
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Не смотря на путаницу в областях видимости, код должен работать. Проблема скорее всего с передачей параметров (флешварз) попробуйте еще раз проверить.
(В смысле, переменные из флешварз не появляются в руте мгновенно до выполнения кода, попробуйте проверять их наличие watch'ем или в onEnterFrame.)
__________________
Hell is the possibility of sanity

Старый 14.12.2007, 16:17
_squirrel вне форума Посмотреть профиль Отправить личное сообщение для _squirrel Найти все сообщения от _squirrel
  № 3  
Ответить с цитированием
_squirrel

Регистрация: Dec 2007
Сообщений: 5
Нет, переменные точно здесь не при чем. Если убрать проверку на readOnly (см. код ниже), ситуация остается прежней
Код:
function SetMonoColor (mc:MovieClip) {
    	var matrix:Array = new Array();
	
		matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]); 
		matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]); 
		matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]); 
    	matrix = matrix.concat([0, 0, 0, 1, 0]);

		var filter:BitmapFilter = new ColorMatrixFilter(matrix);
    	mc.filters = new Array(filter);
}
В чем же проблема??

Старый 14.12.2007, 16:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
import flash.filters.ColorMatrixFilter;
//
function SetMonoColor(mc:MovieClip) {
	var matrix:Array = new Array();
	matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]);
	matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]);
	matrix = matrix.concat([0.25, 0.25, 0.25, 0.25, 0]);
	matrix = matrix.concat([0, 0, 0, 1, 0]);
	var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix);
	mc.filters = new Array(filter);
	getURL("javascript:alert('"+mc.filters.length+" : "+(mc.filters[0] instanceof ColorMatrixFilter)+"')");
}
Ну, попробуйте так, посмотрите, что скажет... хотя я на 99% уверен, что ошибка не связана с фильтром.
__________________
Hell is the possibility of sanity

Старый 14.12.2007, 16:42
_squirrel вне форума Посмотреть профиль Отправить личное сообщение для _squirrel Найти все сообщения от _squirrel
  № 5  
Ответить с цитированием
_squirrel

Регистрация: Dec 2007
Сообщений: 5
Тест проведен на моей машине, результат весьма занятный:
- если обращаться к странице через http://localhost/..., то все ок, алерт возвращает 1:true
- если обращаться к странице через http://<machine_name>/..., то все плохо и алерт возвращает undefined:false

Это что, что-то секьюрное?? о_О

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Версия плеера какая? Битмапфильтры только с 8-й поддерживаются... хотя, это не объясняет различного поведения в пределах одной страницы =/ вобщем, странное что-то.
ЗЫ. Вот, подумал. Грузится флешка или картинка? Если флешка - может в ней стОит System.security.allowDomain("*"); поставить =/
__________________
Hell is the possibility of sanity


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

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

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


 


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


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