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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

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

Регистрация: Jan 2001
Сообщений: 201
По умолчанию Как из класса обратиться к _global.my_CSS ?

Имею два класса. На входе XML . На выходе: меню и текстовое поле с динамически управлемым явлением на сцене его величества textScrollBara. Все уже работет, за исключением одной штуки которой не хотелось бы пренебречь )

Один класс меню из XML создает и получает данные для textFields также. Второй создает textField и управляет scrollBar: "надо-не надо" появляться ему ( class TextandScroller extends mx.controls.UIScrollBar{...})
однако....

Как из класса вызвать глобальную переменную CSS? (в данноам случае -"my_CSS", создан т получены данные в него просто в _level0 сайта)

Внутри класса создаю текстовое поле и .. ну никак оно не хочет подчиняться стилю! Из класса обращаюсь напрямую к глобальной переменной,

при определении класса ее не упоминаю. Код примерно такой для ясности шагов:
//вызываем из конструктора:

private function create_TextField(_depth_Txt:Number, _xTxt:Number , _yTxt:Number, _widTxt:Number, _heigTxt:Number, colorTxt:Color): Void {
var thisObj=this

m_parent_mc.createTextField("name_of_text"+_depth_Txt,_depth_Txt, _xTxt , _yTxt, _widTxt, _heigTxt, colorTxt);
m_parent_mc["name_of_text"+_depth_Txt].border = true; //это тоже не действует
m_parent_mc["name_of_text"+_depth_Txt].borderColor = 0xCCCC99;//это тоже не действует
my_text=m_parent_mc["name_of_text"+_depth_Txt]
my_text.html = true;
my_text.multiline = true;
my_text.wordWrap = true;
my_text.htmlText = "<p><b>Hermitage</b> a leading place in Internet communications. The speed of internet comunications grows up </p>";
my_text.styleSheet=my_CSS//подставлял и " _global.my_CSS" однако не работает!

добавлю- недавно влез в AS2 c практикой, извиняйте, если где-то просто не догнал, жаргонно выражаясь .

Старый 01.11.2004, 18:37
Gary вне форума Посмотреть профиль Найти все сообщения от Gary
  № 2  
Gary
Banned

Регистрация: Jan 2001
Сообщений: 201
По умолчанию ответ...

просто все заработало и вот
Ответ: Формируя массив из текстов для раздела (-ов если не жаль юзера ) надо указывать носителем текста не, например, my_xml.firstChild.firshChild.nodeValue , a my_xml.firstChild.firshChild (БЕЗ nodeValue) - это даже где-то описано забыл где .
далее...
обращаться надо сначала к объекту "_global.my_CSS" в классе, а затем писать my_text.text="<p>bla-bla</p>" ну или присваивать переменную.
пример подхода:
имеем _global.my_CSS в _level0
имеем для scroll bara и textField:

class TextandScroller extends mx.controls.UIScrollBar{
private var m_parent_mc:MovieClip;
private var _depthTxt:Number
private var _xTxt:Number
private var _yTxt:Number
private var _widTxt:Number
private var _heigTxt:Number
public var my_text:TextField

function TextandScroller(my_mc:MovieClip,depth_txt:Number, xx:Number, yy:Number, width_Txt:Number, height_Txt:Number){
this.m_parent_mc = my_mc;
this._depthTxt=depth_txt
this._xTxt=xx
this._yTxt=yy
this._widTxt=width_Txt
this._heigTxt=height_Txt
create_TextField(_depthTxt, _xTxt , _yTxt, _widTxt, _heigTxt)
}

private function create_TextField(_depth_Txt:Number, _xTxt:Number , _yTxt:Number, _widTxt:Number, _heigTxt:Number, colorTxt:Color): Void {
var thisObj=this

m_parent_mc.createTextField("name_of_text"+_depth_Txt,_depth_Txt, _xTxt , _yTxt, _widTxt, _heigTxt, colorTxt);
m_parent_mc["name_of_text"+_depth_Txt].border = true;//это работает
m_parent_mc["name_of_text"+_depth_Txt].borderColor = 0xCCCC99;//.это работает
my_text=m_parent_mc["name_of_text"+_depth_Txt]
my_text.html = true;
my_text.multiline = true;
my_text.wordWrap = true;
my_text.styleSheet=_global.my_CSS //вот об этом речь
my_text.htmlText = "<p><b>Hermitage</b> WorksHeralashcard was produced in 3 hours and just for fun </p>";

};


public function CheckAndShowScrBr(xx, yy): Void {
var scrB_x = _widTxt+_xTxt;
var scrB_y = _yTxt;

if (my_text.maxscroll>1) {
m_parent_mc.createClassObject(mx.controls.UIScrollBar, "vSB", 210);
// set the target text field
m_parent_mc.vSB.setScrollTarget(my_text);
// size it to match the text field
var my_height = my_text._height+1;
m_parent_mc.vSB.setSize(16, my_height);
// move it next to the text field
scrB_y = my_text._y;
m_parent_mc.vSB.move(scrB_x+2, scrB_y);
//vSB._visible=false

} else {
remove();///////////////////
}
}

private function remove(vSB):Void {
vSB.unloadMovie();
}
//end of class
}

класс для кнопок и загрузки чтобы не згромождаь не стал помещать, но именно там я использую только "firstChild" а не "firstChild.nodeValue"
подход такой
..при разборе XML:

...for (var j = 0; j<shortcut.childNodes.length; j++) { submenu_array.push({sbt_name:shortcut.childNodes[j].attributes['sample_name'], what_toload:shortcut.childNodes[j].attributes['what_load'], expSubtn:shortcut.childNodes[j].attributes['explane'],explNodeValue:shortcut.childNodes[j].firstChild});//вот оно НЕ надо "childNode" писать
}

при загрузке данных по нажатию подкнопки:
......
sub_btn.onRelease = function() {

this.gotoAndStop(3)
thisObj.load_s(this.data.what_toload/*,_root.d*/);
//expl_txt.text=this.data.expSubtn
this._parent._parent.r.my_text.styleSheet=_global.my_CSS//об этом речь
this._parent._parent.r.my_text.htmlText=this.data.explNodeValue//this.data.expSubtn
}.....
вот и все.
Делал на основе XML меню из Flash helpa, дин.скроллбар где-то тоже нарыл, но собрал под себя с добавками честно. Все обычно, просто class смущает поначалу..
А забыл, где взять бубен? Ибо у меня стойкое формируется мнение, что FLash начинает работать ровно после отправки сообщения с вопросом. Как бы издеваясь, вот мол дурак написал, теперь и отвечай сам, чтоб не подставляться. Самое смешное что это реально бывает. Как с этим вопросом. все делалось как описано, однако отправил- и только тогда заработало! извините за словоблуд. но тема вообще для меня актуальна: класс для загрузки, создания меню, класс для текстового поля со скроллбаром исчезающим. По-моему это одна из востребованных штук.

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

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

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


 


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


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