Просмотр полной версии : к attachMovie не могу приклеить событие
Staser007
15.05.2009, 11:55
Привет! Создаю класс, все работает нормально, экземпляры создаются и работают
pSelectGroup.prototype = new MovieClip();
function pSelectGroup() {
this.Name="";
}
Object.registerClass("CSelectGroup", pSelectGroup);
хочу к нему прицепить надпись
pSelectGroup.prototype.SetVendors = function(val){
this.attachMovie("mcVendorCaption","vendorCaption",0);
this["vendorCaption"].mcvCaption.text = val;
опять все отлично, надписи на экзеплярах появляются, КАК К ЭТИМ НАДПИСЯМ ПРИЦЕПИТЬ СОБЫТИЕ!!!
pSelectGroup.prototype.SetVendors = function(val){
this.attachMovie("mcVendorCaption","vendorCaption",0);
this["vendorCaption"].mcvCaption.text = val;
this["vendorCaption"].onPress = function() {
trace("asdf");
}
}
этот вариант нивкакую неработает!!!
#initclip
function pSelectGroup () {
this.Name = "";
this.SetVendors ("ffffff")
}
pSelectGroup.prototype = new MovieClip ();
Object.registerClass ("CSelectGroup", pSelectGroup);
pSelectGroup.prototype.SetVendors = function (val) {
var mc = this.attachMovie ("mcVendorCaption", "vendorCaption", 0);
mc.mcvCaption.text = val;
mc.onPress = this.press;
};
pSelectGroup.prototype.press = function () {
trace ("asdf");
};
#endinitclip
Staser007
15.05.2009, 12:27
кажется понял, попробую
Добавлено через 20 минут
Неработает, что такое this.SetVendors ("ffffff")
Давлю на мышь сильнее, все-равно неработает
Была подобная проблема... Попробуйте так:
#initclip
function pSelectGroup () {
this.Name = "";
this.SetVendors ("ffffff")
}
pSelectGroup.prototype = new MovieClip ();
Object.registerClass ("CSelectGroup", pSelectGroup);
pSelectGroup.prototype.SetVendors = function (val) {
var mc = this.attachMovie ("mcVendorCaption", "vendorCaption", 0);
mc.mcvCaption.text = val;
this.onEnterFrame = onEnterFrameHendler;
};
pSelectGroup.prototype.press = function () {
trace ("asdf");
};
pSelectGroup.prototype.onEnterFrameHendler= function () {
delete this.onEnterFrame;
this.vendorCaption.onPress = this.press;
};
#endinitclip
onEnterFrame тут вообще не в тему. Ошибка 100% косвенная.
Staser007
15.05.2009, 13:55
Исходник привязан к сайту, загрузка с сайта идет
могу прописать абсолютные пути.
Добавлено через 2 минуты
тут накосячено уже немнго, я пробую варианты
должен быть класс-окно с массивом vendoro в
кликая на vendora хочу событие
function pSelectGroup() {
this._alpha = 0;
this._xscale = 0;
this._yscale = 0;
// this.process = 0;
this.Caption="";
this.process="";
this.SetVendors ("ffffff");
}
pSelectGroup.prototype = new MovieClip();
Object.registerClass("CSelectGroup", pSelectGroup);
pSelectGroup.prototype.SetVendors = function(val){
v = val.split(",");
j = 0;
// for(j=0;j<v.length;j++){
// this.attachMovie("mcVendorCaption","vendorCaption"+j,j,{_x:10,_y:9*j+20});
var mc = this.attachMovie("mcVendorCaption","vendorCaption"+j,1001,{_x:10,_y:9*j+20});
mc = this["vendorCaption"+j].mcvCaption.text = v[j];
mc.onRollOver = function(){
trace ("asdf");
}
// }
}
pSelectGroup.prototype.onEnterFrame = function(){
if(this.process=="show"){
if(this._alpha<100){
this._alpha+=20;this._xscale+=20;this._yscale+=20;
}else{
this.process="";
_root.EndShow();
}
}
}
pSelectGroup.prototype.onPress = function(){
_root["Grp"+_root.activeClip].swapDepths(_root.cats+_root.activeClip);
_root.activeClip = this.id;
this.swapDepths(1000);
}
pSelectGroup.prototype.SetID = function(id){
this.id = id;
}
pSelectGroup.prototype.SetCaption = function(str){
this.Caption = str;
this.bCaption.text = str;
}
Добавлено через 15 минут
Я тоже думаю ошибка в том что я гдето чтото не там написал, сам я в AS почти новичек, но программирую уже 15 лет, начал писать на AS во флеше и постоянно удивляюсь как в нем все сложно, наверно придется все-равно платить флешерам.
здесь http://www.elitasvet.ru/index_page_80.html приклике на производителя нужно вставить отклик
>>постоянно удивляюсь как в нем все сложно
может ты сам себе жизнь усложняешь, в чем нужда прикручивать класс через #initclip/registerClass ?
флеш уже лет пять как поддреживает нормальную запись
твой класс, например, может и так выглядеть:
class CSelectGroup extends MovieClip
{
var Name = "";
function SetVendors(val)
{
var mc = this.attachMovie ("mcVendorCaption", "vendorCaption", 0);
mc.mcvCaption.text = val;
mc.onPress = function()
{
trace ("asdf");
}
}
}
Staser007
15.05.2009, 15:42
Значит я ошибся учебником. Спасибо выкину его на свалку. В этом коде все понятно еще бы работал!!! :)
Напиши еще заодно как экземпляр класса создать?
Добавлено через 11 минут
class CSelectGroup extends MovieClip - Syntax error.
код в файле CSelectGroup.as
в библиотеке символ MovieClip с установками id= "test" и Class="CSelectGroup"
код в кадре
var test:CSelectGroup=CSelectGroup(this.attachMovie("test","clip",0));
test.SetVendors("O_O");
руками положенный на сцену символ тоже будет экземпляром CSelectGroup
вариант 2: в библиотеке не нужно ничего (mcVendorCaption нужен, конечно)
код создания экземпляра:
var test:CSelectGroup=this.createEmptyMovieClip("clip",0);
test.__proto__=CSelectGroup.prototype;
test.SetVendors("O_O");
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.