function buildContent($tagCode, $opts = array()) { $writer = new IO_Bit(); $writer->putUIBit($this->Reserved); $writer->putUIBit($this->UseDirectBlit); $writer->putUIBit($this->UseGPU); $writer->putUIBit($this->HasMetadata); $writer->putUIBit($this->ActionScript3); $writer->putUIBits($this->Reserved2, 2); $writer->putUIBit($this->UseNetwork); $writer->putUIBits($this->Reserved3, 24); return $writer->output(); }
function buildContent($tagCode, $opts = array()) { $writer = new IO_Bit(); $writer->putUI16LE($this->SoundId); // ---- $writer->putUIBits($this->SoundFormat, 4); $writer->putUIBits($this->SoundRate, 2); $writer->putUIBit($this->SoundSize); // --- $writer->putUI32LE($this->SoundSampleCount); $writer->putData($this->SoundData); return $writer->output(); }
function buildContent($tagCode, $opts = array()) { $writer = new IO_Bit(); $writer->putUI16LE($this->_buttonId); $opts['tagCode'] = $tagCode; if ($tagCode == 34) { // DefineButton2 $writer->putUIBits($this->_reservedFlags, 7); $writer->putUIBit($this->_trackAsMenu); list($offset_actionOffset, $dummy) = $writer->getOffset(); $writer->putUI16LE(0); // dummy; } foreach ($this->_characters as $character) { IO_SWF_Type_BUTTONRECORD::build($writer, $character, $opts); } $writer->putUI8(0); // terminater of button record if ($tagCode == 34) { // DefineButton2 $actions = array(); if (is_null($this->_actions) === false) { list($offset_buttonCondition, $dummy) = $writer->getOffset(); $writer->setUI16LE($offset_buttonCondition - $offset_actionOffset, $offset_actionOffset); foreach ($this->_actions as $idx => $action) { if (isset($this->_actions[$idx + 1]) === false) { $opts['lastAction'] = true; } else { $opts['lastAction'] = false; } IO_SWF_Type_BUTTONCONDACTION::build($writer, $action, $opts); } } } else { foreach ($this->_actions as $action) { IO_SWF_Type_Action::build($writer, $action); } $writer->putUI8(0); // terminator of actions } return $writer->output(); }
<?php require_once 'IO/Bit.php'; if ($argc < 2) { echo "Usage: php iobit_put.php <width>:<value> [<width2>:<value2> [...]]" . PHP_EOL; echo "ex) php iobit_put.php 1:0 2:1 3:7 4:0 5:31 6:46 7:6 8:135" . PHP_EOL; exit(1); } $iobit = new IO_Bit(); foreach (array_slice($argv, 1) as $arg) { list($width, $value) = explode(':', $arg); $value = $iobit->putUIBits($value, $width); } echo $iobit->output();