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

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

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

Регистрация: Mar 2008
Сообщений: 30
По умолчанию частичное изменение цвета клипа(программно)

Я программно меняю цвет подгружаеваемого flash клипа, цвет ессно меняется у всего клипа. Можно указать где именно надо указать цвет, а не по во всём клипе?Ведь работать с подругажаевыми mc'шками клипа нельзя из грузищего скрипта, у меня эффекта небыло никакого

так гружу swf и меняю цвет, в нем все mc'шки аттачутся, а не присуствую в клипе сразу
Код:
  _root.createEmptyMovieClip("empty_mc_1", getNextHighestDepth()); 
    _root.empty_mc_1.loadMovie("clip.swf"); 
    _root.empty_mc_1._x = 100;
    _root.empty_mc_1._y = 100;
     var color_1:Color = new Color(empty_mc_1");
     color = Math.round( Math.random()*0xFFFFFF );
     color_1.setRGB(color);
прощу помощи, если не затруднит

Старый 24.04.2008, 03:27
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 2  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
Кто сказал, что нельзя? Можно, и даже нужно!!!
НО... сначала нужно дождаться загрузки клипа. Проще всего это сделать через MovieClipLoader (стандартный пример):
Код:
var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("YourImage.swf", container);

onLoadInit = function(mc:MovieClip) {
    //Клип загружен, выполняем действия
}
а только после этого обращаться к клипам.

Старый 24.04.2008, 08:45
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 3  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
вообщето LoadInit говорит о загрузке первого кадра

Старый 24.04.2008, 13:53
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 4  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
Цитата:
вообщето LoadInit говорит о загрузке первого кадра
Вообще то, если верить help'е, событие происходит, когда код в первом кадре был запущен.
Оригинал: Invoked when the actions on the first frame of the loaded clip have been executed.

Старый 24.04.2008, 14:14
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 5  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Да, ты прав, а я был молод и глуп

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

Регистрация: Mar 2008
Сообщений: 30
По такому событию не подходит, вариант только прелоадер, но тут ваще непонимаю как работает компиллятор, вот нерабочий код, что нетак в нем?
Код:
this.but_bit_1.video_m.onRelease = function(){
   F_preloader = false;
   var container:MovieClip = createEmptyMovieClip("container",getNextHighestDepth());
    var mcLoader:MovieClipLoader = new MovieClipLoader();
    mcLoader.addListener(this);
    mcLoader.loadClip("videog/videog.swf", container);
    _root.container._x = 100;
    _root.container._y = 100;
     F_preloader(container);
      if (F_preloader) {
         trace("test");
         var mycolor:Color = new Color(_root.container.main_p.e_main);
         rcolor = Math.round( Math.random()*0xFFFFFF );
         mycolor.setRGB(rcolor); 
	 }
}
Код:
F_preloader = function (mc){
_root.createEmptyMovieClip("detect_mc", 100);
detect_mc.onEnterFrame = function() {
var gbl = _root[mc].getBytesLoaded();
var gbt = _root[mc].getBytesTotal();
if (gbl == gbt && gbl>30) {
ttt.text = "100%";
removeMovieClip(this);
return true;
} else {
ttt.text = int(gbl/gbt*100)+"%";
return false;
}
};
};

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

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Код:
import flash.geom.Transform;
import flash.geom.ColorTransform;

var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);

var container:MovieClip = this.createEmptyMovieClip('container', this.getNextHighestDepth());
container._x = 100;
container._y = 100;

var trans:Transform = new Transform(container);
var blueColorTransform:ColorTransform = new ColorTransform(0, 1, 1, 1, 0, 0, 255, 0);

btn.onRelease = function(){
	loader.loadClip('videog/videog.swf', container);
}

onLoadProgress = function(mc:MovieClip, l:Number, t:Number){
	if(t > 0){
		txt.text = Math.round(l / t * 100) + '%';
	}
}

onLoadInit = function(mc:MovieClip){
	trans.colorTransform = blueColorTransform;
}

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

Регистрация: Mar 2008
Сообщений: 30
MrPoma спасибо что не оставил без ответа, но этот код мне говорит о том же что и qazwsx не нахожу разницу, мало опыта у меня c AS


Последний раз редактировалось 8bit; 27.04.2008 в 17:30.
Старый 26.04.2008, 13:00
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
А что в этом коде страшного?
Код:
//загружаем классы для преобразования и работы с цветом
import flash.geom.Transform;
import flash.geom.ColorTransform;

//создаем лоадер
var loader:MovieClipLoader = new MovieClipLoader();
//добавляем слушателя
loader.addListener(this);

//контейнер, куда будем грузить клип
var container:MovieClip = this.createEmptyMovieClip('container', this.getNextHighestDepth());
//подбираем местечко
container._x = 100;
container._y = 100;

//создаем новую трансформацию для container
var trans:Transform = new Transform(container);
//Матрица преобразования цвета
var blueColorTransform:ColorTransform = new ColorTransform(0, 1, 1, 1, 0, 0, 255, 0);


//тыкаем на кнопке - загружаем клип
btn.onRelease = function(){
	loader.loadClip('videog/videog.swf', container);
}
//когда грузим...
onLoadProgress = function(mc:MovieClip, l:Number, t:Number){
	if(t > 0){ //показываем проценты
		txt.text = Math.round(l / t * 100) + '%';
	}
}
//когда загрузили
onLoadInit = function(mc:MovieClip){
//в трансформации меняем свойство colorTransform на заранее созданное (см. матрица преобразования цвета)
	trans.colorTransform = blueColorTransform;
}

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

Регистрация: Mar 2008
Сообщений: 30
спасибо всем, разобрался

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

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

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


 


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


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