Если $height
и $width
относятся только к методу embedSWF()
(и я подозреваю, что это не похоже на то, что измерения связаны с Media
экземпляром , но embedSWF()
вызов метода ), вы должны добавить их вместе с аргументом $swf
:
public function embedSWF ($swf, $width = 0, $height = 0) {
echo "<OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0' ID=objects WIDTH=460 HEIGHT=80><PARAM NAME=movie VALUE=".$swf." '><EMBED src=".$swf." ' WIDTH=".$width." HEIGHT=".$height." TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'></OBJECT>";
}
Вызывается так:
<?php
$media = new Media();
$swf = "test.swf";
$media-> embedSWF($swf, 480, 360);
?>
EDIT
В общем случае вы должны добавлять атрибуты в класс, когда они выражают или относятся к состоянию текущего экземпляра (объекта) . Например.,
public class Media {
private $swf;
private $height;
private $width;
public __construct($swf, $height, $width) {
$this->swf = $swf;
$this->height = $height;
$this->width = $width;
}
public getEmbedCode() {
// ...
}
public getIframeCode() {
// ...
}
}
В приведенном выше примере экземпляр Media
имеет состояние (SWF с измерением), который может выводиться в различных форматах. То есть метод преобразует внутреннее состояние в выходной.
В качестве альтернативы, у нас есть «подобный утилите» класс без состояния. Вместо этого он содержит набор методов, которые работают исключительно с переданными данными (параметрами). Например.,
public class Media {
public embedSWF($swf, $height, $width) {
// ...
}
public embedYT($code) {
// ...
}
}