PDA

Просмотр полной версии : Не является функцией


vlbuto
09.01.2014, 20:03
Здравствуйте. Работаю в IDE adobe flash.

Есть fla файл с графикой.

Главный файл

package
{
import flash.display.MovieClip;
import flash.events.Event;
import srcPre.BtnPre;

public class Main extends MovieClip
{
private var btnPre:BtnPre = new BtnPre();

public function Main()
{
if(stage)
{
init();
}
else
{
addEventListener(Event.ADDED_TO_STAGE,init);
}
}
public function init(e:Event = null):void
{
trace("инициализация");
btnPre.sizeBtnPre(100,30);
addChildAt(btnPre,0);
}
}
}

Класс с кнопкой, сама графика кнопки находится в fla.

package srcPre
{

import flash.display.SimpleButton;


public class BtnPre extends SimpleButton
{

public function BtnPre()
{
// constructor code
this.addEventListener(MouseEvent.CLICK, fclick);
}
public function fclick(e:MouseEvent):void
{
trace("Кнопка нажата")
}
public function sizeBtnPre(sizeBtnWidth,sizeBtnHeight)
{
this.width = sizeBtnWidth;
this.height = sizeBtnHeight;
}
}

}

Когда я в основном классе посылаю в качестве параметров размеры кнопки
По идее в методе sizeBtnPre, данные параметры должны фиксировать размеры.

Выскакивает ошибка в окне вывода данных.

TypeError: Error #1006: sizeBtnPre не является функцией.
at Main/init()
at Main()

Помогите решить проблему пожалуйста.

Isfet
09.01.2014, 20:25
у меня когда-то была такая фигня, и помоему была проблема с неправильным указание документ класса, причем при создании нового проекта она исчезала.

Rivexe
09.01.2014, 20:34
Прикрепите исходник, на первый взгляд не видно ошибок.

vlbuto
09.01.2014, 21:10
Вложение

caseyryan
09.01.2014, 21:29
Это потому что у вас есть в библиотеке файл с экспортом в BtnPre
поэтому вызов метода программа пытается провести у него, а у SimpleButton этого метода нет.
Надо сделать так:
http://prntscr.com/2hv3wl

ну и в файл BtnPre добавить импорт мышиного события

package srcPre
{

import flash.display.SimpleButton;
import flash.events.MouseEvent;


public class BtnPre extends SimpleButton
{

public function BtnPre()
{
// constructor code
this.addEventListener(MouseEvent.CLICK, fclick);
}
public function fclick(e:MouseEvent):void
{
trace("Кнопка нажата")
}
public function sizeBtnPre(sizeBtnWidth:Number,sizeBtnHeight:Number):void // плюс не надо забывать про типизацию
{
this.width = sizeBtnWidth;
this.height = sizeBtnHeight;
}
}

}